> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sfcompute.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Images

> Build, upload, and manage custom VM images

<Warning>
  This feature is in [public preview](/preview/roadmap).
</Warning>

Images are the disk templates instances boot from. SFC provides base images with common configurations. You can also upload your own custom images.

## Image requirements

SFC supports UEFI amd64 (x86\_64) raw images. We do not support qcow2.

Custom images should resize themselves to the full disk size during the boot process to make use of the full disk space available to the instance. For an example of how to build an SFC compatible image with packer, see our [example Github repository](https://github.com/sfcompute/packer_example/).

All custom images must have drivers for both <Tooltip tip="PCIe vendor 0x1af4, product 0x1041">virtio-net</Tooltip> and <Tooltip tip="PCIe vendor 0x15b3, product 0x101e">mlx5Gen Virtual Function</Tooltip> for networking. All custom images must have cloud-init installed and the networking configuration step must be enabled in order for networking to be set up.

## Image fields

Images have three key fields:

* **id** — The unique identifier like `image_abc123`
* **name** — A human-readable name like `ubuntu-22.04-cuda-12.4` or `training-base`
* **provider** — Either `sfc` for SFC-provided base images or `custom` for images you upload

## Uploading an image

Upload a raw disk image with `sf images upload`. The CLI handles multipart upload with progress
tracking and SHA256 integrity verification. The maximum image size is 75 GiB.

```bash theme={null}
sf images upload \
  --name ubuntu-jammy-custom \
  --file output/ubuntu_jammy.img
```

For large images, increase upload concurrency to speed things up.

```bash theme={null}
sf images upload \
  --name ubuntu-jammy-custom \
  --file output/ubuntu_jammy.img \
  --concurrency 4
```

If you omit `--file` or `--name`, the CLI will prompt you interactively.

Custom images are scoped to your account. Run `sf images list` to see all images available to
you, including SFC's public images.

```bash theme={null}
sf images list
```

```
NAME                      VISIBILITY  STATUS     CREATED
ubuntu-22.04.5-cuda-12.7  public      completed  Feb 23, 6:50pm
ubuntu-jammy-custom       private     completed  Mar 27, 2:00pm
```

## Using an image

Pass an image name or ID when creating an instance.

```bash theme={null}
sf instances create --pool dev --image ubuntu-jammy-custom
```

If you omit `--image`, the CLI will present an interactive picker showing all completed images
available to you.

## Revoking an image

Revoke an image to stop new instances from using it. Existing instances keep running.

```bash theme={null}
sf images revoke ubuntu-jammy-custom
```

The command prompts for confirmation. Pass `--yes` to skip it.

Reinstate a revoked image to make it usable again:

```bash theme={null}
sf images reinstate ubuntu-jammy-custom
```

## Deleting an image

```bash theme={null}
sf images delete ubuntu-jammy-custom
```
