Motorway 9x1
Dump nine values on the bus, pull the one you need
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- ANY_(G)
- ANY_(H)
- ANY_(I)
- MOTORWAY ππ¨
- ANY (A)
Motorway 9x1 is the collector with the most room to spare: nine inputs for adding values to the shared bus, and a single output for fetching one value back off. It comes from ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI, where a named-value dictionary rides a single MOTORWAY ππ¨ wire through the graph instead of a tangle of long wires.
The asymmetry is the feature. Inputs write, the one output reads - so a 9x1 is the node for "merge a big batch onto the bus, then immediately grab one specific thing back out." Dump your checkpoint, clip, vae, positive, negative, latent, seed, steps and scheduler onto the bus, and pull the seed straight out the other side to feed a save node or a seed-control widget. Nine things stored, one thing spent, one node instead of a dozen wires.
How it works
The shared engine, as with every Motorway node. The bus is a dict-like object whose keys are sha256 hashes of the names you type - exact, case-sensitive names. The node takes the incoming bus, stores each connected input under its _key name, clones the bus, and emits the clone plus the single value whose key you typed into the output's _key field. Values persist downstream until a later write to the same key overwrites them.
The one output is a pure lookup, not a passthrough of anything you just plugged in - type any key riding the bus and it appears there. With nine input keys and one output key, there's no ordering to worry about on the input side, and with a single output you can't trip over the "blank key shifts sockets" rule either. One of the friendlier nodes in the family to use blind.
The inputs and outputs that matter
MOTORWAY ππ¨- required bus input and the bus output that keeps the line alive.ANY (A)throughANY (I)- nine inputs, each with a_keyname field.ANY (A)- the single output; type a key into its_keyfield to fetch that value.
Connect nine, name nine, name the one you want back, wire it out. Under a minute, and a whole corner of the canvas stops being a maze.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI, or find it in ComfyUI Manager by searching "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_'- the key you asked the output to read was never written to the bus. Check spelling and case; keys are exact.- Needs a bus first. A 9x1 can't start a chain - begin with
MotorwayStartor a Motorway primitive that can start one. - Duplicate keys overwrite silently. If two ramps store the same name, the later value wins.
- Beta. The README warns it's broken with async and owns the "I broke it" disclaimer. Fine for single-run workflows.
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_(I)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 (2)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |