ComfyUI Node

Motorway 9x7

The near-complete bus

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
Motorway 9x7
  • 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 (D)
  • ANY (E)
  • ANY (F)
  • ANY (G)
β—„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 9x7 is the ramp node that starts to feel like a full interface: nine wildcard inputs (A through I) on the loading side, seven outputs (A through G) on the pulling side. In the pack's Motorway [inputs]x[outputs] scheme, it's for when your graph genuinely lives on the bus and you want most of the important keys within reach at once.

The thing to internalize about these nodes - and it applies just as hard here - is that inputs and outputs don't line up positionally. Each input's _key field decides the name it's stored under; each output's _key field decides what it fetches from the shared bag. You can store model on input A, seed on input G, and ask output B for the seed if you want. The keys are the contract, the ports are just convenient query points. That's what makes a 9x7 useful in the middle of a workflow rather than just at the start: you can surface the seven values a downstream cluster needs even though they were all set at different places upstream.

The bag itself is a dict-like object carried on the MOTORWAY connection, with values stored under sha256 hashes of your key strings and a clone made at every hop so parallel branches don't corrupt each other. It's a small, honest design - nothing magical, just a hash-addressed store that happens to ride one wire.

Seven outputs is a lot of real estate on the canvas, so here's a take: use 9x7 when seven different downstream consumers each need a key, or when you're building a reusable "tile" of a workflow - a text-prompting block, a conditioning block, a postprocessing block - where you want a standard, visible set of in/out ports so you can copy-paste the tile into other projects. The fixed port list is the feature; it turns an implicit key-based contract into something you can see.

Install is the pack's usual:

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

or via ComfyUI Manager (search "agilly1989"). Restart ComfyUI. No models, no pip dependencies.

Shared family gotchas apply in full: keys are exact and case-sensitive, reading a key nobody wrote throws 'MotorwayClass' object has no attribute 'hash_', and the pack is a one-person beta that can change under you - pin the version once a workflow depends on it. And a small piece of advice: a 9x7 reads as clutter until you have a reason for seven exits. When you do, it's excellent. When you don't, it's just a big node you're underusing.

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 (8)

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