id like image_2KvMb9NpQs5 and a human-readable name like
ubuntu-22.04-cuda-12.4 or training-base. Each image also has is_public, which is true for SF
Compute base images and false for images you upload.
A name identifies a sequence of immutable versions, starting at 1. The id always refers to one
exact build, and the bits behind an id never change. Uploading an existing name creates the next
version.
Listing images
List all images available to you, including SF Compute’s public images.--all-versions to
see every version with its lifecycle state, including a VERSION column.
Using an image
Pass an image name, ID, or resource path when creating an instance.--image, the CLI presents an interactive picker showing all completed images available
to you.
Referencing an image by name resolves to the latest active version at creation time, so new
instances automatically pick up updated builds. To pin one exact build, reference it by id, or
append @<version> to the name.
sf images get ubuntu-jammy-custom@2
inspects a pinned version.
The instance stores the concrete image id it booted from either way, so sf instances get always
tells you exactly which build an instance is running.
Uploading an image
Upload a raw disk image withsf images upload. The CLI uploads the image in parts, reports
progress as it goes, and verifies integrity with a SHA256 checksum. The maximum image size is 75
GiB. Custom images stay in your workspace.
--file or --name, the CLI prompts you interactively.
Uploading a file under an existing name never overwrites anything. It creates the next version, and
the name starts resolving to it once the upload completes.
For large images, tune the number of parallel part uploads with --concurrency. The default is your
machine’s CPU count.
Image requirements
SF Compute supports UEFI amd64 (x86_64) raw images. We do not support qcow2. Custom images should resize themselves at boot to fill the disk available to the instance. For an example of building a compatible image with Packer, see our example GitHub repository. Custom images must have drivers for both and for networking. They must also have cloud-init installed with its network configuration step enabled so networking comes up at boot.Image lifecycle
An upload moves throughstarted → uploading → completed (or failed). Only completed images
can back instances.
Completed images additionally carry a catalog state.
An active image is the default state: listed, resolvable by name, and launchable. A deprecated
image is no longer the active version and will eventually be removed. It stops resolving by bare
name and leaves the default listing, but an explicit pin (image id or name@<version>) can still
launch it, and instances already running on it are unaffected. sf images list --all-versions
shows deprecated versions with status deprecated. A revoked image can no longer back new
instances, by name or by id, though instances already running on it are unaffected.
Revoking an image
Revoke an image to stop new instances from using it. Existing instances keep running.--yes to skip it.
Reinstate a revoked image to make it usable again.
Deleting an image
Delete an image to remove it permanently. Unlike a revoked image, a deleted image cannot be reinstated. You cannot delete an image while an active instance uses it.--yes to skip it.
SFC base images
SF Compute publishes base images namedubuntu-<lts>-cuda-<major.minor>, for example
ubuntu-24.04-cuda-13.2, with no OS point releases or driver builds in the name. The matrix
covers Ubuntu 22.04 and 24.04 crossed with the two newest CUDA minor versions, plus a back-catalog
of older CUDA versions. sf images list shows every current name.
Each base image ships the NVIDIA server driver pinned to that CUDA version’s compatibility floor,
the CUDA development libraries, and cloud-init.
Each name tracks its latest build. When NVIDIA ships a new CUDA patch release, or a driver or OS
point release lands, SF Compute republishes the same names, and each republish appears as a new
version. Instances created by name pick up the latest version automatically, while running
instances keep the exact image they booted from. If your workload needs one exact build, pin it by
image id or by version, like ubuntu-22.04-cuda-12.7@3.
Older versions of a base image are deprecated once superseded. A deprecated version leaves name
resolution and the default listing but still launches by pinned id or name@<version>. Versions
deprecated for a long time are eventually revoked, which blocks new launches without touching
running instances. Base image versions are never deleted.