ComfyUI Node

Combo Switch

Pick between two dropdown values based on a boolean

By Stibo·Created 5 months ago·Updated 2 months ago· 9
Combo Switch
    • COMBO
    • STRING
    • index
    booleantrue
    on_true
    true_options
    on_false
    false_options

    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 (-1 if 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.

    Categorynifty/logic

    Inputs (5)

    NameTypeDefaultDescription
    booleanBOOLEANtrueDetermines which combo value is returned.
    on_trueoptCOMBOSelected combo value when boolean is True.
    true_optionsoptSTRINGCombo values for on_true, separated by |.
    on_falseoptCOMBOSelected combo value when boolean is False.
    false_optionsoptSTRINGCombo values for on_false, separated by |

    Outputs (3)

    NameTypeDescription
    COMBOCOMBO
    STRINGSTRING
    indexINT