ComfyUI Node

Motorway 6x6

The square that carries half a dozen things

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 6x6
  • MOTORWAY πŸšŒπŸ’¨
  • ANY_(A)
  • ANY_(B)
  • ANY_(C)
  • ANY_(D)
  • ANY_(E)
  • ANY_(F)
  • 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β€”β–Ί

Motorway 6x6 is the pack's bigger square: six inputs in, six ANY outputs out, plus the continuing MOTORWAY πŸšŒπŸ’¨ wire. From the agilly1989 Nodes/Motorways pack, it's the balanced middle of the six-input family - the node you reach for when you have six things to park and six things to pick up, and you want it all on one bus wire instead of a wall of cables.

The 6x6 names the shape: six inputs, six outputs, six key slots (A through F). Every lane is a write-and-read - type a key, plug a value into the matching ANY_(A)–ANY_(F) input, and the matching ANY (A)–ANY (F) output returns whatever that key holds at this point in the route. It's the most predictable node in the set: what you put in on a lane is what you get back on the same lane, unless an earlier stop already claimed that key.

How it works

Same engine as all Motorway nodes. The motorway is a custom object that behaves like a dict, keys stored under sha256 hashes so they never collide with ComfyUI's own attributes. When the node runs it pops the incoming MOTORWAY πŸšŒπŸ’¨, stores each connected input under its _key widget value, clones the bag, reads one key per output, and passes the bag onward. Because reads happen after writes, an output shows the freshly stored value on its lane - or, if you leave the input unconnected but keyed, whatever an earlier stop stored under that name.

That keyed-by-name design is the same idea behind rgthree's Context nodes and Efficiency Nodes: fewer long wires, values traveling by name. Motorway's version is a loose dict, so the naming discipline is on you - and that's exactly where the community's pipe-vs-debuggability debate lives. Tidy while you build, slightly cryptic when you revisit a month later.

The inputs and outputs that matter

Required MOTORWAY πŸšŒπŸ’¨ input (Motorway-type only, so it only connects to other Motorway nodes). Six optional inputs ANY_(A) through ANY_(F) with _key widgets. Outputs: MOTORWAY πŸšŒπŸ’¨, ANY (A) through ANY (F). Empty keys idle their lane, so you can run this as a 4x4 or even a 2x2 without errors.

Installing it

ComfyUI Manager - search ComfyUI_agilly1989_motorway - or:

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

Restart ComfyUI. There's no requirements.txt and no model download - pure Python on ComfyUI's own comfy_types, so it installs clean. It's a one-person beta project, and the README's opening line is an honest warning that things are actively being broken and fixed.

Common issues

The classic failure is KeyError: Key: 'x' doesn't exist in motorway (README's 'MotorwayClass' object has no attribute 'hash_') - an output read a key no stop has written. Keys are exact strings, so a typo or case mismatch is the usual suspect. And remember the overwrite rule: six keys is six chances to silently replace a value an earlier stop parked under the same name.

Categoryagilly1989 Nodes/Motorways

Inputs (13)

NameTypeDefaultDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
ANY_(A)opt*β€”
ANY_(B)opt*β€”
ANY_(C)opt*β€”
ANY_(D)opt*β€”
ANY_(E)opt*β€”
ANY_(F)opt*β€”
ANY_(A)_keyoptSTRINGβ€”
ANY_(B)_keyoptSTRINGβ€”
ANY_(C)_keyoptSTRINGβ€”
ANY_(D)_keyoptSTRINGβ€”
ANY_(E)_keyoptSTRINGβ€”
ANY_(F)_keyoptSTRINGβ€”

Outputs (7)

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