Motorway 6x9
Six in, nine out, three reads from the back catalog
- 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)
- ANY (I)
Motorway 6x9 is the big fan-out in the six-input family: six values in, nine ANY outputs out, plus the continuing MOTORWAY ππ¨ wire. It's from the agilly1989 Nodes/Motorways pack, and it's for the workflow where one packed stop has to feed a small army of consumers - and where three of those consumers want values that were written earlier in the pipeline, not here.
The 6x9 names the shape. Nine output slots mean nine key lanes (A through I), but only six inputs - so lanes G, H and I are pure reads with no input wire. Type an existing key into one and the matching output returns whatever the route holds under that name. If you've ever wanted a single node that writes six fresh values and simultaneously pulls three old ones back out, this is it.
How it works
Same engine as every Motorway node. The motorway is a custom class that behaves like a dict, keys stored under sha256 hashes so nothing collides with ComfyUI's own attributes. When the node runs it pops the incoming MOTORWAY ππ¨, stores each connected input under its _key widget value, clones the bag, reads one key per output slot, and passes the bag forward. A key written at any earlier stop is readable at any later stop; a reused key overwrites the old value rather than merging.
The read-after-write ordering is worth internalizing with nine lanes: the AβF outputs show what those keys hold after this stop's writes, and the GβI reads show what older keys hold at this exact point on the route. Same key name can mean different things at stop two and stop nine - which is either flexibility or foot-gun, depending on how disciplined you are with naming.
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 (I). Empty keys idle their lane, so unused read lanes don't error - run it as a 5x5 if that's all you need.
Installing it
ComfyUI Manager - search ComfyUI_agilly1989_motorway - or clone:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI. No requirements.txt, no model downloads; it's pure Python on ComfyUI's own comfy_types. One-person beta project - the README is upfront that it's actively being broken and fixed, so pin a version for anything you care about.
Common issues
The familiar failure is KeyError: Key: 'x' doesn't exist in motorway (README's 'MotorwayClass' object has no attribute 'hash_') - an output read a key no stop has written, usually a typo; keys are exact, case-sensitive strings. And with three read lanes plus six write lanes, the overwrite rule is the real gotcha: a reused key doesn't merge, the later write wins. Unique keys, and you'll mostly dodge both.
Inputs (16)
| 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 | β | |
| ANY_(I)_keyopt | STRING | β |
Outputs (10)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |
| ANY (I) | * | β |