Nodes/Cloud Offload/Cloud Partition Input
ComfyUI Node

Cloud Partition Input

How the rented runner gets the values that crossed your box edge

By jethac·Created 2 months ago·Updated 7 days ago· 0
Cloud Partition Input
    • value
    boundary_key
    artifact_path
    type_name

    Here's a node that never runs on your machine at all. Cloud Partition Input is the runner-side half of the Cloud Offload bridge set: it executes inside the remote ComfyUI that the pack rents, and its job is to rebuild one uploaded boundary value so the boxed subgraph can consume it where its inputs used to connect. Hidden, dev-only, compiler-generated - you don't place it, and in the normal UI you'll never see it.

    What it's for

    When a Cloud Offload box queues, your local graph uploads the boundary values to the coordinator's artifact routes; the remote worker downloads them; and a CloudPartitionInput node stands in for each former input wire on the rented side, restoring the value from disk. The original internal nodes run unchanged inside the remote workflow - same graph, same widgets - which is why the box reports normal node-level progress instead of a spinner blob. This is the "upload the bundle, execute the identical subgraph" architecture.

    Inputs and output

    • boundary_key - names the boundary value being restored.
    • artifact_path - where the uploaded bundle lives on the runner. Must exist, and must resolve inside COMFY_PARTITION_ROOT - a real path-safety check, not decoration.
    • type_name - the boundary type, validated before the node reads anything.

    The output is value of type *, the restored value in whatever type it actually is.

    How it works

    The bundle is a comfy.partition.bundle.v1 container: a manifest.json describing the value tree, tensors.safetensors holding all tensor leaves (on CPU, no pickle), and blobs/ for byte and file leaves. That container is why boundary values are limited to portable types - IMAGE, MASK, LATENT, CONDITIONING, AUDIO, tensors, JSON-compatible values, byte buffers, mesh/3D files. MODEL, CLIP, VAE, control nets, samplers, and other live Python objects can't be serialized this way, so the compiler rejects any box edge that tries to carry one and tells you to move the loader inside the box instead.

    Install and gotchas

    Pack install is the same as the rest of the family - ComfyUI Manager (search "Cloud Offload") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/jethac/ComfyUI-Cloud-Offload.git
    

    restart ComfyUI, and run the coordinator separately (python -m cloud_offload serve --host 127.0.0.1). The pack's own requirements are just requests and safetensors.

    The one error you'd ever actually see from this node is the COMFY_PARTITION_ROOT one: if the runner image hasn't configured it, the node refuses to touch the artifact path. That's a runner-image concern the coordinator's image handles, and a reminder that these bridges are internals - if you're hand-placing them to debug a box, you're probably fighting the wrong layer.

    CategoryCloud Offload/Internal

    Inputs (3)

    NameTypeDefaultDescription
    boundary_keySTRING
    artifact_pathSTRING
    type_nameSTRING

    Outputs (1)

    NameTypeDescription
    value*