Nodes/ComfyUI Essentials/πŸ”§ Sampler Select Helper
ComfyUI Node Runs on cloud

πŸ”§ Sampler Select Helper

Tick a few boxes to build a sampler list for XY plots

By cubiqΒ·Created 3 years agoΒ·Updated about a year agoΒ· 1,152
πŸ”§ Sampler Select Helper
    • STRING
    β—„eulerfalseβ–Ί
    β—„euler_cfg_ppfalseβ–Ί
    β—„euler_ancestralfalseβ–Ί
    β—„euler_ancestral_cfg_ppfalseβ–Ί
    β—„heunfalseβ–Ί
    β—„heunpp2falseβ–Ί
    β—„exp_heun_2_x0falseβ–Ί
    β—„exp_heun_2_x0_sdefalseβ–Ί
    β—„dpm_2falseβ–Ί
    β—„dpm_2_ancestralfalseβ–Ί
    β—„lmsfalseβ–Ί
    β—„dpm_fastfalseβ–Ί
    β—„dpm_adaptivefalseβ–Ί
    β—„dpmpp_2s_ancestralfalseβ–Ί
    β—„dpmpp_2s_ancestral_cfg_ppfalseβ–Ί
    β—„dpmpp_sdefalseβ–Ί
    β—„dpmpp_sde_gpufalseβ–Ί
    β—„dpmpp_2mfalseβ–Ί
    β—„dpmpp_2m_cfg_ppfalseβ–Ί
    β—„dpmpp_2m_sdefalseβ–Ί
    β—„dpmpp_2m_sde_gpufalseβ–Ί
    β—„dpmpp_2m_sde_heunfalseβ–Ί
    β—„dpmpp_2m_sde_heun_gpufalseβ–Ί
    β—„dpmpp_3m_sdefalseβ–Ί
    β—„dpmpp_3m_sde_gpufalseβ–Ί
    β—„ddpmfalseβ–Ί
    β—„lcmfalseβ–Ί
    β—„ipndmfalseβ–Ί
    β—„ipndm_vfalseβ–Ί
    β—„deisfalseβ–Ί
    β—„res_multistepfalseβ–Ί
    β—„res_multistep_cfg_ppfalseβ–Ί
    β—„res_multistep_ancestralfalseβ–Ί
    β—„res_multistep_ancestral_cfg_ppfalseβ–Ί
    β—„gradient_estimationfalseβ–Ί
    β—„gradient_estimation_cfg_ppfalseβ–Ί
    β—„er_sdefalseβ–Ί
    β—„seeds_2falseβ–Ί
    β—„seeds_3falseβ–Ί
    β—„sa_solverfalseβ–Ί
    β—„sa_solver_pecefalseβ–Ί
    β—„ddimfalseβ–Ί
    β—„uni_pcfalseβ–Ί
    β—„uni_pc_bh2falseβ–Ί

    If you've ever tried to compare samplers side by side - euler vs dpmpp_2m vs res_multistep on the same seed and prompt - you know the annoying part isn't the comparison, it's producing the list of sampler names the plot node wants. Type one wrong and the whole run dies. SamplerSelectHelper replaces the typing with checkboxes: it shows every sampler ComfyUI knows about as a toggle, you tick the ones you care about, and it hands back a clean comma-separated string of names.

    It's a convenience node from ComfyUI Essentials by cubiq (Matteo Spinelli, better known for ComfyUI_IPAdapter_plus). It doesn't sample anything itself - it just builds a correct string so the node that does the plotting can't choke on a typo.

    How it works

    The node is a long wall of boolean toggles, one per sampler: euler, euler_ancestral, heun, dpm_2, dpmpp_2m, dpmpp_2m_sde, dpmpp_3m_sde, res_multistep, deis, ddim, uni_pc, and a couple dozen more, including the _cfg_pp and _gpu variants. Flip the ones you want to true and it concatenates their exact internal names into a single STRING, correctly formatted. Because the names come straight from the toggles, they always match what the sampler system expects - no spelling risk.

    The inputs and outputs that matter

    • The sampler toggles (all BOOLEAN, all default false) - tick whichever you want in the comparison. Everything left off is simply excluded.
    • STRING (output) - the comma-separated list of selected sampler names. Wire it into an XY-plot / parameter-sweep node's "sampler" field, or anywhere that accepts a list of sampler names as text.

    There's nothing to tune beyond which boxes you check. Fewer boxes, faster run; every box you tick is another full generation in the sweep.

    How to install it

    ComfyUI Manager: search ComfyUI Essentials, install, restart. Or clone it:

    cd ComfyUI/custom_nodes
    git clone https://github.com/cubiq/ComfyUI_essentials
    pip install -r ComfyUI_essentials/requirements.txt
    

    then restart. No models needed.

    Common issues & troubleshooting

    It produced a string but nothing plotted. This node only builds the list - you still need a plotting/sweep node downstream to actually run each sampler and lay out the grid. On its own it's just text.

    A sampler I want isn't in the list. The toggles reflect the samplers ComfyUI exposes at the time the pack was built. A brand-new sampler added to core after that won't have a checkbox here. Since Essentials is maintenance-only (as of April 2025), don't expect the list to grow - if you need a very recent sampler, you may have to feed its name in as plain text instead.

    The comparison takes forever. Each ticked box is a full generation, so a dozen samplers Γ— several seeds is a lot of compute. Narrow it: pick two or three candidates, find the winner, then fine-tune steps and scheduler on just that one.

    Node missing after an update. Maintenance mode means pack nodes occasionally break against newer ComfyUI. Update via Manager; if it's a genuine incompatibility, a Comfy rollback is the usual fix people reach for.

    Categoryessentials/sampling

    Inputs (44)

    NameTypeDefaultDescription
    eulerBOOLEANfalseβ€”
    euler_cfg_ppBOOLEANfalseβ€”
    euler_ancestralBOOLEANfalseβ€”
    euler_ancestral_cfg_ppBOOLEANfalseβ€”
    heunBOOLEANfalseβ€”
    heunpp2BOOLEANfalseβ€”
    exp_heun_2_x0BOOLEANfalseβ€”
    exp_heun_2_x0_sdeBOOLEANfalseβ€”
    dpm_2BOOLEANfalseβ€”
    dpm_2_ancestralBOOLEANfalseβ€”
    lmsBOOLEANfalseβ€”
    dpm_fastBOOLEANfalseβ€”
    dpm_adaptiveBOOLEANfalseβ€”
    dpmpp_2s_ancestralBOOLEANfalseβ€”
    dpmpp_2s_ancestral_cfg_ppBOOLEANfalseβ€”
    dpmpp_sdeBOOLEANfalseβ€”
    dpmpp_sde_gpuBOOLEANfalseβ€”
    dpmpp_2mBOOLEANfalseβ€”
    dpmpp_2m_cfg_ppBOOLEANfalseβ€”
    dpmpp_2m_sdeBOOLEANfalseβ€”
    dpmpp_2m_sde_gpuBOOLEANfalseβ€”
    dpmpp_2m_sde_heunBOOLEANfalseβ€”
    dpmpp_2m_sde_heun_gpuBOOLEANfalseβ€”
    dpmpp_3m_sdeBOOLEANfalseβ€”
    dpmpp_3m_sde_gpuBOOLEANfalseβ€”
    ddpmBOOLEANfalseβ€”
    lcmBOOLEANfalseβ€”
    ipndmBOOLEANfalseβ€”
    ipndm_vBOOLEANfalseβ€”
    deisBOOLEANfalseβ€”
    res_multistepBOOLEANfalseβ€”
    res_multistep_cfg_ppBOOLEANfalseβ€”
    res_multistep_ancestralBOOLEANfalseβ€”
    res_multistep_ancestral_cfg_ppBOOLEANfalseβ€”
    gradient_estimationBOOLEANfalseβ€”
    gradient_estimation_cfg_ppBOOLEANfalseβ€”
    er_sdeBOOLEANfalseβ€”
    seeds_2BOOLEANfalseβ€”
    seeds_3BOOLEANfalseβ€”
    sa_solverBOOLEANfalseβ€”
    sa_solver_peceBOOLEANfalseβ€”
    ddimBOOLEANfalseβ€”
    uni_pcBOOLEANfalseβ€”
    uni_pc_bh2BOOLEANfalseβ€”

    Outputs (1)

    NameTypeDescription
    STRINGSTRINGβ€”