Distributed Model Name
Point workers at a model the master doesn't have
- output
Distributed Model Name is a small utility that solves a specific coordination headache: getting your workers to load a model that the master machine doesn't even have on disk. It passes a model path down to the workers as text, so a distributed workflow can run on a checkpoint that only exists on the render machines - which is exactly the situation you hit in orchestrator-only mode, where the master coordinates but never loads a model itself.
It's niche. If every machine in your cluster has the same models in the same folders, you don't need this. It exists for the asymmetric case, and in that case it's the difference between a workflow that runs and one that errors out looking for a file the master doesn't have.
Why this is needed at all
Here's the thing to understand about ComfyUI-Distributed, because it's what makes this node make sense: the pack does not pool VRAM or share a loaded model across GPUs. Every worker loads the whole model into its own card and runs the whole workflow. That's the trade - you get parallel throughput, but each participant needs the model to fit on its own hardware, independently.
Now picture orchestrator-only mode: the master is a coordinator with the model toggle off, maybe a thin box that doesn't even keep the big checkpoints locally. A normal model loader on the master would fail - it'd try to resolve a filename against the master's own model folder and come up empty. Distributed Model Name sidesteps that. Instead of the master picking a model from its local list, you type the path the workers should use, and the node forwards it to them. The workers, which do have the file, load it and render.
The inputs and outputs
- text (STRING, default empty) - the model path/name to hand to the workers. You type the filename or path as it exists on the worker machines. This is a plain text field precisely because the master isn't expected to have the file to pick from a dropdown.
The output is output, typed as * (wildcard). The wildcard is deliberate: it lets the node stand in wherever a model-name value would normally be consumed downstream, adapting to what it's connected to. It's also an output node, so it can act as a terminal in the graph. In practice you wire it into the spot in your worker-side graph that expects the model name.
Installing it
Part of the ComfyUI-Distributed pack. ComfyUI Manager: search ComfyUI-Distributed, install, restart. By hand: cd ComfyUI/custom_nodes && git clone https://github.com/robertvoy/ComfyUI-Distributed.git, then restart ComfyUI. No downloads or heavy dependencies of its own. Since this node only matters when workers live on other machines, you'll almost certainly be running the master with --enable-cors-header too.
Where people get burned
- Typos in the path. It's a free-text field, so there's no dropdown to keep you honest. The name has to match what actually exists on the workers, in the folder ComfyUI expects. A mismatch fails on the worker, not the master, which makes it fiddlier to diagnose.
- Assuming it copies the model. It passes a name, not a file. The workers must already have the model present locally; this node doesn't transfer weights across the network. If a worker doesn't have the file, it'll fail to load it - the pack pools nothing.
- Using it when you don't need it. If your master has the model too, just use a normal model loader. This node is purpose-built for the orchestrator-only / model-not-on-master case; outside that it only adds a way to fat-finger a path.
- Path differences between machines. If your workers store models in different folders or under different names, there's no single string that satisfies all of them. Keep the worker model layout consistent, or you'll be fighting per-machine path drift.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | — |