Passthrough
The node that does nothing, on purpose
- input
- output
Passthrough takes whatever you give it and hands it back untouched. That sounds useless, and honestly, on its own it kind of is - but it's one of those nodes you add once a workflow gets big enough that your wires are crossing the canvas like a plate of spaghetti. It's a body for a wire: a place to break a long connection, give it a label, and keep the graph readable.
ComfyUI is a graph, and the community's biggest complaint about it isn't the generation quality - it's that non-trivial workflows turn into dense walls of nodes and colored wires. This node is from that battle. You've got an image feeding a sampler on the other side of the canvas, and a single connection stretches across everything. Drop a Passthrough in the middle, rename it to something meaningful, and suddenly that run is a readable segment instead of a mystery edge.
Full honesty before you install anything: ComfyUI already ships a Reroute node that does this same job with zero setup. If you just want a break in a wire, right-click and add Reroute and you're done. The case for Passthrough is narrower - you're already running the Utilitools pack, or you want your routing points to use the same "Utilitools" look everywhere. It's a convenience, not a capability.
Mechanically there's nothing to it. The node declares a single required input input of type * (ComfyUI's "any type" wildcard) and returns it as output, also *, untouched - the source is literally return (input,). No copying, no conversion, no type coercion. Whatever goes in comes out as the same object, which is why you can route images, latents, text, or anything else through it without breaking downstream nodes.
The only input that matters is input, and it's required - you have to connect something. Wire it up, and output carries the same value onward. There are no other knobs, which is the point. To make the node actually useful, right-click the title and rename it ("denoise pass start", "faces section", whatever), because that label is the entire value it adds.
Install. Through ComfyUI Manager, search for "ComfyUI Utilitools" (pack title: ComfyUI Utilitools Nodes). Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/aesethtics/ComfyUI-Utilitools
Then restart ComfyUI. That's genuinely it - the pack has no requirements.txt, no install script, and no model downloads. It's pure Python standard library, which makes it about the safest possible kind of custom node to run.
Where people trip: if input is left unconnected the node will error, because it's required - this isn't a constant or a generator, it passes through, it doesn't produce. And if you expected it to change anything, expect nothing. If your workflow is small and tidy, skip this node entirely; it earns its place only once your graph needs untangling.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | — |