Set Relay
Send a whole model, latent, or image down one named wire
- value
- value
The Set nodes you've met so far only handle their own type - Int for numbers, Boolean for toggles. Set Relay is the wildcard of the family: it takes any ComfyUI object - a MODEL, a latent, an image, a conditioning, even a string - and routes it under a named key. A Get Relay with the same key hands that object to wherever the graph needs it. If you've got one checkpoint feeding three branches and you're tired of dragging the wire across the whole canvas, this is the node.
Two things make Set Relay distinct from the typed Sets:
- It has an output.
valuepasses straight through, so you can publish the object and keep using it on the local path. That's why it's a relay rather than a pure Set - the value travels on the wire and in config state at once. - The socket is wildcard (
*). It accepts anything, which is exactly why it's useful for routing big objects without a type-specific node. The flip side is that ComfyUI can't type-check it for you - the wire is as smart as you make it.
Why you'd actually use it
The classic case: two alternative model loaders feeding one pipeline. WorkflowX's config system scopes Set/Get resolution to native groups, so a "Model A" config can publish one model under the key model and a "Model B" config publishes the other - same key, different source, resolved by whichever config is active. That's the pack's whole "switch models without rebuilding the graph" pitch, and relay is the value that makes it work for objects too big to stuff into a typed Set.
Inputs:
key(STRING) - the lookup name. Empty keys are rejected (Set Relay key cannot be empty.).value(*) - the object to publish and pass through.
Output: value (*), the object unchanged.
Install
The pack is one install:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
or search WorkflowX Configurator in ComfyUI Manager, restart ComfyUI, refresh the browser. No pip dependencies, no model files.
Gotchas worth knowing
- Pair it with Get Relay, not a typed Get. A Get Relay looks for Set Relay values; it won't read a Set Int's channel. The keyed channels are type-specific.
- Wildcard means you're the type-checker. Wire a MODEL into a relay and grab it out the other end - it's still a MODEL, but nothing will yell at you if you mix up what went in. Keep keys descriptive (
model,latent,ref_image) so future you knows what's riding the wire. - Same key discipline as the whole family. Case-sensitive, and a Get Relay with nothing to resolve errors rather than returning null - which is better than silently handing a None to a downstream node.
The most flexible node in the Get Set Go family, and the one that unlocks the "swap a whole branch by changing config" pattern. Start here if you want to see what the config system can really do.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | — | |
| value | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |