Combo Switch
Pick between two dropdown values based on a boolean
- COMBO
- STRING
- index
Switching between two models or two settings with a boolean is straightforward - that's what input switches are for. But switching between two dropdown values - two sampler names, two CLIP types, two model filenames that then feed a loader's combo input - is awkward, because combo values come from lists, not wires. Combo Switch is the missing piece: a boolean picks which dropdown value comes out.
How it works
The boolean input (default true) is the selector. Then each side is a pair: a true_options / false_options string defining the choices, and an on_true / on_false combo that selects the current value from its list.
The options strings are pipe-separated - dpmpp_2m|euler|ddim - and whatever you type there becomes the dropdown for that side. So you can define one list for the true branch and a completely different list for the false branch, then flip between them with a single boolean.
Three outputs:
- COMBO - the selected value, as a combo (drops into a loader's combo input).
- STRING - the same value as a plain string (drops into anything string-taking).
- index - the position of the selected value within its option list (
-1if not found), handy for driving numeric logic off the selection.
Concretely: a boolean "use fast sampler" true → euler, false → dpmpp_2m_karras, and the chosen name flows into a KSampler's sampler input. Same trick works for CLIP types, model names, upscale methods - anywhere a combo input wants a choice.
Where it fits
It's marked experimental in the pack, which is honest: combo wiring is the fiddliest corner of ComfyUI's new API, and this node is where Nifty's author chose to expose it. It works, but it's a bit more manual than the plain switches - you define the option lists yourself rather than them being auto-populated. For the "two preset dropdowns, one boolean" case it's genuinely the right tool and simpler than hacking a string switch to feed a combo.
Install
Part of Nifty Nodes for ComfyUI. Manager: search "Nifty Nodes for ComfyUI" → Install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes
Restart ComfyUI. Pure Python, no models, no special dependencies. MIT-licensed, v3-API native, young pack (v2.1.0, mid-2026) - update it if a workflow references these classes and ComfyUI doesn't recognize them.
Gotchas
The pipe syntax is the usual trip: option1|option2 - no spaces around the pipes, or the spaces become part of the option names. And the on_true / on_false selectors only make sense against their own option lists; if you type a value that's not in that side's list, index returns -1 and whatever loader you feed may choke. Also, because the values are strings, they'll happily feed a loader that then errors on a bad name - the switch won't validate that the name exists as a real model or sampler.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| boolean | BOOLEAN | true | Determines which combo value is returned. |
| on_trueopt | COMBO | Selected combo value when boolean is True. | |
| true_optionsopt | STRING | Combo values for on_true, separated by |. | |
| on_falseopt | COMBO | Selected combo value when boolean is False. | |
| false_optionsopt | STRING | Combo values for on_false, separated by | |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| COMBO | COMBO | — |
| STRING | STRING | — |
| index | INT | — |