ComfyUI Node

Motorway 8x6

Feed eight, fetch six β€” the ramp for a hungry downstream stage

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

Motorway 8x6 is the ramp you put right before something that consumes a lot: eight inputs to add values to the shared bus, six outputs to hand values off to the next stage. It's one of the ~120 nodes in ComfyUI_agilly1989_motorway, agilly1989's "pipe" implementation for ComfyUI - a named-value bus riding a single MOTORWAY πŸšŒπŸ’¨ wire, built to keep large workflows from turning into a plate of spaghetti.

As ever in this pack: inputs write, outputs read, and the two sets don't need to overlap. Six outputs is a lot of lookups, which makes 8x6 the natural choice at a fork or a big consumer - a sampling block, an upscaler, a bundle of save/preview nodes that each want their own slice of the bus.

How it works

The engine is shared across every Motorway node. The bus is a dict-like object keyed by sha256 hashes of your key names - exact, case-sensitive names. 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. Cloning means values persist downstream untouched until a later write to the same key overrides them, which is what lets one ramp near the top feed a fan of outputs at the bottom.

A note specific to this shape: the _key fields are generated up to the larger of the two counts, which here is eight. So 8x6 has eight input sockets with key fields ANY (A)_key through ANY (H)_key, and the same keys double as the lookups behind the six outputs - so you only ever type up to six of them on the read side. Nothing to configure on the input side beyond the eight you use.

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 (F) - six outputs, each with a _key lookup field.

Store eight, fetch six, and keep the six output keys filled in order - output sockets are positional and only populated for non-empty keys.

Installing it

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

Restart ComfyUI, or grab it from ComfyUI Manager (search "motorway"). No pip packages, no model files - pure Python, and the clone registers all ~120 Motorway variants 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.
  • No start node. A ramp needs a bus - begin the chain with MotorwayStart or a Motorway primitive that can start one.
  • Blank output keys shift sockets. Fill ANY (A)_key through ANY (F)_key in order.
  • Silent overwrites. Two ramps writing the same key - the later one wins, no error.
  • Beta software. The README warns it's broken with async and owns the "I broke it" disclaimer. 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 (7)

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