Image Sender
Push a generated image to a Receiver by link_id
- images
- images
ImageSender is half of a wireless connection. The other half is ImageReceiver, and together they move an image from one place to another without a wire on the canvas - you match a number on both ends and the image teleports across. The README states the contract cleanly: "The images generated in ImageSender are automatically sent to the ImageReceiver with the same link_id."
Why would you want that? Two reasons people actually use it. One, decluttering a giant graph - send an image from the generation cluster and receive it over in the post-processing cluster without dragging a wire across the whole workflow. Two, and more interesting, feedback and multi-run setups: because Sender writes to disk and Receiver reads it back, you can loop a generated frame back into the next run. Community folks have wired exactly this for AnimateDiff-style frame feedback, feeding the last denoised frame into the next batch.
How it works
Despite the name, there's no network magic. ImageSender saves the input images to your ComfyUI output directory (its own description: "Saves the input images to your ComfyUI output directory") and tags them with a link_id. Any ImageReceiver set to the same link_id picks them up. It's a shared-file handoff keyed by a number, which is exactly why it can bridge separate runs, not just separate parts of one graph.
The inputs and outputs
images- what you're sending. Required.filename_prefix(default "ImgSender") - the name the saved files get in your output folder.link_id(default 0) - the channel number. This is the one that matters: set the matching Receiver to the same value and they connect. Different senders and receivers on different link_ids won't cross wires.
It also passes the images straight through on an images output, so you can keep using them in the same graph, and it's an output node, so it saves on run. Set two Senders to different link_ids and you've got two independent channels.
How to install it
ComfyUI Manager: search ComfyUI Impact Pack, install, restart. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack, install requirements into ComfyUI's Python (pip install -r requirements.txt, or ..\..\..\python_embeded\python.exe -m pip install -r requirements.txt on Windows portable), then restart. No auto-install since v7.6. A small SAM model downloads to ComfyUI/models/sams on first launch.
Common issues
The Receiver isn't getting anything. The link_ids don't match. This is the entire failure mode - Sender on link_id 0 talks only to Receivers on link_id 0. Check both numbers.
It saved images you didn't want saved. ImageSender is an output node and writes to your output directory every run, filename_prefix and all. If you're only using it to pass images within a graph, remember it's also littering your output folder; a plain reroute is lighter for pure on-canvas passing.
You expected true real-time streaming. It's a save-then-read handoff, not a live pipe. That's a feature for cross-run feedback loops, but it means the Receiver reads what was written, so timing across runs behaves like files on disk, not like a socket. For latents rather than images, the pack has the parallel LatentSender / LatentReceiver pair.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filename_prefix | STRING | ImgSender | — |
| link_id | INT | 00–9223372036854776000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |