Nodes/ComfyUI_NetDist/Queue on remote (start of chain)
ComfyUI Node

Queue on remote (start of chain)

Kicks off NetDist's advanced multi-GPU chain

By city96·Created 3 years ago·Updated 2 years ago· 507
Queue on remote (start of chain)
  • workflow
  • remote_chain
trigger
batch1
seed0

RemoteQueueSimple is fine for two GPUs. Past that, ComfyUI_NetDist has a second pattern the README calls "advanced" - meant for setups with more than two GPUs where each machine needs its own batch size and address, rather than one node doing everything. RemoteChainStart is where that chain begins.

The idea: instead of a single node holding the workflow, trigger, batch, and seed all at once, you split that job apart. This node packages the workflow plus the shared trigger/batch/seed settings into a token, and you attach a RemoteQueueWorker for each additional GPU downstream, each with its own remote_url and batch_override. It's the same author's pack, city96 - the ComfyUI-GGUF person - this is the older, unrelated distributed-execution side of his work.

How it works

Where RemoteQueueSimple reads the live graph automatically, this node needs the workflow handed to it explicitly as JSON - usually straight from LoadCurrentWorkflowJSON, or a previously-saved one via LoadDiskWorkflowJSON. That JSON, plus the trigger/batch/seed settings, becomes a remote_chain token you pass to the first RemoteQueueWorker, which forwards it (and can override the batch) to the next one, and so on down the line until RemoteChainEnd closes it out.

The upside the README calls out directly: because the workflow travels as its own JSON payload rather than being read live off "final_image," you can set a worker's outputs to any instead of the default final_image - meaning the remote workflow doesn't need a FetchRemote node baked in at all, it just runs whatever it runs.

The inputs and outputs that matter

  • workflow (JSON, required) - the graph to send down the chain. Feed this from LoadCurrentWorkflowJSON for a live snapshot, or LoadDiskWorkflowJSON for a saved one.
  • trigger (on_change / always) - same firing-condition control as RemoteQueueSimple; flip to always if a change you made isn't reaching the workers.
  • batch (1-8, default 1) - the default batch size every downstream worker inherits, unless a worker's own batch_override sets something else.
  • seed (0 to ~1.8×10¹⁹, default 0) - the shared seed base for the chain.

Output: remote_chain (REMCHAIN) - feed straight into the first RemoteQueueWorker.

How to install it

Via ComfyUI Manager: search ComfyUI_NetDist. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI_NetDist
pip install requests

Restart ComfyUI. Just the one dependency for the entire pack.

Common issues & troubleshooting

The whole chain silently does nothing. The README's own note on this pattern: it "needs a fake image input to trigger" - nothing in this branch is an IMAGE type, so if nothing downstream actually depends on the chain's output, ComfyUI never bothers executing it. Wire a blank/dummy image into whatever's needed to force the branch to run.

Every worker seems to reuse the same result. That's the shared seed by design - the README calls this pattern "a bit jank" for exactly this reason. Randomize the seed per run rather than fixing it if you're seeing repeats across machines.

workflow input rejects what you fed it. It needs to be an actual queueable graph JSON, not a hand-edited or partial file - malformed JSON here is the most common reason a chain builds fine but produces nothing when queued.

Categoryremote/advanced

Inputs (4)

NameTypeDefaultDescription
workflowJSON
triggerCOMBO2 options: on_change, always
batchINT11–8
seedINT00–18446744073709550000

Outputs (1)

NameTypeDescription
remote_chainREMCHAIN