Motorway 2x9
Motorway 2x9
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
- ANY (G)
- ANY (H)
- ANY (I)
Motorway 2x9 is the "two in, nine out" junction of the agilly1989 Motorway pack, and it's basically a distribution panel: two values join the bus and nine named values come off it, seven of them pure taps into things that were already stored. It's what you drop into a workflow when you're carrying only a couple of live values but a whole field of consumers each need to read something from the route.
The Motorway is a beta "pipe" implementation by solo dev agilly1989 - the same family as rgthree's Context nodes and Impact Pack pipes, but instead of passing a dict it passes a MotorwayClass bus object down one wire. That wire is the MOTORWAY ππ¨ connection, the required input on every node and always the first output so the route continues. Start with MotorwayStart; the bus has to come from somewhere.
How it works
The mechanism is the same across the pack: keys. Wire values into ANY_(A) and ANY_(B), type a name into each matching _key box, and the node stores both under those names. The pack always hands you as many key slots as the larger side - here that's nine:
- inputs
ANY_(A)andANY_(B)with keys - read-only key slots
ANY_(C)_keythroughANY_(I)_key - the required
MOTORWAY ππ¨bus input - outputs
MOTORWAY ππ¨,ANY (A)throughANY (I)
A and B are double-duty: each key names its input and reads its own output. The seven CβI slots are taps - put a key that's on the bus into one and the output hands it over. So you might carry just model and vae forward while tapping positive, negative, seed, steps, cfg, denoise and latent that earlier nodes parked on the route. Nine useful wires, one node.
Keys are sha256-hashed into hash_β¦ attributes internally, which is why missing keys show up as 'MotorwayClass' object has no attribute 'hash_' - the pack is not subtle about it. Same key written twice anywhere overwrites the first value.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
then restart ComfyUI, or find ComfyUI_agilly1989_motorway in ComfyUI Manager. No pip dependencies, no model downloads. Pure Python - clone, restart, done.
Common issues
- The
hash_error means the key was never written or is spelled differently upstream. Keys match exactly, spaces and capitalization included. - Every key slot must be filled. An empty
_keymeans that output is never produced, so wiring anything into it errors on a missing output. - Only key inputs you've actually connected; an unconnected input with a key writes
Noneand can wipe a stored value.
It's a beta pack and the author will tell you so. But as a "carry two, expose nine" hub, 2x9 does exactly what it says on the tin.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β | |
| ANY_(A)opt | * | β | |
| ANY_(B)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 (10)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |
| ANY (I) | * | β |