Switch Pixaroma
One node, up to 32 inputs, one click to route any of them
- input_1
- input_2
- input_3
- input_4
- input_5
- input_6
- input_7
- input_8
- input_9
- input_10
- input_11
- input_12
- input_13
- input_14
- input_15
- input_16
- input_17
- input_18
- input_19
- input_20
- input_21
- input_22
- input_23
- input_24
- input_25
- input_26
- input_27
- input_28
- input_29
- input_30
- input_31
- input_32
- output
Switch Pixaroma is a pass-through switch: wire up to 32 upstream nodes into its rows, then click a row's toggle to pick which one flows out. Whatever you selected passes through unchanged - a MODEL, CLIP, IMAGE, STRING, AUDIO, a latent, anything. It's the node you reach for when "I want to compare two checkpoints" turns into "actually I have four prompt variants and I want to flip between them without rewiring."
The inputs are all * (ANY-typed), because the node genuinely doesn't care what it's routing. The rows grow on their own: there's always one empty trailing row waiting for the next connection, and disconnecting a wire removes its row, so the node auto-sizes to your graph. Each row gets a label that auto-fills with the type name of what's plugged in (MODEL, IMAGE, CLIP…) so you can tell at a glance, and you can click the label to rename it - "main checkpoint", "alt prompt", whatever keeps it readable. Only one input is active at a time, and it lights up in Pixaroma orange so the current selection is always obvious.
The behaviors that keep a workflow alive
Two details matter in practice:
- Disconnect the active row and the switch moves to the next available one, so your workflow doesn't silently break mid-edit. If you're actively rearranging a graph, this is the difference between a node that cooperates and one that throws an error.
- It only runs the input you picked. That sounds obvious, but it wasn't always true - older versions processed every connected input even when only one was used, wasting time on dead branches. It's been fixed, so an inactive row genuinely sits out.
There's also a Switch Source Pixaroma sibling if you need to flip a whole bank of wires (say, a combined checkpoint loader against three separate model/CLIP/VAE loaders) with one A/B toggle. Switch is the per-input version; Switch Source is the per-pipeline version. For most single-value swaps, this node is the one.
Installing it
It's part of the ComfyUI-Pixaroma pack - ComfyUI Manager search Pixaroma, Install, restart, or:
cd ComfyUI/custom_nodes
git clone https://github.com/pixaroma/ComfyUI-Pixaroma
No dependencies, no models.
Gotchas
The main trap is the opposite of what you'd expect: the switch is designed to route, not transform. Whatever goes in comes out byte-for-byte, so if two inputs differ in type or shape, you'll get that difference downstream - a switch won't reconcile them for you. And the settings save with your workflow, which is good, but it means a shared workflow keeps your selected input; when you load someone else's graph, check the orange highlight before running. As always with this pack, after an update hard-refresh (Ctrl+Shift+R / Cmd+Shift+R) if anything looks off - that's the browser cache, not the node.
Inputs (32)
| Name | Type | Default | Description |
|---|---|---|---|
| input_1opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_2opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_3opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_4opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_5opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_6opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_7opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_8opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_9opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_10opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_11opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_12opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_13opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_14opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_15opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_16opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_17opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_18opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_19opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_20opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_21opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_22opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_23opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_24opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_25opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_26opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_27opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_28opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_29opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_30opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_31opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. | |
| input_32opt | * | An input to route. Wire any node here; click a row's toggle on the node to make it the active one, and that row's value flows out unchanged. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output | * | The input from the active (highlighted) row, passed through unchanged. |