ComfyUI Node

Motorway 7x9

Nine off-ramps for spreading one bus across the whole graph

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

Motorway 7x9 is the widest fan-out in the seven-input branch of the Motorway family: seven inputs to add values to the bus, nine outputs to pull values off and scatter them around your graph. It comes from ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI - a named-value dictionary that rides a single MOTORWAY πŸšŒπŸ’¨ wire so you can stop dragging the same wires across a mile of canvas.

The mental model you need is "inputs write, outputs read, never the twain shall be matched." The nine outputs don't echo the seven inputs. Each output is a lookup for a key that can have been written anywhere - earlier on this ramp, or by a completely different ramp up the graph. So a 7x9 is a distribution point: you park it somewhere central, type the names of everything you want to surface, and run wires from the nine sockets to nine different destinations.

How it works

Every Motorway node runs the same routine. The bus is a dict-like object whose keys are sha256 hashes of the names you type, so names are exact and case-sensitive. The node takes the incoming bus, stores each connected input under its _key name, clones the bus, then emits the clone plus one output per non-empty output key. Values persist all the way downstream until a later write to the same key overrides them - that's what lets a ramp near the top of the graph feed an output ramp at the bottom.

Since outputs outnumber inputs here, the key fields are generated up to the larger count: seven ANY (A)…ANY (G) input sockets, but ANY (A)_key through ANY (I)_key (nine) key fields. The extra two keys only matter for the outputs. Don't let it confuse you - every output socket has a key field, and that's the one you type into.

The inputs and outputs that matter

  • MOTORWAY πŸšŒπŸ’¨ - required bus input and the bus output that continues the line.
  • ANY (A) through ANY (G) - seven inputs, each with a _key field.
  • ANY (A) through ANY (I) - nine outputs, each with a _key field that names what to pull off.

The rule to live by: fill output keys in order (A, B, C…) with no gaps. Outputs are positional and only emitted for non-empty keys, so a blank in the middle shifts everything after it up a socket.

Installing it

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

Restart ComfyUI afterwards, or install via ComfyUI Manager (search "motorway"). The pack has no pip dependencies and no models to download - it's pure Python, and installing it registers the entire ~120-node Motorway family at once.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - you read a key that was never written. Check spelling and case; keys are exact.
  • Positional socket shift from gaps - keep the nine output keys in order or your wires land on the wrong sockets.
  • Silent last-writer-wins overwrites - two ramps using the same key override each other without warning.
  • It's beta. The README says it's broken with async (fix pending "time/motivation") and generally warns things break because the author broke them. Fine for single runs.
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_(A)_keyoptSTRINGβ€”
ANY_(B)_keyoptSTRINGβ€”
ANY_(C)_keyoptSTRINGβ€”
ANY_(D)_keyoptSTRINGβ€”
ANY_(E)_keyoptSTRINGβ€”
ANY_(F)_keyoptSTRINGβ€”
ANY_(G)_keyoptSTRINGβ€”
ANY_(H)_keyoptSTRINGβ€”
ANY_(I)_keyoptSTRINGβ€”

Outputs (10)

NameTypeDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
ANY (A)*β€”
ANY (B)*β€”
ANY (C)*β€”
ANY (D)*β€”
ANY (E)*β€”
ANY (F)*β€”
ANY (G)*β€”
ANY (H)*β€”
ANY (I)*β€”