ComfyUI Node

Motorway 10x1

Shove ten wires onto one bus, pull one back out

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

If your workflow looks like a plate of spaghetti, the Motorway 10x1 is the node that lets you grab a handful of wires, tie them into one cable, and run that single cable across the canvas. It's a junction in the "Motorway" pipe system from agilly1989/ComfyUI_agilly1989_motorway - a one-author beta pack that implements its own take on ComfyUI's "pipe" idea. The 10x1 is the collector: it accepts up to ten inputs and reads exactly one value back out.

The pitch is simple. Instead of dragging a model, a clip, a vae, a latent, and six other wires across half the graph to wherever they're needed, you connect them all here, label each one, and let the motorway carry them. Downstream, a Motorway 0x1 or 1x1 node pulls whatever you need out by name. It's the same instinct as rgthree's Context nodes - bundle a bunch of stuff on one wire so a big workflow stays readable - but the mechanism is different and much more freeform.

How it works. The motorway is a plain Python object (the MotorwayClass) that travels node-to-node down one wire. Values aren't stored by position; they're stored under a string key, which gets sha256-hashed into an attribute name behind the scenes. Each Motorway node clones the bag before handing it on, so downstream writes never corrupt what an earlier segment already holds. The 10x1 is pure write-side capacity: ten ANY_(A) through ANY_(J) inputs, each with a matching _key string field. Type model into ANY_(A)_key and whatever you plug into ANY_(A) rides the bus under the name "model". Leave a key blank and that input is skipped entirely.

Inputs and outputs that matter. The required MOTORWAY πŸšŒπŸ’¨ input is the bus itself - it must already be flowing, which means you need a MotorwayStart node (or one of the pack's primitive nodes) at the head of the line. The ten ANY_ inputs are wildcard (*), so they'll accept anything: models, conditioning, images, tensors. The output side is just the bus plus a single ANY (A), which reads whatever was stored under ANY_(A)_key. Keep the keys in sync and this node behaves like a named funnel.

Install. Git clone into custom_nodes or grab it from ComfyUI Manager (search "ComfyUI_agilly1989_motorway"):

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

Then restart ComfyUI. There's no requirements.txt, no models to download, no external dependencies - it's pure Python.

Common issues. This is a genuine beta. The README opens with "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION", so budget for breakage. The error you'll actually hit is 'MotorwayClass' object has no attribute 'hash_', which means the key you typed on an output doesn't match any key that was written upstream - typo a key name and you'll get exactly this. Also: outputs only materialize for key fields you fill in, so on a 10x1, if ANY_(A)_key is blank the returned tuple shrinks and ComfyUI's fixed output count gets confused. No community chatter backs this pack up yet - it's a niche tool for people who like the keyed-bag approach. If that's you, it's worth a spin; if you want battle-tested, stick with rgthree.

Categoryagilly1989 Nodes/Motorways

Inputs (21)

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_(J)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 (2)

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