Motorway 10x0
Feed the whole pipeline in at once
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- ANY_(C)
- ANY_(D)
- ANY_(E)
- ANY_(F)
- ANY_(G)
- ANY_(H)
- ANY_(I)
- ANY_(J)
- MOTORWAY ππ¨
Motorway 10x0 is the biggest on-ramp in the pack: it takes up to ten values in, stores each under its own key, and passes the bus on. It's the mirror image of the 0x10 off-ramp - one node to load "everything your pipeline needs" onto the bus at the start, instead of four smaller on-ramps.
If the pack is new to you: it's agilly1989's key-value data bus for ComfyUI. MotorwayStart creates an empty bus, Nx0 nodes like this one store values under string keys, and 0xN ramps pull them out later. Same wire-reduction instinct as rgthree's Context nodes, but as an any-typed key-value bag.
How it works
This is the only node in the briefed set with real input lanes: ANY (A) through ANY (J) (all type *), each with a matching ANY_(X)_key widget. Wire values in, type the key you want each stored under, and the node writes them onto the bus, then hands a clone onward - snapshot semantics, no in-place mutation. Keys are exact strings, SHA-256 hashed internally, and duplicate keys overwrite (last writer wins).
The canonical shape from the pack's Example.json: a Motorway 4x0 sits right after CheckpointLoaderSimple and EmptyLatentImage, storing model, clip, vae and latent in one node. This 10x0 is the same idea scaled to "everything at once" - checkpoint outputs, latent, seed, an image for img2img, a denoise value, whatever your pipeline boots with.
Inputs and outputs that matter
MOTORWAY ππ¨(required) - the bus, fromMotorwayStartor an earlier ramp.ANY (A)βANY (J)(optional) - the values to store; leave unwired ones alone.ANY_(A)_keyβANY_(J)_key(optional) - the key for each stored value.- Output:
MOTORWAY ππ¨only.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
or ComfyUI Manager β "ComfyUI_agilly1989_motorway", then restart. No pip dependencies, no model downloads.
Where people get burned
'MotorwayClass' object has no attribute 'hash_'- a later pull asks for a key this on-ramp never wrote. Exact-match keys; a typo here silently blanks the whole downstream.- Blank keys. An input with an empty
_keyjust isn't stored - the bus passes through with nothing added. Easy to miss if you wired a value and forgot the key. - Beta. The README's own header says flows break between releases; pin the version if you build on it.
If you like the Motorway idea at all, 10x0 is the node that makes the "load once, pull everywhere" pattern comfortable. Just don't feel obliged to fill all ten lanes.
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 (1)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |