ComfyUI Node

Motorway 8x5

The mid-sized ramp that gives as much as it takes

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 8x5
  • 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 (E)
β—„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 8x5 sits in the comfortable middle of the Motorway family: eight inputs for loading values onto the bus, five outputs for taking them back off. The pack is ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI - a named-value dictionary that travels on a single MOTORWAY πŸšŒπŸ’¨ wire so you can collapse the long-range wires that make a graph unreadable.

The one concept to internalize: inputs write, outputs read, and the two sets are independent. The five outputs don't echo the eight inputs. Each output is a keyed lookup that can return any value riding the bus, from any ramp. An 8x5, then, is a node where you're adding a good handful of values to the bus and pulling a good handful out - the "both directions" workhorse you drop in at the boundary between two big stages of a workflow.

How it works

Every Motorway variant shares one implementation; only the socket counts differ. 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 stores each connected input under its _key name, clones the bus, and emits the clone plus one output per non-empty output key. Values persist downstream until a later write to the same key replaces them - that persistence is what makes the whole "write early, read late" pattern work.

The engine also reveals the one fiddly rule: outputs are emitted only for non-empty keys, and they're positional. Leave ANY (A)_key blank and everything shifts up a socket. Fill your output keys A through E in order and you'll never feel it.

The inputs and outputs that matter

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

Eight names to store, five names to fetch, five wires out. It's the rare node where reading the manual and using it take about the same amount of time.

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 clone registers the entire ~120-node Motorway family at once.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - a read key doesn't exist on the bus. Spelling and case matter; keys are exact.
  • Needs a bus to ride. First node in the chain should be MotorwayStart or a Motorway primitive that doubles as one.
  • Gap in output keys = shifted sockets. Fill A through E in order.
  • Duplicate keys overwrite silently. Later writes to the same key win, no warning.
  • Beta. The README flags async as broken and the author admits to breaking things. 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 (6)

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