Nodes/ComfyUI-RvTools_v2/Sampler Selector
ComfyUI Node

Sampler Selector

One dropdown to rule all your KSamplers

By r-vage·Created about a year ago·Updated 5 months ago· 23
Sampler Selector
    • sampler_name
    sampler_name

    The Sampler Selector is a single dropdown that outputs the name of a sampler as a value you can wire into any KSampler. On the surface that's the most trivial thing in the world - you could just pick the sampler in the KSampler's own widget. The payoff comes the moment your workflow has more than one sampler: wire this node's sampler_name output into every KSampler in the graph, and changing your sampler becomes a one-click affair instead of hunting through a dozen widgets. Tune once, apply everywhere.

    How it works

    It's a passthrough with extra steps. You get a dropdown containing all 44 samplers ComfyUI knows about - euler, euler_ancestral, heun, dpm_2, dpmpp_2m, dpmpp_2m_sde, lcm, ddim, uni_pc, and friends. Pick one, and the node hands the chosen string back out of its sampler_name output. That's the entire mechanism; the value is literally the string the KSampler expects.

    Where it gets interesting is the ecosystem behind it. ComfyUI's sampler list is set by whatever custom sampler packs you have installed (comfyui_sampler_variants adds the _cfg_pp and res_multistep entries you'll see in the dropdown, for instance). Because this node reads the live list from comfy.samplers.KSampler.SAMPLERS at load time, it always shows what your install actually supports - unlike a hardcoded widget that goes stale.

    The inputs and output

    • sampler_name - the dropdown. It's both the input and the output, which sounds weird until you realize the node exists to turn a widget into a wired value. Pick once, fan it out.
    • The sampler_name output feeds the sampler socket on KSampler, KSampler (Advanced), and any sampler-parameterized node that accepts a string.

    That's the whole schema - one field, one output. There's no model, no state, nothing to cache.

    A word on which sampler to pick

    If you're new and wondering what to actually select: the safe defaults haven't really changed - DPM++ 2M Karras for SD1.5/SDXL quality at reasonable step counts, euler as the boring-but-reliable workhorse, and the _ancestral variants when you want more variety run-to-run (they inject extra noise, so they're less deterministic). The 44-item list includes plenty of niche entries most people will never touch - that's fine. The point of this node isn't to make you try all 44; it's to make the one you land on consistent across your whole graph.

    Installing it

    Part of the RvTools v2 pack, no models to download. ComfyUI Manager → search RvTools → install ComfyUI-RvTools_v2, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/r-vage/ComfyUI-RvTools_v2
    

    Restart and look for RvTools v2: Version 2.5.x in the console. Its extra deps (opencv-python, pilgram, pynvml, piexif) install automatically via Manager.

    Troubleshooting

    The one thing that trips people up: if a sampler doesn't show in the dropdown, it's because the pack that provides it isn't installed. This node reflects your installed sampler library. Load a workflow that uses, say, res_multistep_ancestral_cfg_pp and you'll get a missing-node error on the KSampler long before this node is the problem. Install the sampler pack the workflow expects, restart, and the entry appears.

    Also worth flagging for context: the original RvTools repo was deleted, so old workflows referencing it fail in Manager - this v2 pack renamed everything to fix that, and the author has since moved on to ComfyUI_Eclipse. For brand-new graphs, Eclipse is the continuation.

    Category🫦 RvTools II/ Settings

    Inputs (1)

    NameTypeDefaultDescription
    sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38

    Outputs (1)

    NameTypeDescription
    sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,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_2m_sde_heun,dpmpp_2m_sde_heun_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,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2