Image Passthrough
The most-wired type in ComfyUI, given a clean way to travel
- image
- image
Every workflow has one image that everything wants: the reference photo, the input to the detailer, the source of the mask, the thing you preview and save. The Image Passthrough is a single optional image socket in and the same image out - a clean one-wire relay for the most-dragged-around type in ComfyUI. No processing, no resizing, no color correction. The point is to keep one source of truth and let a single wire fan out to the three or four consumers that need it.
It earns its keep in the same place all these passthroughs do: subgraphs and large graphs. When a region gets collapsed, the reference image has to cross that boundary; threading it through a passthrough at the edge keeps the connection explicit instead of burying it. And if you've got a source image feeding a preview, a save, and an img2img sampler at once, routing them all through one passthrough means there's exactly one place to verify what's on that wire.
How it works
The simple passthroughs are all generated from one controller, and the entire run function is return (kwargs.get("image"),). Read the input, hand it back. Two consequences follow from that one-liner:
- Unconnected means
None. Leave the socket empty, or mute/bypass the node feeding it, and the output isNone. That's fallback-friendly - a muted image branch reads as "missing" downstream rather than crashing. - It's connect-only. There's no widget to type into; the image has to come from another node. That's a feature: it prevents you from having the same image defined in two places that can drift apart.
Inputs and outputs
image(IMAGE) in →image(IMAGE) out.
One pair, that's all. Wire it into whatever eats an IMAGE - preview nodes, save nodes, samplers, detailers, mask generators. It lives under Tojioo Passthrough → Simple Passthrough.
Install
Manager → search "Tojioo Passthrough" → Install → restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/Tojioo/tojioo_passthrough.git
No models, no pip deps, prebuilt frontend. Small single-maintainer pack, GPL-3.0.
Common issues
The one thing that bites people is the None behavior arriving as a surprise: you mute the Load Image upstream "just to test something" and suddenly the save node downstream reports missing input. That's this node working as designed - muted/b bypassed upstream reads as nothing. Check the source of the wire, not the passthrough itself. It's the simplest node in a pack of simple nodes; there isn't much else that can go wrong, and honestly that's the appeal.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |