Motorway 7x6
Six off-ramps when almost everything on the bus is needed here
- 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)
Motorway 7x6 is the ramp you pick when you're about to feed a big downstream stage - a KSampler, an upscaler, a face detailer - and you need most of what's riding on the bus right here. Seven inputs to attach values, six outputs to take them off. It's one variant from ComfyUI_agilly1989_motorway, a custom pack that implements a named-value bus ("pipe") for ComfyUI, so you can stop dragging the same model, conditioning and settings wires across the canvas and instead stash them on one MOTORWAY ππ¨ wire and fetch them by key.
The whole Motorway family is generated from one piece of logic with different input/output counts, so the "how it works" is identical across every variant. What differs is the shape, and the shape is the feature: 7x6 leans toward output, which suits the spot in a workflow right before something that consumes a lot.
How it works
The bus is a small dict-like object passed along the MOTORWAY ππ¨ connection, with keys stored as sha256 hashes of the names you type. On each run the node writes every connected input onto the bus under its _key name, clones the bus, and emits the clone plus whatever each output key looks up. Since every node clones rather than mutating in place, values persist all the way downstream - you can write at the top of the graph and read at the bottom, and the bus stays intact until a later write to the same key overrides it.
One subtlety that catches people: the output sockets are just lookups. If you type a key that nothing ever wrote, you get an error; if you leave an output key empty, that socket emits nothing and everything after it slides up a position.
The inputs and outputs that matter
MOTORWAY ππ¨- required bus input, plus the bus output that keeps the line alive.ANY (A)throughANY (G)- seven inputs; each has a matching_keyfield that names the value on the bus.ANY (A)throughANY (F)- six outputs; each reads whatever key you put in its_keyfield.
Set the input keys to store, set the output keys to fetch, wire the six outputs to wherever they're going. That's genuinely all there is to it.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI. It's also in ComfyUI Manager - search "motorway". Zero pip dependencies, zero model downloads; the pack is pure Python and the install is just a folder. Note that installing it registers the entire Motorway family, so your node search results get crowded with ~120 variants all at once.
Common issues
'MotorwayClass' object has no attribute 'hash_'- you referenced an output key that was never written to the bus. Check the spelling and the case; keys are exact.- Gaps in output keys renumber the sockets. Outputs are emitted positionally for non-empty keys, so fill A through F in order or your wires go to the wrong places.
- Last writer wins. Two ramps writing the same key silently override each other. If a value looks wrong downstream, look for a second write to that key.
- It's beta. The author's README flags async as currently broken and otherwise cheerfully says "if things break it's because I broke it." Fine for single-run workflows; plan around it if you batch.
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 (7)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |