ComfyUI Node

Motorway 7x3

The Motorway workhorse ramp

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

If your ComfyUI workflow looks like somebody dropped a plate of spaghetti, the Motorway pack is built to fix that, and Motorway 7x3 is the ramp you'll reach for first. It's one node out of a whole family (roughly 120 generated variants) that implement what the author calls a "pipe": a shared, named-value bus that travels through your graph on a single wire typed MOTORWAY πŸšŒπŸ’¨. Instead of dragging your checkpoint, CLIP, VAE, conditioning and seed across the canvas every time you need them, you load them onto the bus once and pull them off wherever they're actually used.

The name is the whole manual. 7x3 means seven inputs, three outputs. Seven sockets let you attach things to the motorway, three sockets let you take things back off. The node calls no API, needs no key, downloads no models - it's pure wire-management, the same idea rgthree's Context nodes chase, just with a dumber name and a sharper focus.

How it works

Under the hood the motorway is a small class that behaves like a dict, and the keys are yours to invent. Technically the code stores everything under a sha256 hash of the key name - that's just so you can type readable names like "model" while lookups stay fast and unambiguous. Every Motorway node takes the bus in on its MOTORWAY πŸšŒπŸ’¨ input, writes any connected value onto it under the key you typed in the matching _key field, then clones the bus and hands the clone downstream.

Two behaviors follow. First, the bus is state that travels with the wire: something written on an early ramp is still there at a late one, until something else writes the same key and overwrites it (last writer wins). Second, writes and reads are independent - your three outputs don't have to be the three things you just plugged in. Outputs are lookups: type the key of anything that's riding the bus and it comes out that socket.

The inputs and outputs that matter

  • MOTORWAY πŸšŒπŸ’¨ (required input) - the bus from upstream. Wire this from a MotorwayStart node or any earlier Motorway ramp.
  • ANY (A) through ANY (G) - the seven on-ramps. Plug in anything: a model, a latent, a string, a conditioning, whatever. Each has a matching _key text field that names it on the bus.
  • ANY (A), ANY (B), ANY (C) (outputs) - the three off-ramps, plus the MOTORWAY πŸšŒπŸ’¨ output that carries the bus onward.

The only part you really set by hand is the keys. Connect an input, type a name for it, then type that same name into an output key further down the line and the value reappears.

Installing it

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

Restart ComfyUI after cloning. You can also find it in ComfyUI Manager under "Install Custom Nodes" by searching "motorway". No pip dependencies - the pack is pure Python standard library - and no model files to download. That installs all ~120 Motorway variants at once, which is why the node list suddenly gets a lot longer.

Common issues

  • 'MotorwayClass' object has no attribute 'hash_' - you asked an output for a key that was never written, so it doesn't exist on the bus yet. Usually a typo, or a case mismatch (keys are case-sensitive).
  • Gaps in output keys shift the sockets. Outputs are positional and only populated when the key is non-empty; leave ANY (A)_key blank and the value from ANY (B)_key comes out socket A. Fill them A, B, C in order.
  • It's beta, on purpose. The author's README opens with "IF THINGS BREAK ITS BECAUSE I BROKE IT" and a note that it's broken with async execution pending a fix. If your graph dies under ComfyUI's async mode, that's an acknowledged upstream issue, not a mistake in your wiring.

Want to see it in action? The repo ships an Example.json you can drag straight into ComfyUI - it's the fastest way to get the mental model.

Categoryagilly1989 Nodes/Motorways

Inputs (15)

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β€”

Outputs (4)

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