ComfyUI Node

Motorway 8x7

Nearly symmetric, leaning toward the off-ramps

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 8x7
  • 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 (F)
  • ANY (G)
β—„ANY_(A)_keyβ€”β–Ί
β—„ANY_(B)_keyβ€”β–Ί
β—„ANY_(C)_keyβ€”β–Ί
β—„ANY_(D)_keyβ€”β–Ί
β—„ANY_(E)_keyβ€”β–Ί
β—„ANY_(F)_keyβ€”β–Ί
β—„ANY_(G)_keyβ€”β–Ί
β—„ANY_(H)_keyβ€”β–Ί

Eight in, seven out - Motorway 8x7 is one output short of the symmetric ramp, which makes it the shape for a node that's mostly passing a bundle through but wants to grab a little more out than it puts in. It's part of ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI, where a named-value dictionary rides a single MOTORWAY πŸšŒπŸ’¨ wire so a busy workflow doesn't need wires strung across the whole canvas.

The usual Motorway rule applies: inputs write onto the bus, outputs read off it, and the two lists are independent. With seven outputs you can fetch a lot of what's riding the bus - including values written by ramps earlier in the graph - while still contributing eight new ones. If you've ever wished there were a node that said "everything the bus knows, but bigger," this is close.

How it works

Same shared engine as every Motorway node. The bus is a dict-like object whose keys are sha256 hashes of the names you type - exact and case-sensitive. Each run: store every connected input under its _key name, clone the bus, emit the clone plus one output per non-empty output key. Values persist downstream until a later write to the same key replaces them.

Because outputs (7) and inputs (8) are close, the key fields are generated up to the larger count - here that's eight, so you get ANY (A)_key through ANY (H)_key, one per input socket, and the same eight keys double as the lookups behind the seven outputs. Nothing extra to configure; the input keys and output lookups share one namespace.

The inputs and outputs that matter

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

Store eight, fetch seven, and keep the output keys contiguous - A through G in order - because outputs are positional and only emitted for non-empty keys.

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 family installs with the clone.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - a read key doesn't exist on the bus yet. Spelling and case matter; keys are exact.
  • Forgetting to start the bus. First node in the chain should be MotorwayStart or a Motorway primitive that acts as one.
  • Gaps in output keys renumber sockets. Keep A through G filled in order.
  • Duplicate keys win silently. Later writes to the same key override earlier ones.
  • Beta with disclaimers. The README flags async as broken and openly says things break because the author broke them. 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 (8)

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