ComfyUI Node

Motorway 8x4

Feed the bus eight ways, take the four you need

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 8x4
  • MOTORWAY πŸšŒπŸ’¨
  • ANY_(A)
  • ANY_(B)
  • ANY_(C)
  • ANY_(D)
  • ANY_(E)
  • ANY_(F)
  • ANY_(G)
  • ANY_(H)
  • MOTORWAY πŸšŒπŸ’¨
  • ANY (A)
  • ANY (B)
  • ANY (C)
  • ANY (D)
β—„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 8x4 is the "stock the fridge, grab a snack" node of the Motorway family: eight inputs that add values to the shared bus, four outputs that pull values back off. It's one of the ~120 variants in ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI - a named-value bus riding a single MOTORWAY πŸšŒπŸ’¨ wire, designed to replace the spiderweb of long wires that makes big workflows unreadable.

The core idea, once more, because it's the whole ballgame: inputs write, outputs read, and they don't have to match. The four outputs are lookups by key and can return anything riding the bus - written here, or by a ramp further upstream. So 8x4 is a node that mostly contributes to the bus while keeping four specific values handy for the stage it feeds into.

How it works

Same engine as every Motorway node, just with different socket counts. The bus is a dict-like object keyed by sha256 hashes of the names you type - exact, case-sensitive names. On each run the node stores every connected input under its _key name, clones the bus, and emits the clone plus one output per non-empty output key. Cloning means nothing mutates in place, and values persist downstream until a later write to the same key overwrites them.

Because writes and reads are independent, you can think of an 8x4 as two lists sharing one namespace: eight names going in, four names coming out, and any overlap between them is your choice, not a requirement.

The inputs and outputs that matter

  • MOTORWAY πŸšŒπŸ’¨ - required bus input and the bus output that keeps the line alive.
  • ANY (A) through ANY (H) - eight inputs, each with a _key name field.
  • ANY (A) through ANY (D) - four outputs, each with a _key lookup field.

Store eight, fetch four. That's the entire setup: type the eight names, type the four names, wire the four outputs to their destinations.

Installing it

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

Restart ComfyUI, or find it in ComfyUI Manager by searching "motorway". No pip packages, no model downloads - it's pure Python, and installing it registers the whole ~120-node family at once.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - a read key was never written to the bus. Check spelling and case; keys are exact.
  • Forgetting MotorwayStart. A ramp can't ride a bus that doesn't exist. Start the chain with MotorwayStart or a Motorway primitive that acts as one.
  • Blank output keys shuffle sockets. Outputs are positional and only emitted for non-empty keys - keep A through D filled in order.
  • Silent overwrites on duplicate keys. The later writer wins, with no error.
  • Beta. The README opens with an async-broken warning and the author's own "I broke it" disclaimer. Fine for single-run workflows.
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 (5)

NameTypeDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
ANY (A)*β€”
ANY (B)*β€”
ANY (C)*β€”
ANY (D)*β€”