ComfyUI Node Runs on cloud

Sampler Selector

Pick the sampler once, feed it to KSampler and the metadata

By giriss·Created 3 years ago·Updated 19 days ago· 338
Sampler Selector
    • sampler_name
    sampler_name

    Sampler Selector is a dropdown of every sampler ComfyUI knows about, wired so its choice can go two places at once: into your KSampler and into the Save Image w/Metadata node. That's the entire job. It exists because the metadata saver needs to record which sampler you used, and the only way to be sure the recorded name matches the one that actually ran is to pick it in a single spot and split the wire. Choose dpmpp_2m here, and both your sampler and your saved metadata say dpmpp_2m. No drift.

    On its own it's not exciting - it's a combo box. But it's the difference between metadata you can trust and metadata you have to double-check by hand.

    How it works

    The node exposes one dropdown of sampler names and outputs the selected one as a combo value. Wire that output into your KSampler's sampler_name (convert the widget to an input first if there's no port - right-click, "Convert sampler_name to input", or drag the wire onto the field on newer frontends) and also into the save node's sampler_name. Now the choice lives in one place.

    The list is long - 44 entries in current ComfyUI, from the workhorses (euler, euler_ancestral, dpmpp_2m, dpmpp_sde, dpmpp_3m_sde, ddim, uni_pc) out to the newer solvers (res_multistep, gradient_estimation, seeds_2, sa_solver). It mirrors whatever ComfyUI's core sampler list currently holds.

    Which sampler, briefly

    That's a whole topic, but the short version worth carrying: the right sampler depends on your model's architecture, not on which name sounds fanciest. For SD 1.5 and SDXL checkpoints - including the anime finetunes like Illustrious, Pony and NoobAI - dpm++ 2m karras at 20-30 steps (or euler a for the anime ones) is still the safe default. For flow-matching models (Flux, Z-Image and friends), that habit actively backfires: use euler, euler_a or dpmpp_sde, and do not carry Karras over - on those models the aggressive Karras/exponential schedules fail across the board rather than merely underperforming. Distilled checkpoints (Turbo, Lightning) want euler with sgm_uniform. When in doubt, take the pair off the model card; it's a better use of your time than a blind sweep.

    The input and output

    • sampler_name (enum) - the dropdown. One required field, and it's the whole node.

    The single output is sampler_name, carrying the chosen value - fan it out to your KSampler and the metadata node.

    Installing it

    Comes with the pack. ComfyUI Manager: search Save Image with Generation Metadata, install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/giriss/comfy-image-saver
    cd comfy-image-saver
    pip install -r requirements.txt
    

    Restart. No models needed.

    Where people get tripped up

    Two things. First, the wiring: a KSampler's sampler_name starts as a widget, so if you can't find where to plug this in, convert it to an input. Second - and this catches people - the dropdown only contains samplers your ComfyUI actually has. If a name someone else used is missing from the list, you're on an older core version (or a different fork), not a broken node. Update ComfyUI and the newer samplers appear. And remember this node only selects and labels a sampler; it doesn't change how sampling works. The quality lever is which one you pick, which is the model-card question above, not the node itself.

    CategoryImageSaverTools/utils

    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