Motorway 8x10
The maximum fan-out β spread one bus to ten places
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- ANY_(G)
- ANY_(H)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
- ANY (G)
- ANY (H)
- ANY (I)
- ANY (J)
Motorway 8x10 is the widest node in this batch of the Motorway family: eight inputs to load values onto the bus, ten outputs to spread them around. It's from ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI - a named-value dictionary that rides one MOTORWAY ππ¨ wire, so you can stop dragging a dozen wires from the top of the graph to the bottom.
The governing rule: inputs write, outputs read, independent. Ten outputs is the maximum this family offers, which makes 8x10 the hub node - the place where a bus branches out to feed a whole section of the graph. Ten lookups means ten destinations: a sampler, an upscaler, several save and preview nodes, a controlnet block, a face detailer. You contribute eight values and fan the bus out ten ways.
How it works
Every Motorway node runs the same routine with different socket counts. The bus is a dict-like object whose keys are sha256 hashes of the names you type - exact, case-sensitive. The node stores each connected input under its _key name, clones the bus, and emits the clone plus one output per non-empty output key. Values persist downstream until a later write to the same key overrides them.
Because outputs max out here, the key fields run to the larger count: eight input sockets but ten _key fields, ANY (A)_key through ANY (J)_key. The extra two keys exist only to drive output sockets. If you're coming from a smaller Motorway node, that's the one layout difference worth noticing.
The inputs and outputs that matter
MOTORWAY ππ¨- required bus input and the bus output that carries the line onward.ANY (A)throughANY (H)- eight inputs, each with a_keyname field.ANY (A)throughANY (J)- ten outputs, each with a_keylookup field.
Ten outputs means ten keys to type and ten wires to route. Keep them in order - A through J with no gaps - because outputs are positional and only emitted for non-empty keys, and a blank in the middle shuffles everything after it up a socket.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI, or grab it from ComfyUI Manager (search "motorway"). No pip packages, no model files - pure Python, and the clone registers all ~120 Motorway variants at once.
Common issues
'MotorwayClass' object has no attribute 'hash_'- a read key was never written to the bus. Check spelling and case; keys are exact.- Needs a bus to ride. Start the chain with
MotorwayStartor a Motorway primitive that acts as one. - Gaps in output keys renumber sockets. Fill A through J in order or your ten wires land wrong.
- Silent overwrites on duplicate keys. The later writer wins, no warning.
- Beta. The README warns it's broken with async and owns the "I broke it" disclaimer. Fine for single-run graphs; don't base a batch pipeline on it yet.
Inputs (19)
| 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_(H)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 | β | |
| ANY_(J)_keyopt | STRING | β |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |
| ANY (I) | * | β |
| ANY (J) | * | β |