Multi Router(TJ)
Multi Router (TJ)
- output_1
- output_2
- output_3
- output_4
- output_5
- output_6
- output_7
- output_8
- output_9
- output_10
- output_11
- output_12
- output_13
- output_14
- output_15
- output_16
- output_17
- output_18
- output_19
- output_20
Every serious ComfyUI user eventually hits the wall where a generation feeds a preview, an upscale, a compare sheet, and a save - and the canvas looks like someone dropped a plate of wires. Multi Router (TJ) is the TJ_NODE answer: a single node that takes one input and fans it out to up to 20 outputs, each of which can quietly become a wireless provider. It's less a data transformation than a sectioning tool - the node the pack's whole "section architecture" philosophy revolves around.
What it actually does
Under the hood it's almost embarrassingly simple: it receives whatever comes into input_1, and its execute function just forwards it to each of the 20 output slots (output_1 through output_20) it finds a value for. The magic isn't in the code, it's in how the node is wired into the pack's wireless system:
- Dynamic (Auto) mode is the default. Combined with
auto_set(also on by default), each output becomes a named wireless provider automatically. A downstream TJ node can then "receive" that output by name, no visible wire needed. num_portslets you trim how many outputs are actually active - no need to stare at 19 unused sockets.
In the recommended TJ layout, you put it right after generation:
Generation
↓
Multi Router
├─ Preview
├─ Upscale
├─ Compare
└─ Save
Each branch then pulls its value from the router by name. Re-run the generator, and every section downstream re-receives without you redrawing a single line.
The inputs and outputs that matter
The schema is minimal on purpose:
mode-Dynamic (Auto)orManual. Auto is the wireless-on-every-output mode; Manual gives you more deliberate control over what gets published.auto_set- master switch for wireless provider registration.num_ports- 1 to 20, how many outputs you want active.- Inputs are the optional
input_1…input_20any-type sockets (the*type means it routes images, latents, strings, whatever without complaining). - Outputs:
output_1…output_20, all*.
It's marked is_output_node, so the router itself is treated as an end point - pair it with the pack's wireless Get / Multi Get nodes to actually pull those values elsewhere.
Installing it
Nothing special here, it's core to the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE
or ComfyUI Manager → ComfyUI-TJ_NODE → Install → restart. No dependencies beyond the pack.
The honest take
Multi Router is a workflow organization tool, not a compute tool - it doesn't resize or transform anything. If you build small one-off graphs, it's a solution in search of a problem. The moment your workflow has a generation feeding four destinations and you're tired of untangling wires, it earns its place. Two tips from the README's own anti-pattern list: give your wireless providers stable, unique names (duplicate provider names cause reconnect headaches), and keep the router's naming consistent so your routing map stays readable after a reload.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: Dynamic (Auto), Manual | |
| auto_set | BOOLEAN | true | — |
| num_ports | INT | 11–20 | — |
Outputs (20)
| Name | Type | Description |
|---|---|---|
| output_1 | * | — |
| output_2 | * | — |
| output_3 | * | — |
| output_4 | * | — |
| output_5 | * | — |
| output_6 | * | — |
| output_7 | * | — |
| output_8 | * | — |
| output_9 | * | — |
| output_10 | * | — |
| output_11 | * | — |
| output_12 | * | — |
| output_13 | * | — |
| output_14 | * | — |
| output_15 | * | — |
| output_16 | * | — |
| output_17 | * | — |
| output_18 | * | — |
| output_19 | * | — |
| output_20 | * | — |