ComfyUI Node

Motorway 8x3

Eight onto the bus, three off β€” the first balanced-ish ramp

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

Motorway 8x3 is a ramp with a slight lean toward the input side: eight sockets for putting values onto the bus, three sockets for taking values back off. It comes from ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI, where a named-value dictionary travels on a single MOTORWAY πŸšŒπŸ’¨ wire so you can stop cross-connecting everything to everything.

The framing you need before anything else: in the Motorway system, inputs write and outputs read, and the two lists are independent. Eight in and three out does not mean the three outputs are drawn from the eight inputs - each output is a lookup by key, and can pull any value that's riding the bus, wherever it was written. An 8x3 is therefore the ramp you use when you're mostly enriching the bus (checkpoint, clip, vae, conditioning, settings...) but still want a few things in hand for the immediate next node.

How it works

Every Motorway variant runs identical logic; only the socket counts change. 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. Because the bus is cloned at every step, values persist downstream until a later write to the same key replaces them - write once at the top, read anywhere below.

The practical consequence: an 8x3 is a "contribute and dip" node. You attach your eight values for the benefit of the rest of the graph, and you dip out the three keys the current stage needs right now.

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 has a _key field that names what you're storing.
  • ANY (A), ANY (B), ANY (C) - three outputs; each has a _key field that names what to pull off.

Type eight names to store, type three names to fetch, wire the three outputs on. Everything else is automatic.

Installing it

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

Restart ComfyUI, or install through ComfyUI Manager (search "motorway"). There are no pip dependencies and no models to download - pure Python, and the clone brings all ~120 Motorway variants with it.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - you read a key that was never written. Check spelling and case; keys are exact.
  • No bus, no ride. The first node in a Motorway chain must be MotorwayStart (or a Motorway primitive that doubles as a start).
  • Output socket shift from blank keys. Outputs only appear for non-empty keys and are positional - fill A, B, C in order or wires land wrong.
  • Duplicate keys overwrite silently. Two ramps storing the same name - the later one wins.
  • Beta software. README flags async as broken and owns that "things break because I broke it." 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 (4)

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