Nodes/Comfyroll Studio/πŸ”€ CR ControlNet Input Switch
ComfyUI Node Runs on cloud

πŸ”€ CR ControlNet Input Switch

Swap between two loaded ControlNets by number

By Suzie1Β·Created 3 years agoΒ·Updated 2 years agoΒ· 1,296
πŸ”€ CR ControlNet Input Switch
  • control_net1
  • control_net2
  • control_net1
  • control_net2
  • CONTROL_NET
  • show_help
β—„Input1β–Ί

You've got two ControlNets loaded - say a depth model and a Canny model - and you want to flip between them in the same graph without rebuilding it each time. This node does that. Two CONTROL_NET inputs in, one number to pick, one ControlNet out.

It's a Comfyroll Studio logic node (Suzie1 / RockOfFire), the ControlNet-typed member of the pack's input-switch family. It selects a loaded ControlNet model - the thing a ControlNet loader hands you - not a control image and not the applied conditioning. So it lives upstream, between your loaders and the apply node.

How it works

A ControlNet is a trained sidecar to your base model that reads a control map (a depth map, a pose skeleton, an edge map) and steers generation toward that structure - the KB's ControlNet overview walks through what each preprocessor produces. This switch doesn't do any of that work; it just decides which loaded ControlNet gets passed on.

The control is a single integer, Input, set to 1 or 2. At 1, control_net1 passes through; at 2, control_net2 does. The selected model comes out unchanged, ready to plug into a ControlNet apply node along with your control image.

The inputs that matter

  • Input (1 or 2, default 1) - the selector, and the only dial.
  • control_net1 / control_net2 - the two loaded ControlNet models you're choosing between, each from a ControlNet loader.

Output is a single CONTROL_NET (plus a show_help string that just links the wiki). Feed the output into the control_net socket of your apply node - Comfyroll's own CR Apply ControlNet, or the stock one.

Where you'd actually reach for it

The realistic use is a reusable ControlNet template. Build a graph that can run depth or pose, wire both loaders into this switch, and flip a number per run instead of re-plugging. It's also useful when a single upstream choice should steer the whole graph at once - pick your control type once and let the same value drive this switch plus the matching preprocessor.

If you actually want both ControlNets active at the same time, this is the wrong tool - you want Comfyroll's Multi-ControlNet Stack, which layers several nets together. The switch is strictly one-or-the-other.

How to install it

  • ComfyUI Manager: search Comfyroll Studio, install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.

The pack doesn't ship ControlNet models - download those into ComfyUI/models/controlnet yourself.

Common issues

Most "ControlNet switch problems" are really the pack not loading. Comfyroll is a big, older pack, and on newer ComfyUI builds a submodule can fail to import at startup, spewing NameError: name 'CR_...' is not defined and hiding every CR node. Read the first traceback in the console, not the last - the rest is cascade - and update via Manager, which usually fixes it.

Beyond that, the switch inherits ControlNet's usual footgun: the model you select still has to match your base architecture. An SD 1.5 ControlNet only works with an SD 1.5 checkpoint, an SDXL one with SDXL, and so on. The switch happily passes a mismatched ControlNet through; the error only shows up later, at the apply node or the sampler. And like the pack's other switches, this one is manual - the number is the decision, so point it at a branch that's actually connected.

Category🧩 Comfyroll Studio/πŸ› οΈ Utils/πŸ”€ Logic

Inputs (5)

NameTypeDefaultDescription
InputINT11–2β€”
control_net1CONTROL_NETβ€”
control_net2CONTROL_NETβ€”
control_net1optCONTROL_NETβ€”
control_net2optCONTROL_NETβ€”

Outputs (2)

NameTypeDescription
CONTROL_NETCONTROL_NETβ€”
show_helpSTRINGβ€”