Nodes/Tojioo Passthrough/Any ControlNet Switch
ComfyUI Node

Any ControlNet Switch

One ControlNet input, several models, zero selector

By Tojioo·Created 11 months ago·Updated 7 months ago· 13
Any ControlNet Switch
  • control_net_1
  • control_net

Any ControlNet Switch returns the first connected CONTROL_NET input, chosen by slot order, and feeds it to the control_net output. If you run several ControlNet models - canny here, depth there, pose for people shots - you know the friction: each one is its own loader, and swapping which one steers the sampler means re-wiring the controlnet socket. This node gives you several loaders and one consumer, switched by mute instead of by hand.

It's the fallback-switch pattern the community knows from rgthree's Any Switch, typed to CONTROL_NET. And it pairs naturally with the way ControlNet actually works in ComfyUI: the control model meets the conditioning, not the pixels - so a switch on the model wire is exactly the right place to decide which "style of steering" a branch uses.

How it works

Start with control_net_1; each new ControlNet source you connect grows another slot. At execution it collects every connected input that isn't None and returns the lowest-numbered live one. The None skip is the switching mechanism: mute or bypass the loader feeding control_net_1 and it delivers None, gets skipped, and control_net_2 wins without touching a control. Leave everything unconnected and the node raises "no inputs connected" rather than silently dropping the control.

Where you'd use it

  • Canny vs. depth vs. pose. Three loaders, one Apply ControlNet, mute the one you're not using.
  • ControlNet vs. T2I-Adapter. Two steering approaches into the same downstream node.
  • Fallback routing. Preferred control first, fallback second.

Install

ComfyUI Manager → search "Tojioo Passthrough" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Tojioo/tojioo_passthrough.git

Restart ComfyUI. No models or pip dependencies - the pack is lean Python plus a bundled frontend, on the Comfy Registry under publisher tojioo. (The ControlNet models themselves are a separate download from their own repos, as always.)

Common issues

Slot order rules: a live control_net_1 always beats control_net_2, so a "wrong" control model means the earlier slot is muted, bypassed, or unwired - and muting is your switch. Two practical notes. This node selects the model only; the preprocessor, weight, and start/end settings stay on your Apply ControlNet node, which is fine - that's where they belong. And when a ControlNet swap looks like it did nothing, it's usually a strength or conditioning issue downstream, not the switch: the node itself just routes a model object, and a muted branch being treated as "missing" is by design.

CategoryTojioo Passthrough/Dynamic Nodes/Switch Nodes

Inputs (1)

NameTypeDefaultDescription
control_net_1optCONTROL_NET

Outputs (1)

NameTypeDescription
control_netCONTROL_NET