FL Scheduler String XYZ
A checkbox list of every scheduler, for building sweep strings
- STRING
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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| simple | BOOLEAN | false | — |
| sgm_uniform | BOOLEAN | false | — |
| karras | BOOLEAN | false | — |
| exponential | BOOLEAN | false | — |
| ddim_uniform | BOOLEAN | false | — |
| beta | BOOLEAN | false | — |
| normal | BOOLEAN | false | — |
| linear_quadratic | BOOLEAN | false | — |
| kl_optimal | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |