Control Net Input Switch JK๐
Toggle between two ControlNets โ keep the graph, swap the control
- control_net_false
- control_net_true
- control_net_output
- boolean
You built a workflow with one ControlNet, then realized you want to try depth instead of canny - without rebuilding everything. ControlNet Input Switch JK๐ is the node that lets you wire two loaded CONTROL_NETs into the graph and choose between them with a boolean, so the same apply node can run either control depending on a toggle.
It's the ControlNet flavor of JakeUpgrade's switch family, aimed squarely at the "which control does this pass use" problem. In his workflows - which lean hard on ControlNet for both image gen and video - toggling the control model without touching the wiring is the difference between a reusable template and a one-off experiment.
How it works
The familiar switch shape:
if control_net_true is not None and boolean_value:
return (control_net_true, boolean_value)
else:
return (control_net_false, boolean_value)
boolean_value-Truereturns the "true" ControlNet,Falsethe "false" one.control_net_false- required, used when False.control_net_true- optional, used when True; unplugged = pass-through.
Outputs: control_net_output (CONTROL_NET, straight into any ControlNet apply node) and boolean (echoed condition for further branching).
Worth knowing: the CONTROL_NET port carries a loaded model, not an image. The conditioning image (the hint/canny/depth map) is a separate wire on the apply node. So this switch is for swapping the model itself - e.g. between a generic and a specialized ControlNet, or a union model set to two different condition types - while the hint image stays put. If you want to swap the images instead, that's a different switch (and honestly, a different problem).
Where you'd use it
- "Same hint image, two models" - compare a full ControlNet against a LoRA-style control method.
- "Which control mode" - toggle a union ControlNet's effective mode by feeding it two differently-configured copies.
- Sharing a workflow: leave both models wired, let the person using it pick with a checkbox instead of hunting for the loader.
In JakeUpgrade's img2mesh and video workflows, you'll see this pattern as part of the "switchable sub-step" design - one graph, many controls, toggle to choose.
Install
Ships with ComfyUI-JakeUpgrade. ComfyUI Manager โ search ComfyUI-JakeUpgrade, or:
cd ComfyUI/custom_nodes
git clone https://github.com/jakechai/ComfyUI-JakeUpgrade
cd ComfyUI-JakeUpgrade && pip install -r requirements.txt
The ControlNet models themselves are normal models/controlnet files you supply. Menu: ๐ JK/๐ Switch. Pack gotchas: ignore the Manager conflict warning with IPAdapter Plus (replacement folder, not actually loaded), and check config.ini if the switch menu seems to be missing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| boolean_value | BOOLEAN | false | Condition to select between inputs (True=control_net_true, False=control_net_false) |
| control_net_false | CONTROL_NET | ControlNet to return when condition is False | |
| control_net_trueopt | CONTROL_NET | ControlNet to return when condition is True (optional) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| control_net_output | CONTROL_NET | โ |
| boolean | BOOLEAN | โ |