Nodes/ComfyUI-Pixaroma/Switch Pixaroma
ComfyUI Node

Switch Pixaroma

One node, up to 32 inputs, one click to route any of them

By pixaroma·Created 5 months ago·Updated 4 days ago· 357
Switch Pixaroma
  • 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.

Category👑 Pixaroma/🔀 Logic & Flow

Inputs (32)

NameTypeDefaultDescription
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)

NameTypeDescription
output*The input from the active (highlighted) row, passed through unchanged.