ComfyUI Node

Motorway 7x10

The everything stop at the top of the pack

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 7x10
  • MOTORWAY πŸšŒπŸ’¨
  • ANY_(A)
  • ANY_(B)
  • ANY_(C)
  • ANY_(D)
  • ANY_(E)
  • ANY_(F)
  • ANY_(G)
  • MOTORWAY πŸšŒπŸ’¨
  • ANY (A)
  • ANY (B)
  • ANY (C)
  • ANY (D)
  • ANY (E)
  • ANY (F)
  • ANY (G)
  • ANY (H)
  • ANY (I)
  • ANY (J)
β—„ANY_(A)_keyβ€”β–Ί
β—„ANY_(B)_keyβ€”β–Ί
β—„ANY_(C)_keyβ€”β–Ί
β—„ANY_(D)_keyβ€”β–Ί
β—„ANY_(E)_keyβ€”β–Ί
β—„ANY_(F)_keyβ€”β–Ί
β—„ANY_(G)_keyβ€”β–Ί
β—„ANY_(H)_keyβ€”β–Ί
β—„ANY_(I)_keyβ€”β–Ί
β—„ANY_(J)_keyβ€”β–Ί

Motorway 7x10 is the biggest node this pack generates: seven inputs in, ten ANY outputs out, plus the continuing MOTORWAY πŸšŒπŸ’¨ wire. It's from the agilly1989 Nodes/Motorways pack, and it's the everything-stop for a seriously crowded pipeline - one node that swallows seven values and spits out ten, feeding a whole back half of the graph off a single bus wire.

The 7x10 names the shape, and it sits at the pack's ceiling: the shipped code generates up to 10x10 (MAX_IN = 10, MAX_OUT = 10 in ramps/generated.py), so 7x10 has the most inputs of any max-width node in the set. Ten output slots mean ten key lanes (A through J), but only seven inputs feed in - so lanes H, I and J are pure reads. No input wire, just _key widgets: type an existing key and those outputs return whatever earlier stops stored under it. Seven fresh writes plus three taps into the route's history, all in one stop.

How it works

Same engine as every Motorway node. The motorway is a custom class 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 slot, and passes the bag forward. Any key written at an earlier stop is readable at any later stop; a reused key overwrites the old value rather than merging.

That keyed-by-name design is the same philosophy as rgthree's Context nodes and Efficiency Nodes - fewer wires, values traveling by name - implemented as a loose dict. It's the tidiest way to build a workflow where a checkpoint, a seed and a pile of conditioning all need to reach several samplers and detailers. The tradeoff, and the whole community debate around pipes, is remembering what you named things.

The inputs and outputs that matter

Required MOTORWAY πŸšŒπŸ’¨ input (Motorway-type only). Seven optional inputs ANY_(A) through ANY_(G) with _key widgets. Outputs: MOTORWAY πŸšŒπŸ’¨, ANY (A) through ANY (J). The A–G lanes write-and-read; H–J are read-only taps. Empty keys idle their lane, so you never have to fill all ten.

Installing it

ComfyUI Manager - search ComfyUI_agilly1989_motorway - or clone:

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

Restart ComfyUI. No requirements.txt, no model downloads; pure Python on ComfyUI's own comfy_types. It's a one-person beta project whose README opens with "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION" - pin a version if a shared workflow depends on it.

Common issues

The tell is KeyError: Key: 'x' doesn't exist in motorway (README's 'MotorwayClass' object has no attribute 'hash_'): an output read a key nothing has written, usually a typo - keys are exact, case-sensitive strings. And with three read lanes plus seven write lanes, the overwrite rule is the real trap: a reused key silently replaces the old value. Keep keys unique per pipeline and this beast behaves.

Categoryagilly1989 Nodes/Motorways

Inputs (18)

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_(A)_keyoptSTRINGβ€”
ANY_(B)_keyoptSTRINGβ€”
ANY_(C)_keyoptSTRINGβ€”
ANY_(D)_keyoptSTRINGβ€”
ANY_(E)_keyoptSTRINGβ€”
ANY_(F)_keyoptSTRINGβ€”
ANY_(G)_keyoptSTRINGβ€”
ANY_(H)_keyoptSTRINGβ€”
ANY_(I)_keyoptSTRINGβ€”
ANY_(J)_keyoptSTRINGβ€”

Outputs (11)

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