ComfyUI Node

Motorway 4x10

The biggest fan-out ramp this pack makes

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

Motorway 4x10 is the widest ramp the agilly1989 Motorway pack generates: four lanes in, ten lanes out. It's the endpoint of a bus, the node where a journey that gathered a few values near the start of your workflow finally hands them out to the whole downstream graph - samplers, detailers, upscalers, all ten of them. If you've ever drawn ten wires from a single seed or model across a crowded canvas, this is the node that turns that into one bus ride and ten short exit ramps.

The pack is a pipe implementation: a MotorwayClass bus carries values under string keys from node to node, and each Motorway AxB node is an on/off ramp. The bus starts with MotorwayStart (or a Motorway primitive like MotorwayStr), flows through the required MOTORWAY πŸšŒπŸ’¨ input, and always continues out of the first output socket.

The layout

Four data inputs - ANY_(A) through ANY_(D), typed * so they accept any type - and ten key fields, ANY_(A)_key through ANY_(J)_key, because the generator hands every input and every output its own key slot. Outputs are ANY (A) through ANY (J) (ten data outputs) with MOTORWAY πŸšŒπŸ’¨ always first.

Each letter's key does double duty where there's both an input and an output on the same letter: input A files under key A, output A reads key A back out. On this node, letters A–D are write-through (input files, output re-reads it), and E–J are pure exits - no input lane, just a key that pulls a value already on the bus. Want output E to be the seed? Type seed into ANY_(E)_key and it hands you whatever upstream filed under seed.

The realistic use: feed a few core values in on A–D at the start, then spend the ten outputs fanning those same values (plus anything the bus collected along the way) out to a whole chain of downstream consumers. It's the workflow-decluttering payoff - one user on r/comfyui showed off exactly this idea, collapsing a character-consistency workflow onto a Motorway bus so it stopped looking like a spider's nest.

Install

ComfyUI Manager, search "ComfyUI_agilly1989_motorway". Or:

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

Restart ComfyUI. No models, no pip dependencies - pure Python, and it's marked beta ("IF THINGS BREAK ITS BECAUSE I BROKE IT", per the README), so keep a backup of any workflow you care about.

Where it bites

'MotorwayClass' object has no attribute 'hash_...' - the README's own documented error - means an output key points at something nobody wrote. On a 10-output node that's easy to do: you wire nine outputs, fill nine keys, and one key has a typo. Keys are hashed internally, so the typo reads an empty slot rather than failing loudly at the spelling. Rule of thumb: fill a key for every output you actually wire, and leave the rest blank - they're harmless no-ops.

Categoryagilly1989 Nodes/Motorways

Inputs (15)

NameTypeDefaultDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
ANY_(A)opt*β€”
ANY_(B)opt*β€”
ANY_(C)opt*β€”
ANY_(D)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 (11)

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