1. Build
Create a local Build definition from your ComfyUI install.
2. Release
Cut an immutable Linux/NVIDIA release from the Build.
3. Deploy
Give the release a URL and managed GPU capacity.
4. Run
Submit an API-format workflow to the active deployment.
Quick start
Use these commands when the local install and API-format workflow are ready: Use the compute output to choose a valid region and GPU. Replace<region> and l4 if needed; copy the deployment ID that deploy up prints into the final command.
1
Initialize
2
Create a release
3
Start a deployment
If you do not already know which regions and GPU classes are available, check first:Then create or reconcile the deployment:Use the returned
deploy up prints the new deployment ID. If you need to retrieve it later, list this Build’s ready deployments:dep_... value with --deployment.4
Run the workflow
./results.The Build file
comfy-build.yaml is the local source of truth for a Build. It stores the Build definition and the last known remote state, so the CLI can choose the right Build automatically and warn before local changes overwrite a newer remote definition.
Keep this file with the project. It describes the Build; it does not contain the model bytes themselves.
1. Initialize a Build
Start from a local ComfyUI install. This scans the models and custom nodes, then writescomfy-build.yaml.
2. Update and release
After changing the local ComfyUI install, refresh the local Build definition:Regions and GPU availability
Region capacity changes, so do not copy a static list into a script. Query the platform catalog when you choose a deployment target:--region <region> to filter the results:
region and gpu pair into comfy deploy up:
3. Deploy a release
Discover the available compute in a region, then create or reconcile a deployment for the selected release:--min and --max set the worker bounds. Use comfy deploy status --watch to follow deployment health, release freshness, and serving activity.
4. Run a workflow
Submit an API-format workflow to a ready deployment:COMFY_BASE_URL to the deployment URL. The SDK request still needs an API key: see Choosing a base URL.
Operate a deployment
Inspect and clean up
FAQ
What does a Comfy API deployment provide?
What does a Comfy API deployment provide?
A Comfy API deployment is a managed, autoscaling endpoint for running API-format workflows. Submit a workflow with
comfy deploy run or the Comfy SDKs.Can one Build come from multiple workflows?
Can one Build come from multiple workflows?
Yes. In the Builder, upload one or more workflows to preselect their models and custom nodes. Include the dependencies needed by all the workflows you plan to run, then submit each API-format workflow to the deployed endpoint.Each deployment uses one GPU type. To run workflows on different GPU types, create separate deployments of the same Build.
Am I charged for storing Builds that are not deployed?
Am I charged for storing Builds that are not deployed?
No. Builds and their releases are stored on your account at no charge. You are not billed for the storage footprint of a Build until you deploy it.Storage billing starts with a deployment:
- When you deploy a release, its models are staged onto network storage shared by the deployment’s workers. The storage is read-only after deployment and billed per GB-month for as long as any deployment of the Build exists in that region, including while a deployment is paused with
comfy deploy stop. - Each worker also gets a fixed 50 GB container disk. It is ephemeral and is only billed while the worker is running, as part of the worker’s compute cost.
- Deleting a deployment releases its compute. Staged network storage is cleaned up shortly after the last deployment using it in that region is deleted, and billing for it ends.
comfy deploy refs compute) and the deploy dialog also show the rates that apply to a deployment.How are active workers billed, and at what hourly rates?
How are active workers billed, and at what hourly rates?
--min sets the number of active workers: workers that stay running at all times so requests never wait for a cold start. An active worker is billed per second for the entire time it is running, whether or not it is processing jobs.Workers above --min, up to --max, are flex workers. A flex worker is billed per second from the moment it starts (including startup and model loading), through job processing, plus a short idle window (currently 30 seconds) before it scales back down. When flex workers are scaled down, they cost nothing. With --min 0 the whole deployment scales to zero and bills no compute while idle, at the cost of a cold start on the first request.Billing meters actual per-second worker usage, multiplied by the number of workers running. If your workspace runs out of credits, deployments are stopped automatically.For current per-worker GPU rates, see the Comfy pricing page. Rates are quoted per worker-hour and billed per second. GPU availability per region comes from the compute catalog: run comfy deploy refs compute for the current list.How does a deployment handle multiple requests?
How does a deployment handle multiple requests?
A deployment automatically distributes requests across its workers and scales within the configured
--min and --max bounds. Requests that cannot run immediately are queued and processed as worker capacity becomes available.What should I do if provisioning takes a long time?
What should I do if provisioning takes a long time?
Follow the deployment state, then inspect its logs and events for the cause:If the selected GPU or region has no capacity, retry later or run
comfy deploy refs compute and choose an available region and GPU pair. Include the Build, release, and deployment IDs when asking for help.What happens when I delete a deployment?
What happens when I delete a deployment?
Deleting a deployment removes its endpoint and releases its compute. It does not delete the Build or its releases. After you delete the last deployment using that Build in a region, its staged network storage is cleaned up and storage billing ends shortly afterward.Deleting the Build is a separate operation:
comfy build delete --id <build-id> --yes.