Nodes/LF Nodes/Sampler selector
ComfyUI Node

Sampler selector

Pick your sampler from a dropdown that remembers

By lucafoscili·Created 2 years ago·Updated 2 years ago· 50
Sampler selector
  • ui_widget
  • combo
  • string
enable_historytrue
randomizefalse
filter
seed42
samplerNone

The KSampler's sampler dropdown is fine until you've been through thirty workflows and you can't remember which sampler you actually ran last time. LF_SamplerSelector is a standalone sampler picker with history: it remembers what you've used and when, can randomize the pick for sweeps, and outputs a combo you wire straight into the KSampler's sampler input. Same underlying selection, but it turns the choice into something you can track and vary.

The sampler input is a dropdown of 35 options covering the standard ComfyUI range - euler and its ancestral variant, heun, dpm_2, the dpmpp family (2m, 2s_ancestral, sde, 3m_sde), lcm, ddim, ipndm, uni_pc, and more. enable_history (on by default) records each execution's sampler and date, so the node doubles as a "what did I actually run" log - genuinely useful when you're chasing a good result and your workflow has been through twenty edits. The history widget renders that log in the UI.

Then there's randomize, which is the interesting one. Flip it on and the node picks a sampler at random from your configured set - filter narrows that pool by name with wildcards (say *dpmpp* to stay in the dpmpp family, or *ancestral* to only test the non-converging ones), and seed makes the pick reproducible. That turns sampler selection into a mini sweep: same seed, same sampler; change the seed, get a different one. It's a low-effort way to do what the community calls sampler testing without hand-clicking through every option.

Before you randomize everything, a word from sampler lore that this dropdown itself won't teach you. Converging samplers (euler, dpmpp_2m, ddim, uni_pc) settle on a stable image - same seed, same result, extra steps just refine. Ancestral samplers (euler_ancestral, dpmpp_sde) keep adding noise each step, so they never quite settle and more steps changes the image. And the bigger split: on SDXL-class DDPM models the old "DPM++ 2M Karras" default still holds, but on flow-matching models (Flux and friends) you generally want euler-family samplers on a conservative schedule. The selector doesn't judge - it just picks from the list. Knowing which family your model wants is on you.

Outputs: combo is the wireable pick (it connects to the KSampler's sampler input), and string gives you the name as text if you need it for a filename or display node.

Install is the LF standard - ComfyUI Manager → "LF Nodes", or clone https://github.com/lucafoscili/comfyui-lf into custom_nodes and restart. No models or extra deps. And the pack-level reminder: this repo is frozen in legacy mode (early 2025, fully functional); the maintained version lives in lucafoscili/lf-nodes.

Category✨ LF Nodes/Selectors

Inputs (6)

NameTypeDefaultDescription
enable_historyBOOLEANtrueEnables history, saving the execution value and date of the widget.
randomizeBOOLEANfalseSelects a sampler randomly.
filterSTRINGWhen randomization is active, this field can be used to filter sampler names. Supports wildcards (*).
seedINT420–18446744073709550000Seed value for when randomization is active.
ui_widgetoptKUL_HISTORY[object Object]
sampleroptCOMBONoneSampler used to generate the image.

Outputs (2)

NameTypeDescription
comboeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,ddim,uni_pc,uni_pc_bh2
stringSTRING