ComfyUI Node

Motorway 9x3

The bundle-plus-three sweet spot

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

Motorway 9x3 is where this pack's ramp nodes stop feeling like overkill and start feeling like the default. Nine wildcard inputs (A through I) load into the Motorway bag, the Motorway passes through, and you get three pull-ports (A, B, C) to fish values back out. It's the "bundle the kitchen sink, then grab the three things you actually wire anywhere" shape.

The naming is self-explanatory once you know the pattern: Motorway [inputs]x[outputs]. Every node here shares the same DNA - a MOTORWAY input in, a MOTORWAY output out, and any number of ANY slots in between. The ANY slots are wildcard-typed, so they happily carry a checkpoint, a conditioning, a latent, a mask, an int, whatever. Each input has a _key string next to it; type a name and the value is stored in the shared bag under that name. Each output is a query port: type a key and it fetches whatever is stored under it, even if that value was written somewhere far upstream.

Under the hood, the bag is a dict-like class that stores values under sha256 hashes of your key strings, and it's cloned at every node so downstream branches each get an independent copy. That clone is what makes the 9x3 nice for fan-out: wire the Motorway output into two paths and neither can corrupt the other's view of the bag.

Why you'd reach for 9x3 specifically: it's the smallest of the 9-input ramps that still gives you a trio of useful outputs, and trios come up constantly - model/clip/vae, or positive/negative/seed, or image/mask/hooks. Load nine things on the bus in one place, then surface the three you need where they're actually consumed. It keeps the graph readable without making you scroll a ten-port node around.

Standard install for the pack - ComfyUI Manager (search "agilly1989") or:

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

then restart ComfyUI. No models, no pip dependencies, just pure Python.

The whole family shares the same failure mode, so remember it once: keys are exact and case-sensitive, and asking for a key that was never written throws 'MotorwayClass' object has no attribute 'hash_'. That's a typo or an ordering issue, not a bug in the node. And keep the pack's beta status in mind - it's a one-person side project that's still changing, so pin it to your workflow the way you'd pin any moving dependency. If three outputs is what you need, this is the one I'd reach for over the 9x4 and bigger, purely because fewer ports means fewer key fields to fat-finger.

Categoryagilly1989 Nodes/Motorways

Inputs (19)

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_(I)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β€”

Outputs (4)

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