ComfyUI Node

Motorway 8x0

The pure on-ramp that loads the bus and never takes anything off

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 8x0
  • MOTORWAY πŸšŒπŸ’¨
  • ANY_(A)
  • ANY_(B)
  • ANY_(C)
  • ANY_(D)
  • ANY_(E)
  • ANY_(F)
  • ANY_(G)
  • ANY_(H)
  • MOTORWAY πŸšŒπŸ’¨
β—„ANY_(A)_keyβ€”β–Ί
β—„ANY_(B)_keyβ€”β–Ί
β—„ANY_(C)_keyβ€”β–Ί
β—„ANY_(D)_keyβ€”β–Ί
β—„ANY_(E)_keyβ€”β–Ί
β—„ANY_(F)_keyβ€”β–Ί
β—„ANY_(G)_keyβ€”β–Ί
β—„ANY_(H)_keyβ€”β–Ί

Motorway 8x0 is the odd one out, and it's genuinely useful because of it. Eight inputs, zero outputs - no, it's not a typo, and no, it doesn't do nothing. In the Motorway pack (ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI), inputs write values onto a shared named bus and outputs read them off. A zero-output node has nothing to read, so it's a pure loading dock: eight sockets for shoving values onto the MOTORWAY πŸšŒπŸ’¨ bus, and nothing but the bus itself coming out the other side.

That makes 8x0 your "settings" node. Park one near the start of the workflow, type keys like "model", "clip", "vae", "seed", "steps", and everything downstream that needs those values can read them off the bus at their own ramps - without a single wire running from this node to anywhere else. It's the cleanest way to define the constants and models a whole graph depends on, in one place.

How it works

The mechanics are the same as every Motorway node, just with the read half lopped off. The bus is a dict-like object whose keys are sha256 hashes of the names you type. On each run, the node takes the bus in, stores every connected input under its _key name, clones the bus, and emits the clone as its single MOTORWAY πŸšŒπŸ’¨ output. That's it - one output, and it's always the bus, so you always chain it into the next Motorway node or into MotorwayStart's successor.

Because values persist until overwritten, what you load here at the top of the graph is available at the bottom. And because the node clones rather than mutates, nothing else on the bus is disturbed. If this is your first Motorway node, it has to come after a MotorwayStart - a ramp can't load anything onto a bus that doesn't exist yet.

The inputs and outputs that matter

  • MOTORWAY πŸšŒπŸ’¨ - the required input (bus from upstream) and the sole output (bus onward).
  • ANY (A) through ANY (H) - eight inputs. Each has a _key field; type the name that value gets stored under.

That's the whole node: eight values in, named, and released onto the bus. The output count of zero is the feature, not a bug - this node is meant to disappear into the background and feed everything else.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway

Restart ComfyUI, or install via ComfyUI Manager (search "motorway"). No pip dependencies, no model downloads - pure Python, and the whole ~120-node Motorway family comes along with the clone.

Common issues

  • Forgetting the start node. Motorway 8x0 needs a bus on its input. First node in the chain should be MotorwayStart (or a Motorway primitive like MotorwaySeed/MotorwayInt, which can start a bus themselves).
  • 'MotorwayClass' object has no attribute 'hash_' appears downstream if an output elsewhere references a key you never wrote here - check your key spelling and case, they're exact.
  • Silent overwrites. If another ramp writes the same key later, the later value wins.
  • Beta. The README flags async as broken and cheerfully admits the author breaks things. Fine for ordinary single-run graphs.
Categoryagilly1989 Nodes/Motorways

Inputs (17)

NameTypeDefaultDescription
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_(A)_keyoptSTRINGβ€”
ANY_(B)_keyoptSTRINGβ€”
ANY_(C)_keyoptSTRINGβ€”
ANY_(D)_keyoptSTRINGβ€”
ANY_(E)_keyoptSTRINGβ€”
ANY_(F)_keyoptSTRINGβ€”
ANY_(G)_keyoptSTRINGβ€”
ANY_(H)_keyoptSTRINGβ€”

Outputs (1)

NameTypeDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”