Motorway 4x10
The biggest fan-out ramp this pack makes
- 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)
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.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β | |
| ANY_(A)opt | * | β | |
| ANY_(B)opt | * | β | |
| ANY_(C)opt | * | β | |
| ANY_(D)opt | * | β | |
| ANY_(A)_keyopt | STRING | β | |
| ANY_(B)_keyopt | STRING | β | |
| ANY_(C)_keyopt | STRING | β | |
| ANY_(D)_keyopt | STRING | β | |
| ANY_(E)_keyopt | STRING | β | |
| ANY_(F)_keyopt | STRING | β | |
| ANY_(G)_keyopt | STRING | β | |
| ANY_(H)_keyopt | STRING | β | |
| ANY_(I)_keyopt | STRING | β | |
| ANY_(J)_keyopt | STRING | β |
Outputs (11)
| Name | Type | Description |
|---|---|---|
| MOTORWAY ππ¨ | MOTORWAY ππ¨ | β |
| ANY (A) | * | β |
| ANY (B) | * | β |
| ANY (C) | * | β |
| ANY (D) | * | β |
| ANY (E) | * | β |
| ANY (F) | * | β |
| ANY (G) | * | β |
| ANY (H) | * | β |
| ANY (I) | * | β |
| ANY (J) | * | β |