Motorway 7x7
The symmetric ramp for passing a whole bundle through
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- ANY_(G)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
- ANY (G)
Seven in, seven out - Motorway 7x7 is the even-keeled member of the Motorway family. The Motorway nodes come from ComfyUI_agilly1989_motorway, a small pack that implements a "pipe" for ComfyUI: a named-value bus that travels on a single MOTORWAY ππ¨ wire. Every Motorway node has inputs that write values onto the bus and outputs that read values off it, and a symmetric 7x7 is the shape you reach for when you want to move a whole bundle of stuff intact - write seven things on one side, read seven things out the other, and keep the bus going.
It reads almost like a bundle-through node, the way rgthree's Context Big lets you carry a cluster of connections down one wire - except here the "bundle" is just a dictionary with named keys, so you're not locked into a fixed order. The seven outputs can fetch any keys on the bus, not just the seven you plugged in at this node.
How it works
The mechanism is the same for every Motorway variant, and it's honestly simple. The bus is a small dict-like object whose keys are sha256 hashes of the names you type. On each run:
- The node takes the bus from its
MOTORWAY ππ¨input. - For each connected input with a non-empty
_key, it stores that value under the key. - It clones the bus (so nothing mutates in place).
- It emits the clone as the
MOTORWAY ππ¨output, plus one output per non-empty output key, reading each value back off the bus.
The persistence is the point: write keys on an early ramp, read them at the far end of the graph, and the values ride along untouched unless a later node writes the same key. That's why a 7x7 tends to appear near the end of a busy stretch, gathering seven outputs for a downstream consumer.
The inputs and outputs that matter
MOTORWAY ππ¨- required input and output; the bus itself, always.ANY (A)throughANY (G)- seven inputs, each with a_keyname field.ANY (A)throughANY (G)- seven outputs, each with a_keylookup field.
The only settings you touch are the fourteen key fields. Everything else is connect-and-go.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI after cloning, or install via ComfyUI Manager by searching "motorway". There are no pip dependencies and no model files - the pack is pure Python standard library. Be aware the clone registers ~120 Motorway nodes at once, which is why your search list suddenly has a "Motorway" wall in it.
Common issues
'MotorwayClass' object has no attribute 'hash_'- you asked an output for a key that was never written to the bus. Double-check spelling and case: keys are exact and case-sensitive.- Empty output keys shuffle sockets. Outputs only appear for non-empty keys and are positional, so fill them A through G in order or wires land on the wrong sockets.
- Silent overwrites. Two nodes writing the same key - last one wins. If a value is "wrong" further down, that's usually a duplicate key, not a bug in the pack.
- Beta software, loudly. The README's top line warns it's broken with async and that things break because the author broke them. Single-run workflows are fine; don't stake a scheduled batch job on it.
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_(G)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 | β |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |