Nodes/Cloud Offload/Cloud Offload Partition Gateway
ComfyUI Node

Cloud Offload Partition Gateway

The hidden node that ships your box to a rented GPU

By jethac·Created 2 months ago·Updated 7 days ago· 0
Cloud Offload Partition Gateway
    • partition result
    partition_json
    providerauto
    timeout_seconds3600

    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 schema comfy.partition.job.v1). This is what the compiler generated, not something you type.
    • provider - auto / runpod / vast.ai, default auto.
    • 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.

    CategoryCloud Offload/Internal

    Inputs (3)

    NameTypeDefaultDescription
    partition_jsonSTRING
    providerCOMBOauto3 options: auto, runpod, vast.ai
    timeout_secondsINT36001–86400

    Outputs (1)

    NameTypeDescription
    partition resultCLOUD_PARTITION_RESULT