Nodes/ComfyUI-CustomNodePacks/C2C Farm Submit — Remote Render
ComfyUI Node

C2C Farm Submit — Remote Render

Run a whole workflow on another machine from one node — your graph becomes a render-farm client

By Code2Collapse·Created 6 months ago·Updated a day ago· 52
C2C Farm Submit — Remote Render
    • job_id
    • result_paths
    • info
    prompt_json
    backend
    compute_profile
    priority5
    project_name
    wait_for_completiontrue
    timeout_minutes120

    Here's the honest pitch: C2C_Submit turns your ComfyUI graph into a client that hands a whole workflow to another ComfyUI instance - a LAN workstation, an AKS H100 pool, a RunPod pod - and waits for the result. You paste a workflow in ComfyUI API format into the node, pick a backend, and the pack's C2C Farm spooler does preflight validation, uploads your media, dispatches the job, and pulls the outputs back into a local results folder. It's the closest thing to a distributed render button the ecosystem has without standing up a commercial queue.

    The catch, and you should hear it up front: this node is the front door of a subsystem that needs real configuration before it's useful. It's not an "install and go" node - it's the client half of a small render farm. If you already run multiple ComfyUI boxes, it's genuinely great. If you're a single-machine hobbyist, keep reading for the gotchas before you wire it in.

    How it works

    The submit path in nodes/render_farm.py is a well-structured pipeline. It looks up the backend from renderfarm/config/backends.json, validates the compute profile against what the backend accepts, checks your user's project permissions, parses the pasted prompt JSON, runs a preflight node check against the backend (so you fail fast instead of failing mid-render on the far side), uploads any referenced media through the courier, and spools a Job into the local queue manager. With wait_for_completion on, the node blocks - streaming progress events - until the job finishes, then returns the result paths. With it off, you get the job id immediately and track it in the C2C Farm dashboard or via C2C_JobHistory.

    The inputs that matter

    • prompt_json - the workflow in ComfyUI API format. Export with "Save (API Format)" and paste the JSON. It accepts a bare {node_id: {...}} map or a {'prompt': {...}} wrapper.
    • backend - which registered backend (the list comes from backends.json).
    • compute_profile - heavy_94gb (1 replica per 94GB GPU) or light_30gb (3 replicas per GPU).
    • priority (5, 1–10) - higher dispatches first.
    • wait_for_completion (true) - block-and-pull, or fire-and-track.
    • timeout_minutes (120) - if it exceeds this, the node raises, but the job keeps running.

    Outputs: job_id, result_paths, and info (JSON with status and results).

    Installing it

    Part of Code2Collapse/ComfyUI-CustomNodePacks. ComfyUI Manager → search "CustomNodePacks", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Code2Collapse/ComfyUI-CustomNodePacks.git
    

    Then the farm-specific setup: pip install requests websocket-client (plus a storage SDK only if you use cloud couriers), set the C2C_USER_NAME environment variable to a user defined in renderfarm/config/users.json, and enable at least one backend in renderfarm/config/backends.json.

    Gotchas

    Three things bite everyone. First: no C2C_USER_NAME set means an immediate fail-loud error - that env var is mandatory, and it must match a user in users.json. Second: a fresh install has zero enabled backends, so your first submit will tell you to configure backends.json. That's the pack refusing to phone random hosts. Third: prompt_json must be genuine API-format JSON - paste a raw workflow you saved from the UI's "Save (API Format)" button, not a PNG. And a genuinely funny one the pack's own config warns about: the local-selftest backend loops back to this ComfyUI, so a blocking self-submit waits behind itself in its own queue. Keep that one on wait_for_completion=false.

    CategoryMEC/RenderFarm

    Inputs (7)

    NameTypeDefaultDescription
    prompt_jsonSTRINGThe workflow to run remotely, in ComfyUI API format (Save (API Format) / the {'node_id': {class_type, inputs}} map). Accepts a bare prompt map or {'prompt': {...}}.
    backendCOMBORegistered compute backend (renderfarm/config/backends.json).
    compute_profileCOMBOGateway routing profile: heavy_94gb = 1 replica per 94GB GPU, light_30gb = 3 replicas per GPU.
    priorityINT51–10Spool priority — higher dispatches first.
    project_nameSTRINGAudit-log project tag.
    wait_for_completionBOOLEANtrueOn: block until the remote render finishes and pull outputs back into input/c2c_farm_results/<job>/. Off: return the job id immediately and track it in the C2C Farm dashboard.
    timeout_minutesINT1201–1440

    Outputs (3)

    NameTypeDescription
    job_idSTRING
    result_pathsSTRING
    infoSTRING