ComfyUI Node

Motorway 3x7

The ramp that turns three wires into seven

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

Motorway 3x7 is a "fan-out ramp" from agilly1989's Motorway pack: you feed it three values and it can hand seven things back out. It sits in the middle of a graph, gathering a handful of wires on one side and distributing them to a small crowd of consumers on the other. If your workflow's problem is that six nodes all need to know the same seed, the same model name, or the same boolean, this is the node that stops you drawing six separate wires across the canvas.

The whole pack is a "pipe" implementation - a custom bus object called MotorwayClass that rides from node to node, carrying values under string keys. These AxB nodes are the on/off ramps: inputs get filed onto the bus, outputs pull things back off. You must start the journey with MotorwayStart (or a Motorway primitive like MotorwaySeed, which can start a bus on its own). Don't expect this to be a finished product, by the way - the README opens with "CURRENTLY IN ACTIVE DEVELOPMENT (BETA)! IF THINGS BREAK ITS BECAUSE I BROKE IT." It works, but treat it like the author does.

What you're actually looking at

The inputs are a required MOTORWAY πŸšŒπŸ’¨ (the bus - always connect this from a Start node or a previous ramp), plus ANY_(A), ANY_(B) and ANY_(C), which are typed * so they'll accept a MODEL, CONDITIONING, LATENT, INT, whatever. Then there are key fields ANY_(A)_key through ANY_(G)_key - seven of them, because the generator gives every slot (inputs and outputs) a key, and 3x7 has more outputs than inputs.

Here's the part that trips people up: each letter's key does double duty. Input A gets filed under whatever you type into ANY_(A)_key, and output ANY (A) pulls that same key back out. On this node, ANY (A)–ANY (C) keys are shared with the inputs, while ANY (D)–ANY (G) are pure exits - no input on that letter, just a place to pull a value out. The first output is always MOTORWAY πŸšŒπŸ’¨, the bus continuing onward.

A concrete pattern: connect your checkpoint to ANY_(A), type model in ANY_(A)_key. Then on any ramp further down the road, type model in one of its key fields and that output hands back the checkpoint. Reusing a key overwrites the old value, and the bus is cloned at every node, so a branch that splits off won't leak its writes into a sibling branch.

Install

ComfyUI Manager will find it if you search "ComfyUI_agilly1989_motorway". Or the old-fashioned way:

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

Restart ComfyUI. No model downloads, no extra pip packages - it's pure Python, which is a nice change from most packs.

Where people get burned

The README's own error: 'MotorwayClass' object has no attribute 'hash_...'. That means you typed a key on an output that nothing ever wrote - check the spelling, and make sure some node upstream actually filed that key before you try to pull it. The other classic: you wire an output but leave its key blank, and nothing comes out. On 3x7, every output lane you actually use needs its key filled. And since this is beta, save your workflow before you start rewiring.

Categoryagilly1989 Nodes/Motorways

Inputs (11)

NameTypeDefaultDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
ANY_(A)opt*β€”
ANY_(B)opt*β€”
ANY_(C)opt*β€”
ANY_(A)_keyoptSTRINGβ€”
ANY_(B)_keyoptSTRINGβ€”
ANY_(C)_keyoptSTRINGβ€”
ANY_(D)_keyoptSTRINGβ€”
ANY_(E)_keyoptSTRINGβ€”
ANY_(F)_keyoptSTRINGβ€”
ANY_(G)_keyoptSTRINGβ€”

Outputs (8)

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