Nodes/comfyui-obvpm/Sampler Name (obvpm)
ComfyUI Node

Sampler Name (obvpm)

Pick euler once, wire it to five samplers

By chanon·Created about a month ago·Updated a day ago· 40
Sampler Name (obvpm)
    • sampler
    • sampler_name
    sampler_name

    Your sampler choice is a widget on the sampler node. That's a problem the moment you have more than one sampler: comparing euler against dpmpp_2m means editing the same dropdown in two places, and it means the choice can't travel - it can't go in a preset, it can't be switched, it can't be printed into a filename so you remember what made the image.

    Sampler Name hoists that dropdown onto a wire. Nothing more, nothing less.

    What it does

    You pick a sampler from a list, and the node outputs it. Two outputs, and the difference between them matters:

    • sampler - typed as the sampler list itself, so it plugs straight into any sampler_name combo (KSampler, KSamplerSelect, and anything else that offers the standard list).
    • sampler_name - the same choice as a plain STRING, for bundling, for a caption, for a filename prefix, for a note node.

    The list you pick from is read live from your install, so whatever samplers you have - the 44 that ship with a modern ComfyUI, plus any a pack registers - show up here.

    Why you'd want it

    One choice, many consumers. Two samplers in one workflow comparing the same solver, or a base pass and a refine pass that should stay matched. Set it once.

    Comparisons you don't fumble. Flip this one widget and every sampler follows. Do the same thing by hand across four nodes and you will eventually run a comparison where one of them didn't get updated, which is how you end up staring at two identical images wondering whether the sampler even matters.

    Presets and bundles. Because it's a value on a wire, it can go into a bundle or sit behind a case switch. That's the same reason the pack ships Lora Name, Scheduler Name and Value Presets: a generation's settings become data you can swap as a set instead of twelve widgets to hand-edit.

    A word on what to actually pick

    Since the node puts the whole list in front of you, it's worth knowing what's in it. DPM++ 2M Karras was the safe default for years - for SD 1.5 and SDXL checkpoints it still is - but it's no longer the general answer. On the flow-matching models that dominate now, euler, euler_a or dpmpp_sde on a beta, simple, linear_quadratic or sgm_uniform schedule is where the sensible settings live, and res_multistep in the list above is one of the flow-model solvers that came in from that shift.

    If you're chasing the last few percent on a modern model, the tuning hasn't stopped - it moved into RES4LYF, whose high-order solvers (res_2m, res_2s, res_3s) plug into the same combo. That pack's arrival in your workflow is one sampler substitution; pair it with this node and switching between "stock euler" and "res_2m" is a dropdown on the far side of the canvas from the sampler it feeds.

    The other thing worth saying: this node chooses the sampler, and nothing else. Steps, CFG, shift and denoise still live on the sampler node. Routing the name doesn't route the settings, and a preset that carries a sampler without carrying its step count is half a preset.

    The compatibility trick

    The socket names deliberately mirror the nodes this replaces (the pack credits ComfyUI-Image-Saver's Sampler Selector as the design it's reimplementing). That's not vanity: a widget converted to an input is re-bound by name when a workflow loads, so keeping sampler_name as the socket name means an existing graph can swap the node type and keep its wires.

    Install

    Manager, search comfyui-obvpm. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chanon/comfyui-obvpm
    

    Restart ComfyUI. No Python dependencies to install - the pack's pyproject.toml declares none, deliberately, because everything it imports already comes with ComfyUI - and no model files. Every node in the pack has an (obvpm) suffix in the menu, so obvpm in the node search box is the index.

    Categoryobvpm/values

    Inputs (1)

    NameTypeDefaultDescription
    sampler_nameCOMBOAny sampler this ComfyUI knows about.

    Outputs (2)

    NameTypeDescription
    samplereuler,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_bh2The choice, typed to match a sampler_name combo.
    sampler_nameSTRINGThe same choice as a plain string.