Cloud Offload Partition Gateway
The hidden node that ships your box to a rented GPU
- partition result
You will never drag this node into a graph, and that's by design. Cloud Offload Partition Gateway is one of four hidden, dev-only bridge nodes that ComfyUI-Cloud-Offload compiles for you the moment you draw a Cloud Offload box around part of your workflow. The README says it flat out: users never place these by hand. They live in the saved JSON of your workflow, not in your node menu - the is_dev_only flag keeps them out of the normal picker.
So why care about a node you can't click? Because it's the piece that makes the box work, and understanding it explains most "why won't my box run" moments.
What it does
The gateway is the local half of the cloud handshake. When you mark a group of nodes as a Cloud Offload partition and queue the graph, the frontend compiles that selection into one hidden gateway, a hidden extract node per boundary output, and a remote API-format workflow containing your original nodes plus the input/output bridge nodes. The gateway submits the boxed subgraph to the coordinator as a single cloud job and pauses local execution until it completes.
Inputs and output
partition_json- the compiled partition description (protocol schemacomfy.partition.job.v1). This is what the compiler generated, not something you type.provider-auto/runpod/vast.ai, defaultauto.timeout_seconds- 1–86400, default 3600.
The gateway also accepts dynamic boundary inputs - it's declared with accept_all_inputs - so every value that crosses the box edge arrives as an input_* boundary value. The single output is partition result (CLOUD_PARTITION_RESULT), one opaque bundle that the extract nodes unpack downstream.
How it works
Executing the gateway is an async call: it runs free preflight before any paid work, then the same rental-confirmation flow the whole pack uses (countdown, cost estimates, hard limits), then submits the job through the coordinator. Progress streams back as comfy.partition.progress events - that's how your box shows the currently executing node highlighted, completed nodes marked, and percent in the title, instead of a generic spinner. Cancel the local prompt and the remote job is cancelled too.
The one thing that actually bites people: only portable values can cross the box edge - IMAGE, MASK, LATENT, CONDITIONING, AUDIO, tensors, JSON-compatible values, byte buffers, and file-backed mesh/3D artifacts. Live objects like MODEL, CLIP, VAE, control nets, and samplers are rejected before a paid runner is provisioned, and the fix is to move the loader or producer inside the box. A MODEL can't ride the boundary wire, so it has to live on the rented side.
Install
Same pack install as everything here - ComfyUI Manager (search "Cloud Offload") or clone into custom_nodes, then restart:
cd ComfyUI/custom_nodes
git clone https://github.com/jethac/ComfyUI-Cloud-Offload.git
Requirements are requests and safetensors, nothing heavy, no model downloads. The coordinator must be running separately (python -m cloud_offload serve --host 127.0.0.1), because the gateway only talks HTTP to it.
If you open your workflow JSON and find a CloudPartitionGateway, that's not a bug - that's the box you drew. Leave it alone, edit the box, and re-queue.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| partition_json | STRING | — | |
| provider | COMBO | auto | 3 options: auto, runpod, vast.ai |
| timeout_seconds | INT | 36001–86400 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| partition result | CLOUD_PARTITION_RESULT | — |