Motorway 6x6
The square that carries half a dozen things
- 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)
Motorway 6x6 is the pack's bigger square: six inputs in, six ANY outputs out, plus the continuing MOTORWAY ππ¨ wire. From the agilly1989 Nodes/Motorways pack, it's the balanced middle of the six-input family - the node you reach for when you have six things to park and six things to pick up, and you want it all on one bus wire instead of a wall of cables.
The 6x6 names the shape: six inputs, six outputs, six key slots (A through F). Every lane is a write-and-read - type a key, plug a value into the matching ANY_(A)βANY_(F) input, and the matching ANY (A)βANY (F) output returns whatever that key holds at this point in the route. It's the most predictable node in the set: what you put in on a lane is what you get back on the same lane, unless an earlier stop already claimed that key.
How it works
Same engine as all Motorway nodes. The motorway is a custom object that behaves like a dict, keys stored under sha256 hashes so they never collide 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, and passes the bag onward. Because reads happen after writes, an output shows the freshly stored value on its lane - or, if you leave the input unconnected but keyed, whatever an earlier stop stored under that name.
That keyed-by-name design is the same idea behind rgthree's Context nodes and Efficiency Nodes: fewer long wires, values traveling by name. Motorway's version is a loose dict, so the naming discipline is on you - and that's exactly where the community's pipe-vs-debuggability debate lives. Tidy while you build, slightly cryptic when you revisit a month later.
The inputs and outputs that matter
Required MOTORWAY ππ¨ input (Motorway-type only, so it only connects to other Motorway nodes). Six optional inputs ANY_(A) through ANY_(F) with _key widgets. Outputs: MOTORWAY ππ¨, ANY (A) through ANY (F). Empty keys idle their lane, so you can run this as a 4x4 or even a 2x2 without errors.
Installing it
ComfyUI Manager - search ComfyUI_agilly1989_motorway - or:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI. There's no requirements.txt and no model download - pure Python on ComfyUI's own comfy_types, so it installs clean. It's a one-person beta project, and the README's opening line is an honest warning that things are actively being broken and fixed.
Common issues
The classic 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. Keys are exact strings, so a typo or case mismatch is the usual suspect. And remember the overwrite rule: six keys is six chances to silently replace a value an earlier stop parked under the same name.
Inputs (13)
| 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 | β |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |