Nodes/Comfyui-LG_GroupExecutor/🎈LG_ValueSender
ComfyUI Node

🎈LG_ValueSender

Toss a seed, a prompt, or any value across your graph

By LAOGOU-666·Created about a year ago·Updated 7 months ago· 227
🎈LG_ValueSender
  • value
  • signal_opt
  • signal
link_id0

Same trick as the image sender/receiver pair, but for data instead of pixels. LG_ValueSender takes any value - string, int, float, bool, even a tensor, list, or dict - converts it to text, and fires it over a websocket tagged with a link_id. A matching LG_ValueReceiver picks it up on the other side. No wire across the canvas, no shared node between two halves of a graph, no need for both halves to run in the same prompt. Just a numbered channel and a value.

It comes from Comfyui-LG_GroupExecutor, the small LAOGOU-666 utility pack. Like the rest of the pack it's dependency-free and model-free; this particular node is about 40 lines of Python plus some frontend glue, and the frontend glue is the part that makes it feel like magic.

How it works

The doit function serializes whatever you feed it: strings pass through as-is, numbers and bools get str()'d, tensors and numpy arrays become str(value.tolist()), lists/dicts become their string forms. That string is sent as a value-send-accumulate websocket event with your link_id. Meanwhile the frontend listens for that event, finds any LG_ValueReceiver whose link_id matches, and drops the string into the receiver's value widget - which is why the receiver's tooltip says the value is "auto-filled by the frontend."

Note the event name: value-send-accumulate. Values are additive. The receiver accumulates whatever arrives on that channel, so multiple Sender runs on the same link_id pile up rather than overwrite. That's the intended design for collecting results across iterations.

Inputs & outputs

  • value (any type) - what you're sending.
  • link_id (default 0) - the channel. Sender and receiver must agree, and different channels won't collide.
  • signal_opt (optional) - passes through untouched as the output.

Output: signal, which is just your signal_opt echoed back (or None if you didn't provide one). Use it to chain execution: send a value, then continue.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/LAOGOU-666/Comfyui-LG_GroupExecutor

or ComfyUI Manager → "Comfyui-LG_GroupExecutor", then restart. Nothing else to install.

Gotchas

  • Types don't survive the trip. Everything becomes a string. The receiver re-casts based on its typ setting, so a float sent and received as an INT may truncate - pick the receiver's type to match.
  • Accumulation is the default on the receiving side. If you expect "latest value wins" you'll be surprised to get a list. That's what LG_ClearAccumulatedValues is for.
  • Browser-dependent handoff. The receiver's field is filled by frontend JS, so this won't work in a pure API-driven run.
Category🎈LAOGOU/Group

Inputs (3)

NameTypeDefaultDescription
value*
link_idINT00–9223372036854776000
signal_optopt*

Outputs (1)

NameTypeDescription
signal*