Nodes/ComfyUI-GU_Nodepack/GU Get Scheduler Indexed
ComfyUI Node

GU Get Scheduler Indexed

The scheduler version of 'pick by number' — for sampler sweeps

By alexguryev·Created 4 months ago·Updated 23 days ago· 2
GU Get Scheduler Indexed
    • scheduler
    • scheduler_name
    • total
    s_list
    index1
    total9

    This is GU Get Sampler Indexed's sibling, and it does the exact same trick one level over: pick a scheduler by index instead of by dropdown. Feed it a number, get back the scheduler at that position in ComfyUI's built-in list, plus its name and the list length. If you've read the sampler article, you already know the whole shape - this is the part where I tell you the differences and the one trap.

    What it does

    • s_list - the system scheduler list. Stock ComfyUI ships nine: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal. Same role as the sampler list - it's the reference you're indexing into.
    • index - which scheduler, 1 to 9.
    • total - read-only count display.

    Outputs:

    • scheduler - typed scheduler reference, plugs straight into a KSampler's scheduler socket.
    • scheduler_name - the same thing as a string, for filenames and labels.
    • total - list length as an INT, for loop bounds.

    Mechanically identical to the sampler version: SchedList[index-1], 1-indexed. Index 1 is simple, index 9 is kl_optimal.

    Why bother, when samplers get all the attention

    Because sampler and scheduler are separate dimensions of a sweep, and the community's testing advice treats them separately too - the concepts essay's quick-test guidance is "DPM++ 2M or UniPC at 10-15 steps," and the step counts that make sense depend heavily on which scheduler you're on. karras and exponential change the noise schedule, and with distilled models (LCM, turbo LoRAs) the schedule choice is what actually makes low-step generation work. So a real parameter sweep wants to vary both axes, and for that you need both pickers scriptable by loop index. Wire a loop counter into this node's index and the sampler node's index, run the Cartesian product, and you've swept the whole tuning space without touching a single dropdown.

    The pack even pairs this with a GU Set Frames Video node for LTX/WAN video work, where sampler+scheduler+frame-count combos are exactly the knobs you tune per clip.

    Install

    ComfyUI Manager → Custom Nodes Manager → search "GU Nodepack" → Install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/alexguryev/ComfyUI-GU_Nodepack
    cd ComfyUI-GU_Nodepack
    pip install -r requirements.txt
    

    Same story as everything in the pack: Python deps only (psutil, requests, gu-funclib>=1.9.0), no model downloads, Windows-tested, single-user design.

    The trap

    Same off-by-one as the sampler node, and it's worse here because there are only nine entries: an index of 0 isn't clamped, it's just wrong, and you'll get a valid-but-not-the-one-you-wanted scheduler. If you're feeding loop counters in, verify whether your loop is 0- or 1-based before wiring it. Also worth knowing: total is live - if a scheduler pack registers extras, the count and the list update, so trust the node over any hardcoded "nine schedulers" memory.

    CategoryGU_Nodepack

    Inputs (3)

    NameTypeDefaultDescription
    s_listCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
    indexINT11–9
    totalSTRING9

    Outputs (3)

    NameTypeDescription
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
    scheduler_nameSTRING
    totalINT