Get Wireless (Any)
Pull any value back onto the canvas
- value
This is the other half of ComfyUI-Wireless. Where Set Wireless (Any) writes a value into the pack's in-process global dictionary, Get Wireless (Any) reads it back out by name - no wire between them, no network, no persistence. If you've used the Set node you already know the whole trick: you type a matching key and the value that a Set node stored under that name appears on this node's output, anywhere on the canvas.
It earns its keep in large workflows where a shared value (a seed, a prompt fragment, a loaded Model) needs to reach several places or a spot that's awkward to route to. The canvas gets dramatically cleaner, and because the Any variant's input is the wildcard *, the stored value can be basically anything - models, VAEs, CLIP, conditioning, masks, or plain ints/floats/strings. That's the flexibility; the tradeoff is you're trading visible wires for an invisible contract, and it's on you to keep the keys straight.
Fair warning, shared with all hidden-link nodes: when a workflow breaks and the cause is a missing or renamed key, you'll be reading a ValueError instead of following a wire to the problem. The community's long-running debate about "anything anywhere" style routing applies here in miniature - it's a great tool for your own big workflow, a mild hazard in shared ones. See the Set article for the full reasoning.
How it works
GlobalStore.get(key) strips leading/trailing whitespace from your key (matching how Set stores it - a stray space won't break the pairing) and looks it up in the module-level _GLOBAL_CONTEXT dict. The value is returned as-is: same Python object, no copy. If the key isn't there, it raises ValueError with a genuinely helpful message that lists every key currently in the store:
Wireless Error: Key 'my_value' not found.
Available keys: [...]
That error message is your best debugging friend, because it tells you two things at once: whether the key exists at all, and if it does, what spelling it actually lives under.
Inputs and outputs
Just one input:
key- the string name of the variable to fetch (defaultvar_name). It must match a Set node's key exactly apart from outer whitespace, which is auto-trimmed. Case matters:Face_Imageandface_imageare different keys.
Output: value (*) - whatever was stored. Wire it into any input that expects the type you stored. The * output gives you no type safety on the port, so if you stored a LATENT under img_var and feed this into an image consumer, that consumer will error at runtime.
Installation
Same as every node in this pack: ComfyUI Manager (search "ComfyUI-Wireless") or
cd ComfyUI/custom_nodes/
git clone https://github.com/errew/ComfyUI-Wireless.git
then restart. No dependencies, no models. It's a thin pack from a small author, but this one's a single-purpose tool and there's not much to go wrong.
Where people get burned
- "Key not found" almost always means the Set node hasn't executed yet. Because there's no wire, ComfyUI can't know Get depends on Set - if Get runs first, you get the error. Feed the Set's pass-through output into a downstream node to force the order.
- Stale data. If the matching Set was bypassed or removed, this node won't error - it returns whatever is still in the dict, including a value from a previous run. If outputs look "wrong but not broken," suspect this.
- Empty key raises immediately (
GlobalStore: Key cannot be empty), so leaving the default in place is fine, but deleting it will crash the run.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | var_name | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |