Motorway 5x6
Motorway 5x6, the fan-out bus stop
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
Somewhere in every multi-stage ComfyUI workflow there's a moment where five values arrive but six consumers need feeding. That extra lane is exactly what Motorway 5x6 is for. It's a pipe node from the agilly1989 Nodes/Motorways pack: five inputs in, six ANY outputs out, plus the always-present MOTORWAY ππ¨ output that carries the whole bag onward.
The naming convention tells you the shape: Motorway [inputs]x[outputs]. The 5x6 is a fan-out stop - it's the node you use when you want to park five things into the route and pull six things back out, one of which is a value that was written earlier in the pipeline. That's the whole point of a keyed pipe: unlike a plain wire, an output doesn't have to be fed by this node's inputs. It reads by key name from anything the motorway has collected so far.
How it works
Every Motorway node is a stop on one shared bus. The incoming motorway is a custom object that behaves like a dict - values live under named keys, hashed with sha256 so nothing collides. When the node runs it writes each connected input under its _key widget value, clones the bag, then reads one key per output slot and passes the whole thing forward. Reusing a key later on the route overwrites the earlier value - the README's polite phrasing is "it will be overwritten," and it means keys are effectively per-pipeline.
The 5x6 has six key slots (A through F) for its five inputs, and that's the detail that matters: the sixth slot, F, has no matching input. It's a pure read lane - type an existing key into F's _key widget and the ANY (F) output returns whatever that key holds, no input wire required. That asymmetry is the reason you'd pick this over a 5x5.
The inputs and outputs that matter
Required MOTORWAY ππ¨ in, optional ANY_(A) through ANY_(E) inputs, each with a _key string widget. Outputs: the continuing MOTORWAY ππ¨ plus ANY (A) through ANY (F). For a beginner, the workflow is: connect the motorway wire, type a key into the A slot, plug the thing you want stored into ANY_(A), and the A output (or any later stop on the same key) hands it back. Leave a key blank and that lane does nothing.
Installing it
Via ComfyUI Manager - search ComfyUI_agilly1989_motorway - or:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart and you're done. No requirements.txt, no models to download; the whole pack is pure Python on top of ComfyUI's own type helpers. It's a one-person beta project, so the README's own warning applies: things break while the author iterates.
Common issues
The classic failure is KeyError: Key: 'x' doesn't exist in motorway - an output tried to read a key no earlier stop ever wrote, usually a typo or a capitalization mismatch (keys are exact strings). Second gotcha: because the F lane can read anything, it's easy to forget that the value it returns depends on where on the route you've parked it - the same key at stop one and stop six can mean different things by the time the node runs. Keep keys unique and read near where you write.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β | |
| ANY_(A)opt | * | β | |
| ANY_(B)opt | * | β | |
| ANY_(C)opt | * | β | |
| ANY_(D)opt | * | β | |
| ANY_(E)opt | * | β | |
| ANY_(A)_keyopt | STRING | β | |
| ANY_(B)_keyopt | STRING | β | |
| ANY_(C)_keyopt | STRING | β | |
| ANY_(D)_keyopt | STRING | β | |
| ANY_(E)_keyopt | STRING | β | |
| ANY_(F)_keyopt | STRING | β |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |