Control Net Stack Input Switch JK๐
Flip between two whole ControlNet stacks with one boolean
- control_net_stack_false
- control_net_stack_true
- control_net_stack_output
- boolean
Switching between two ControlNets is nice, but sometimes you want to switch between two bundles - a "depth + pose" stack versus a "canny + tile" stack, say. ControlNet Stack Input Switch JK๐ does exactly that: two CONTROL_NET_STACK wires in, one boolean, and whichever stack you pick flows to the apply node.
It was added in v1.7.0 right when Jake upgraded the ControlNet stack nodes to support Union and Alimama Inpaint - the point at which a single-stack workflow turned into a "which combination of controls today" workflow. If you're using the Multi-ControlNet Param Stack JK, this is the node that makes two stacks toggleable without building two parallel graphs.
How it works
Same switch core as the rest of the family:
if control_net_stack_true is not None and boolean_value:
return (control_net_stack_true, boolean_value)
else:
return (control_net_stack_false, boolean_value)
boolean_value-Trueโ the "true" stack,Falseโ the "false" stack.control_net_stack_false- required.control_net_stack_true- optional; unplugged = pass-through.
Outputs: control_net_stack_output (CONTROL_NET_STACK - feed it to CR Apply Multi-ControlNet Adv JK or anything that consumes a stack) and boolean.
The stack type is opaque on purpose: it's a list of (controlnet, image, strength, start%, end%) tuples that the apply node unpacks and runs in order. This switch doesn't care what's inside - it just routes the whole bundle. Which is exactly why it's useful: you can build two completely different control strategies (different models, different hint images, different strength/timing per unit) and flip between them as one unit.
Where you'd use it
- Two distinct look-and-control presets for the same subject - e.g. "tight pose control" vs "loose depth control" - toggled by a single checkbox.
- Comparing strength profiles: the same control images, but one stack uses
start_percent 0โ0.6and the other0โ1.0, so you can A/B whether releasing the control early helps. - API workflows: a caller sets the boolean and gets an entirely different control regime from the same graph.
Install
Part of 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
No models of its own - the stacks come from your stacker nodes. Menu: ๐ JK/๐ Switch. Standard pack notes apply: the Manager warning about IPAdapter Plus is replacement-folder noise you can ignore; and remember that a switch routes but doesn't bypass - both stacker nodes still run, so heavy stacks cost a little execution time even when not selected.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| boolean_value | BOOLEAN | false | Condition to select between inputs (True=control_net_stack_true, False=control_net_stack_false) |
| control_net_stack_false | CONTROL_NET_STACK | ControlNet stack to return when condition is False | |
| control_net_stack_trueopt | CONTROL_NET_STACK | ControlNet stack to return when condition is True (optional) |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| control_net_stack_output | CONTROL_NET_STACK | โ |
| boolean | BOOLEAN | โ |