Mpi Reroute
An any-type reroute that does exactly one thing, quietly
- any
- any
ComfyUI ships a built-in Reroute, rgthree ships a beloved one, and here's a third. MpiReroute is the simplest possible version: one any input, one any output, the value passes through byte-for-byte untouched. That's the whole node. Its entire job is to bend a wire so it doesn't cross the canvas in a diagonal line, and to give you a named handle on the middle of a long connection.
If you've never built a graph big enough to look like spilled spaghetti, this node reads as pointless. Then you hit the wall where a wire from a sampler all the way on the left has to reach a save node on the right, and a reroute lets you fold that connection into something legible. It's legibility, not logic - the data does nothing. The KB's node-plumbing essay puts it exactly right: a reroute moves one wire, and that's its whole contribution to keeping a workflow readable.
How it works
The class declares its socket type as "*" - the ComfyUI wildcard that accepts model, latent, image, string, anything - and a VALIDATE_INPUTS that always returns True, which tells the backend not to bother type-checking it. doit just returns the input:
def doit(self, any):
return (any,)
There's no widget, no setting, no failure mode worth naming. If you need more than a pass-through, this isn't the node - but that's like complaining a pencil isn't a hammer.
Install
Part of ComfyUi-MpiNodes. Either grab it through ComfyUI Manager (search "MpiNodes" or publisher "mad-pony-interactive"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/MadPonyInteractive/ComfyUi-MpiNodes
then restart. No extra dependencies, no model files.
The one trick worth knowing
The README's own advice is the whole game: rename the node title (right-click → Title) to describe the wire, and it becomes a labelled reroute. A wire labelled sampler_latent tells you at a glance what's flowing through it, which is the difference between a graph you can re-open in a month and one you re-derive by tracing every connection. That's it. There's genuinely nothing to troubleshoot here - if a reroute seems broken, the problem is upstream, not the pass-through.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| any | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| any | * | — |