Nodes/CRT-Nodes/Sampler & Scheduler Selector (CRT)
ComfyUI Node

Sampler & Scheduler Selector (CRT)

Turn sampler and scheduler names into wireable strings

By PGCRT·Created 2 years ago·Updated a day ago· 132
Sampler & Scheduler Selector (CRT)
    • sampler_name
    • scheduler
    sampler_name
    scheduler

    Here's a ComfyUI quirk that trips up workflow-builders: the sampler and scheduler dropdowns on a KSampler are baked into the node, so you can't drive them from a variable. SamplerSchedulerSelector (CRT) is the workaround - a tiny values node that lists every sampler and scheduler ComfyUI knows about, and outputs each selection as a STRING. It exists to make those choices external, scriptable, and shareable instead of buried in a node.

    Why you'd bother

    Two genuinely useful patterns:

    1. A/B testing without touching the sampler. Put this node in a subgraph, change one dropdown, and re-queue - instead of digging into a KSampler buried mid-graph. Wire the outputs into a KSampler whose sampler_name and scheduler inputs accept strings (CRT's own batch samplers do, and plenty of community samplers take string inputs too).
    2. Workflow hygiene. When you share a workflow, having sampler/scheduler decisions at the top as labeled nodes instead of nested dropdowns makes it readable. It's also how you centralize "this project always uses euler + karras" in one place.

    The mechanism

    It's almost insultingly simple - it's a pass-through. The dropdown lists come straight from ComfyUI's own comfy.samplers registry (KSampler.SAMPLERS and KSampler.SCHEDULERS), so it always shows exactly what your ComfyUI build supports, no hardcoded stale lists. Select euler and karras, and you get "euler" and "karras" out as strings. That's the whole node.

    The sampler list is the full 44-entry roster (euler, euler_ancestral, heun, dpm_2, lms, dpm_fast, and the rest), and the scheduler list covers the nine standard ones: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, and kl_optimal.

    The two outputs

    • sampler_name - STRING, the selected sampler.
    • scheduler - STRING, the selected scheduler.

    Both feed any input that takes a sampler/scheduler name as text. No transforms, no magic.

    Gotchas

    • It only outputs strings. The core KSampler node still has its own dropdown - you can't override it with this node's output unless the sampler node accepts string inputs (check the input socket type; CRT's batch samplers do).
    • Names must match exactly. If you pass a string into a node that expects a validated name, a typo or an unavailable sampler fails at execution, not at selection. The dropdown prevents that; hand-typing doesn't.
    • It's a selector, not a config. There's no "remember my last choice" - the selection lives in the node, which is exactly what you want for reproducible workflows.

    Install CRT-Nodes via ComfyUI Manager (CRT-Nodes) or git clone https://github.com/plugcrypt/CRT-Nodes.git into custom_nodes, install requirements.txt, restart.

    CategoryCRT/Utils/Logic & Values

    Inputs (2)

    NameTypeDefaultDescription
    sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3

    Outputs (2)

    NameTypeDescription
    sampler_nameSTRING
    schedulerSTRING