Motorway 6x8
Six in, eight out, two taps into the route
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
- ANY (G)
- ANY (H)
Motorway 6x8 is the wide fan-out of the six-input family: six values in, eight ANY outputs out, plus the continuing MOTORWAY ππ¨ wire. It's from the agilly1989 Nodes/Motorways pack, and it's the node for the moment where a packed stop has to feed a lot of consumers - a checkpoint's model, VAE and conditioning reaching several samplers and detailers, without eight wires dragging across the canvas.
The 6x8 names the shape. Because key slots are generated per output, you get eight lanes (A through H) with only six inputs - so lanes G and H are pure reads. No input wire, just a _key widget each: type an existing key and ANY (G) / ANY (H) return whatever earlier stops stored under those names. Six fresh writes plus two free taps into the route's history, all in one node.
How it works
Same engine as every Motorway node. The motorway is a custom object that behaves like a dict, keys stored under sha256 hashes. When the node runs it pops the incoming MOTORWAY ππ¨, stores each connected ANY_(A)βANY_(F) input under its _key widget value, clones the bag, reads one key per output slot, and passes the bag onward. Keys written at earlier stops are readable at later stops by name; a reused key overwrites the old value rather than appending.
That keyed-by-name design is the same idea as rgthree's Context nodes and Efficiency Nodes - fewer wires, values traveling by name. Motorway just implements it as a loose dict, which is fast to build and genuinely tidier, at the cost of you remembering what you named things. That tradeoff is the whole community debate around pipe nodes, and it's worth knowing before you commit.
The inputs and outputs that matter
Required MOTORWAY ππ¨ input (Motorway-type only). Six optional inputs ANY_(A) through ANY_(F) with _key widgets. Outputs: MOTORWAY ππ¨, ANY (A) through ANY (H). The AβF lanes write-and-read; G and H are read-only taps. Empty keys idle their lane, so this node happily runs as a 4x5.
Installing it
ComfyUI Manager - search ComfyUI_agilly1989_motorway - or:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI. No requirements.txt, no model downloads; pure Python on ComfyUI's own comfy_types. One-person beta project with an honest "it works on my system" README - pin a version if a shared workflow depends on it.
Common issues
The tell is KeyError: Key: 'x' doesn't exist in motorway (README's 'MotorwayClass' object has no attribute 'hash_'): an output read a key nothing has written, usually a typo or case mismatch - keys are exact strings. And with this many read lanes, the overwrite rule bites harder: two stops both writing "model" means only the last one survives. Keep keys unique and this becomes a genuinely pleasant distribution hub.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β | |
| ANY_(A)opt | * | β | |
| ANY_(B)opt | * | β | |
| ANY_(C)opt | * | β | |
| ANY_(D)opt | * | β | |
| ANY_(E)opt | * | β | |
| ANY_(F)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 | β | |
| ANY_(G)_keyopt | STRING | β | |
| ANY_(H)_keyopt | STRING | β |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |