Wireless Get
The other half of the trick, and the part that reads back through time
- value
Wireless Get is the receiving end of the Wireless Send trick, and it's the node that does the interesting work. Send just writes to a named slot in memory; Get reaches back into that slot and hands you whatever was there. Give it a channel name, it returns the value. That's the entire contract, and it works for every data type ComfyUI has - images, models, latents, CLIP, VAE, strings, conditionings.
You reach for it in exactly one scenario: a workflow where the source of the data lives somewhere you don't want a wire dragged across. The classic pattern from the pack's README is a model loaded once and shared by several downstream branches - Get model, Get clip, Get vae in three different parts of the graph, each pulling from the same Send. One Send, many Gets, zero crossing lines. Compared to the rgthree-style reroutes and context bundles that tidy up wire paths, this is the more aggressive move: it removes the path completely. It's also more brittle for exactly that reason, so use it where the wire is the problem, not everywhere.
How it works
Mechanically it's a dict lookup against a shared in-memory store that Send populates. The node resolves your channel name, grabs the stored object, and returns it as its value output. A generation counter - bumped on every execution_start event - lets Get tell whether that data was written in the current run or a previous one. Old data doesn't block anything; it just earns you a console warning, because reading last run's image silently is exactly the kind of bug that eats an hour.
The one genuinely clever piece is the <auto> channel. Type <auto> instead of a name and Get resolves to whatever channel the most recent Send wrote during the current execution. It's for when Send's channel field is itself wired from a dynamic string - a prompt-derived label, a photographer style, whatever - and you don't want to mirror that exact string on Get. Send fires, Get snaps to its channel, no name matching required. The catch, spelled out in the source: <auto> resolves to the most recent Send, period. With multiple Sends in the graph you get whatever fired last, so if you need disambiguation, use literal names.
The inputs that matter
channel(STRING, defaultchannel_1) - the one and only input. A literal name, matched case-sensitively against Send's channels, or the special<auto>token. That's the whole node.
The output is value (ANY) - whatever the channel held. Wire it into anything that accepts that type: an image into a Save or a sampler, a MODEL into a KSampler, a conditioning into CLIP Text Encode.
Install
Same story as its sibling, so this is a shared step. ComfyUI Manager, search "wireless link", or:
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/comfyui-wireless-link-simple.git
Restart, and it appears under the wireless category. No dependencies beyond ComfyUI itself - the whole pack is one file, MIT-licensed.
Troubleshooting
"Channel 'X' not found." The most common failure and almost always the same cause: Send never executed before Get. The error even lists the available channels to point you at the typo versus the ordering problem. If the channel genuinely exists, the fix is to chain Send's passthrough output into a downstream node so it's forced to run first.
Stale-data warning. The channel holds a value from a previous execution. Usually a removed Send node or a run where Send didn't fire. Check the graph; the warning is the pack's way of saying "this is old data, and I'm telling you rather than guessing for you."
<auto> resolves to the wrong channel. With multiple Sends, it's always the most recent - that's not a bug, that's the definition. Switch to literal names.
One note on expectations: channels live in process memory, so a ComfyUI restart wipes everything. That's by design - wireless here is a graph-organizing tool, not persistence. If you need data to survive a restart, this is the wrong node for the job.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| channel | STRING | channel_1 | Channel name — must match the Send node exactly (case-sensitive). Special: use '<auto>' to receive the most recently written channel in the current execution. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |