Get Wireless (Latent)
Grab a latent from across the workflow, orange port and all
- latent
The receiver half of the latent pair. Get Wireless (Latent) looks up a LATENT that a Set Wireless (Latent) node stored under a key, and hands it out on an orange LATENT output - no wire between the two nodes. It exists for one reason: in a workflow where a latent has to reach a VAE Decode, a refiner sampler, or a latent-space upscale step that's nowhere near where the latent was produced, you can stop dragging that connection across the entire canvas.
A latent is the intermediate {'samples': tensor} dict a sampler hands to a decoder, and in multi-pass workflows it's exactly the kind of big object that makes routing painful. Because ComfyUI-Wireless stores values in an in-process Python dict with no serialization, the Get side receives the identical object the Set side wrote - no copy, no round-trip, just a lookup by name. The "wireless" framing is a friendly fiction; the whole thing is one global dictionary that lives and dies with your ComfyUI process.
The strict typing is the point of this variant over the universal Any node: a dedicated LATENT Get keeps the orange port and ComfyUI's type matching, so it slots into latent inputs cleanly and can't be mistaken for an image channel. The cost is the same invisible-contract problem every hidden-link node has - you're trusting two keys to line up, and debugging means reading error messages rather than following a wire.
How it works
GlobalStore.get(key) trims whitespace from your key (Set trims the same way when storing, so stray spaces around a pasted key won't break the match), then returns the stored latent. If the key isn't there, it raises a ValueError that lists every key currently in the store - which makes typos obvious at a glance. The node otherwise does nothing: input a key, output a latent.
Inputs and outputs
key- the channel name (defaultlatent_var). Must match the Set node's key exactly; case-sensitive, outer whitespace trimmed. Keep names unique across the whole session - the store is process-global.
Output: latent (LATENT) - feed it into VAE Decode, a sampler, Latent Upscale, or anything else with an orange latent input.
Installation
Same as the rest of the pack. ComfyUI Manager, search "ComfyUI-Wireless", or:
cd ComfyUI/custom_nodes/
git clone https://github.com/errew/ComfyUI-Wireless.git
Restart ComfyUI. Standard-library-only, no dependencies, no model files.
Where people get burned
- "Key not found" with the key missing from the listed set means the Set node hasn't run yet. There's no wire telling ComfyUI the order, so keep the Set's pass-through output connected to force it.
- Silent stale latent. Bypass or delete the Set and this node returns whatever is still in the dict - from a previous run. Decodes that look "old" with no error are the classic symptom.
- Wrong content under the key. If an Any-variant node stored a non-latent under
latent_var, you'll discover it downstream when the consumer rejects it. Keep latent, image, and Any channels on separate keys.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| key | STRING | latent_var | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |