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

Sampler & Scheduler Crawler (CRT)

Sweep every sampler and scheduler combo by bumping one number

By PGCRT·Created 2 years ago·Updated a day ago· 132
Sampler & Scheduler Crawler (CRT)
    • sampler_name
    • scheduler
    • sampler_str
    • scheduler_str
    • selection_label
    • list_info
    sampler_seed0
    scheduler_seed0
    sweep_schedulersfalse

    "Which sampler should I use?" is one of the oldest questions in the hobby, and the honest answer is: it depends on the model, and you should test it. Sampler & Scheduler Crawler (CRT) is built for exactly that - it turns sampler and scheduler selection into a seed-indexed sweep, so you can test every combination by bumping one integer between runs instead of hand-editing two dropdowns each time.

    It's a logic/values node from CRT-Nodes, and it's the kind of thing that looks unassuming until you're three hours into a sampler A/B and realize you've already tested euler, dpmpp_2m, and nothing else because editing dropdowns got tedious. This node walks the whole grid for you.

    How it works

    Two seeds, two lists:

    • sampler_seed % len(all samplers) picks the sampler from ComfyUI's built-in sampler list.
    • scheduler_seed picks the scheduler, with a twist: turn on sweep_schedulers and the scheduler index only advances after the sampler list has completed a full cycle. So with sweep ON, incrementing sampler_seed by one each run walks every sampler/scheduler combination in order - a proper nested loop, no math on your part.

    That tooltip on the node says it all: "test every possible Sampler/Scheduler combination sequentially by simply incrementing the sampler_seed."

    Inputs and outputs

    • sampler_seed / scheduler_seed - these are indexes, not random seeds. In normal use you set scheduler_seed to 0 and drive everything from sampler_seed.
    • sweep_schedulers - the switch that turns on the full-grid walk.

    The outputs are designed to plug straight into a KSampler:

    • sampler_name and scheduler - typed to match KSampler's own ports, so wire these directly into the sampler node.
    • sampler_str / scheduler_str - the same values as plain strings, for logging or text display.
    • selection_label - "euler - normal"-style readout, handy for a note node.
    • list_info - the full sampler and scheduler lists with the current picks marked, so you can see where you are in the sweep.

    How to actually run a sweep

    Drive sampler_seed from a counter that increments per run - a seed node you bump, or a batch-loop node - set scheduler_seed to 0, turn on sweep_schedulers, and queue repeatedly. Each run tests the next combo. Come back later, read list_info on the last run, and you've got your answer with a log instead of a guessing game.

    Gotchas

    • The lists come from your ComfyUI build, so the count and the names depend on your version - list_info reflects whatever's installed.
    • Seeds wrap: once sampler_seed passes the total number of combos, it loops back to the start. Fine for continuous runs, worth knowing if a "new" result looks oddly familiar.
    • It's a selection helper, not a sampler itself - it can't run anything on its own. Wire its outputs into a real KSampler.

    Install: ComfyUI Manager → search CRT-Nodes → install and restart, or clone the repo into custom_nodes. The full suite carries a heavy dependency list, but the pack keeps loading when optional imports fail - it skips only the affected nodes.

    CategoryCRT/Utils/Logic & Values

    Inputs (3)

    NameTypeDefaultDescription
    sampler_seedINT00–18446744073709550000
    scheduler_seedINT00–18446744073709550000
    sweep_schedulersBOOLEANfalseWhen ENABLED: Automatically increments the Scheduler index only after the Sampler list has completed a full cycle (looped). This allows you to test every possible Sampler/Scheduler combination sequentially by simply incrementing the 'sampler_seed'.

    Outputs (6)

    NameTypeDescription
    sampler_name*
    scheduler*
    sampler_strSTRING
    scheduler_strSTRING
    selection_labelSTRING
    list_infoSTRING