Nodes/ComfyUI_Fill-Nodes/FL Scheduler String XYZ
ComfyUI Node

FL Scheduler String XYZ

A checkbox list of every scheduler, for building sweep strings

By filliptm·Created 3 years ago·Updated a day ago· 630
FL Scheduler String XYZ
    • STRING
    simplefalse
    sgm_uniformfalse
    karrasfalse
    exponentialfalse
    ddim_uniformfalse
    betafalse
    normalfalse
    linear_quadraticfalse
    kl_optimalfalse

    The sibling to FL_SamplerStrings, and built for exactly the same reason: instead of hand-typing "karras,exponential,simple,..." into a batch/sweep node and hoping you spelled everything right, FL_SchedulerStrings gives you one checkbox per scheduler ComfyUI actually supports and outputs whichever ones you ticked as a comma-separated string. Small node, same pack (Fill-Nodes, filliptm), same job as its sampler counterpart, just for the other half of a sampler+scheduler pair.

    A scheduler - also called a noise schedule - decides how much noise gets removed at each step, independent of which sampling algorithm (the sampler) is doing the removing. A linear schedule removes equal amounts each step; Karras concentrates the work in the middle steps, which is why "DPM++ 2M Karras" reads as one unit even though sampler and scheduler are two separate choices. Which scheduler pairs well with which model varies - Karras-style aggressive schedules that help older SD 1.5/SDXL checkpoints can actively hurt flow-matching models, which tend to want gentler, more balanced schedules.

    How it works

    Same mechanism as its sibling: the toggle list is populated dynamically from comfy.samplers.KSampler.SCHEDULERS, the same registry your regular KSampler dropdown reads from, so new schedulers a ComfyUI update adds show up here without the node needing an update of its own. Every toggle starts off; ticked ones get joined into one string, in the registry's own order.

    The inputs and outputs that matter

    Nine boolean toggles, one per scheduler: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, normal, linear_quadratic, kl_optimal - all default false. There's no other configuration; you just pick which ones belong in your sweep. The single output is a STRING of your selections, comma-separated, meant to feed the scheduler axis of FL_KSamplerXYZPlot or any other node in the pack expecting that format.

    How to install it

    ComfyUI Manager: search "Fill-Nodes" and install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
    

    No dependency of its own - it reads a registry that's already part of your ComfyUI install - but restart is required regardless for a fresh custom-node pack to load.

    Common issues & troubleshooting

    A scheduler you've heard of isn't in the list. Some schedulers you'll see mentioned in workflows - bong_tangent from RES4LYF is a good example - ship inside their own third-party node pack, not ComfyUI core, and won't appear here unless that pack is also installed. This node only reflects what's in ComfyUI's own scheduler registry.

    Empty selection. Nothing ticked means an empty string out, which will break or degenerate any downstream sweep expecting at least one scheduler. Tick at least one box.

    Sweep results look worse than expected on a newer model. That's usually not this node's fault - it's the classic mismatch of applying an SD 1.5-era scheduler choice (Karras, Exponential) to a flow-matching model that wants a gentler schedule. If your sweep includes both eras of scheduler on a modern checkpoint, don't be surprised when the "aggressive" ones underperform.

    Category🏵️Fill Nodes/Ksamplers

    Inputs (9)

    NameTypeDefaultDescription
    simpleBOOLEANfalse
    sgm_uniformBOOLEANfalse
    karrasBOOLEANfalse
    exponentialBOOLEANfalse
    ddim_uniformBOOLEANfalse
    betaBOOLEANfalse
    normalBOOLEANfalse
    linear_quadraticBOOLEANfalse
    kl_optimalBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    STRINGSTRING