Motorway 10x6
The motorway junction that feeds the next stage
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- ANY_(G)
- ANY_(H)
- ANY_(I)
- ANY_(J)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
Once your pipeline needs more than a handful of values handed to the next stage, the Motorway 10x6 starts to look less like a novelty and more like the sensible way to build. Ten inputs on the write side, six outputs on the read side - it's the junction you drop in when the next subgraph needs the model, the two conditionings, the latent, the mask, and the denoise strength all at once, and you're tired of routing six individual wires.
The 10x6 comes from agilly1989/ComfyUI_agilly1989_motorway, the author's own take on ComfyUI's pipe idea. Where most pipe implementations (rgthree's Context nodes, for instance) carry a fixed set of slots, this one is a free-form keyed bag: every value travels under a name you choose, written and read by any Motorway ramp. The 10x6 is one of the read-heavier ramps, which makes it a natural "handoff" node between major stages of a workflow.
How it works. The motorway is a MotorwayClass - internally a set of attributes whose names are hash_ plus the sha256 of your key string. Each of the ten ANY_(A)βANY_(J) inputs has a _key field; fill the key and the connected value gets written to the bag. The six outputs (ANY (A)βANY (F)) read back by key from the corresponding _key fields. Every node clones the bag before passing it along, so the six values you read here all come from one snapshot, and writes from later nodes can't alter what you already captured.
Inputs and outputs that matter. The required MOTORWAY ππ¨ input is the live bus - feed it from MotorwayStart or another ramp. The ten ANY_ inputs and six ANY outputs are all wildcard-typed, so any ComfyUI type plugs in and wires out. There's no type checking here at all; the node trusts you to match key names and to wire each output to a slot that actually accepts its type. Get that right and the whole stage becomes one tidy bundle.
Install. ComfyUI Manager is the easy path (search "ComfyUI_agilly1989_motorway"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart ComfyUI. No model downloads, no requirements.txt, nothing but the Python in the repo.
Common issues. You already know this one by now: a read key that doesn't match any written key throws 'MotorwayClass' object has no attribute 'hash_'. It's a typo, or it's a key that only exists downstream of where you're reading. The order of operations matters - the bus flows left to right, and a ramp can only read what earlier ramps have written. Also remember this is a beta pack whose README begins with an admission that it's broken and will be fixed "when I get the time/motivation". It works for most people most of the time; just don't be shocked when a version bump breaks your saved workflow.
Inputs (21)
| 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_(J)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 (7)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |