Motorway 2x8
Motorway 2x8
- MOTORWAY ππ¨
- ANY_(A)
- ANY_(B)
- MOTORWAY ππ¨
- ANY (A)
- ANY (B)
- ANY (C)
- ANY (D)
- ANY (E)
- ANY (F)
- ANY (G)
- ANY (H)
Motorway 2x8 is the "two in, eight out" junction in the agilly1989 Motorway pack - six of those eight outputs are read-only taps into values that are already sitting on the bus. By the time you're at 2x8, the node is less about what you're feeding it and more about what it can pull out for you. Two shared values drive the whole downstream graph, and this is the node that hands them around.
The Motorway is a beta "pipe" implementation by solo dev agilly1989, in the same lineage as rgthree's Context nodes and Impact Pack pipes: bundle values onto one wire instead of crossing them all over the canvas. The difference is the transport - a MotorwayClass bus object travels down a single MOTORWAY ππ¨ connection that every node shares as its required input and first output. You start every route with MotorwayStart, then ride the bus through as many junctions as the graph needs.
How it works
Like every Motorway node, it's a key-driven write-and-read junction. Values go into ANY_(A) and ANY_(B), named by ANY_(A)_key and ANY_(B)_key. Then the fan-out math kicks in: the pack always provides as many key slots as the larger of inputs or outputs, so this node has eight:
- inputs
ANY_(A)andANY_(B)with keys - read-only key slots
ANY_(C)_keythroughANY_(H)_key - the required
MOTORWAY ππ¨bus input - outputs
MOTORWAY ππ¨,ANY (A)throughANY (H)
A and B write their inputs and immediately read them back. The six remaining slots are taps: put any key already on the bus into a _key box and its output hands over the value. In practice that means you can pass two things forward while also exposing six things from earlier in the route - an entire control panel of settings, all coming out of one tidy node instead of six wandering wires.
The storage is per-key sha256 hashes (your positive becomes something like hash_4f1aβ¦), so a key that doesn't exist errors as 'MotorwayClass' object has no attribute 'hash_'. Reusing a key anywhere later overwrites whatever was stored first.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
then restart ComfyUI, or install through ComfyUI Manager by searching ComfyUI_agilly1989_motorway. No pip dependencies, no model files; pure Python, so clone-and-restart is the whole setup.
Common issues
hash_error: the key was never written, or you've mismatched case or spacing. Keys match exactly.- Empty key slots are the main footgun - each means that output is never produced, which ComfyUI flags the moment you wire something into it. Fill every
_key. - Don't fill a key on a disconnected input. It stores
Noneunder that name and can clobber a value you were counting on.
Beta pack, explicitly so, but if your graph is "two values in, everyone downstream needs to read things," 2x8 is a very convenient hub.
Inputs (11)
| 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 | β |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |