Nodes/ComfyUI-Wireless/Set Wireless (Any)
ComfyUI Node

Set Wireless (Any)

Broadcast any value without a wire

By errew·Created 7 months ago·Updated 7 months ago· 2
Set Wireless (Any)
  • value
  • value
keyvar_name

Let's get the lie out of the way first: this node is not wireless, does not call any API, and needs no key (as in, an auth token - it takes a string key). What it actually does is write a value into a global Python dictionary that lives inside your running ComfyUI process, under a name you choose. Somewhere else on the canvas, a Get Wireless (Any) node reads that same name back out. Same process, no network, no serialization - just a dict lookup that's fast enough that the pack's "zero latency" claim is technically true and mostly beside the point.

The point is workflow readability. Big ComfyUI graphs turn into spaghetti fast: a prompt string, a seed, or a model that has to travel from one side of the canvas to the other produces a wire you can't follow, let alone route. Set Wireless (Any) lets you drop that value at its source and retrieve it wherever it's needed, with no 400-pixel connection crossing everything else. This is the same family of ideas as rgthree's context nodes and reroutes - tools whose entire job is making a workflow too large to read into one you can still work in.

It's worth being honest about the tradeoff, because the community has strong opinions here. The famous "Please Stop using the Anything Anywhere extension" thread (+96 and change) is a warning about hidden links: when you share a workflow and someone is missing a model, or a node is bypassed, debugging becomes archaeology. Notably, even that post's author recommends "Get and Set variables" as the sane alternative. This is exactly that - a typed, small-footprint Get/Set pair rather than a magic router. Just use it for things you'll remember the name of.

How it works

Under the hood in nodes.py, every Set node calls GlobalStore.set(key, value), which stores the value in a module-level _GLOBAL_CONTEXT dict. Two details matter:

  • The key is stripped of leading/trailing whitespace before storing, so a stray space you paste around face_image won't silently break the match (the author added this deliberately).
  • The node returns the value you gave it, pass-through style. So Set Wireless (Any) → next node keeps working like a plain passthrough wire - which you should use, because it also forces execution order (more on that below).

The node is flagged as an output node (OUTPUT_NODE = True), so ComfyUI treats it as a runnable endpoint and won't skip it.

Inputs and outputs

Only two things to care about:

  • key - the string name of the global variable. Default var_name. Make it descriptive and unique across your whole workflow: this is a global namespace, so two workflows running in the same ComfyUI session that reuse model_base will collide.
  • value - the wildcard * input, which accepts everything: Model, VAE, CLIP, Conditioning, Mask, plus primitives like INT, FLOAT, STRING. That's the whole point of the "Any" variant.

Output: value (*) - the same data, passed through. Wire it onward to keep a linear chain.

Installation

Zero dependencies, no model downloads - requirements.txt is literally "Standard Python library only." Install via ComfyUI Manager (search "ComfyUI-Wireless"), or the manual way:

cd ComfyUI/custom_nodes/
git clone https://github.com/errew/ComfyUI-Wireless.git

Then restart ComfyUI. That's the whole install.

Where people get burned

  • Execution order. Nothing forces the Get node to run after this Set - there's no wire between them. If the Get fires first, it raises a ValueError. The reliable fix is to feed Set's pass-through output into a downstream node, so the graph's dependency order guarantees Set runs before Get.
  • Stale values. The dict persists between runs in the same session. If you bypass or mute this Set node, the matching Get won't error - it'll silently hand back whatever was stored last time, possibly from a previous run. That's the single sneakiest failure mode of the whole Get/Set pattern.
  • Restart wipes everything. The dict is in-memory only. Load the workflow fresh after restarting ComfyUI and every key is gone until a Set runs again.
CategoryWireless

Inputs (2)

NameTypeDefaultDescription
keySTRINGvar_name
value*

Outputs (1)

NameTypeDescription
value*