OptimalStepsScheduler
Pre-tuned 'optimal' schedules for Flux, Wan, and Chroma — no thinking required
- SIGMAS
OptimalStepsScheduler is the scheduler equivalent of a curated playlist: instead of a formula that draws a curve, it hands you a measured noise schedule that somebody already swept for your model family. Pick your model type - FLUX, Wan, or Chroma - and it returns the step placement that its authors found worked best for that family.
It's a sibling of GITSScheduler in spirit (both are "trust the precomputed table" schedulers), but this one is far more relevant today, because its tables are normalized 0-to-1 curves built for the flow-matching models everyone actually runs. It arrived in April 2025, gained Chroma support in May 2025, and has stayed useful since - a rare case of a "research-y" scheduler that didn't rot.
How it works
The node ships three hardcoded schedules - one each for FLUX, Wan, and Chroma - each an 11-value (FLUX) or longer list of normalized noise levels. When you ask for a different step count than the table provides, it log-linearly interpolates the curve to your count. The denoise input truncates it the same way every scheduler in this family does: total_steps = round(steps * denoise), then it takes the tail of the schedule.
Because the tables are normalized, they're resolution-agnostic - no width/height input, no per-model sigma ranges to get wrong. That's the appeal: one pick and the curve is right.
The inputs and output
model_type(COMBO:FLUX,Wan,Chroma) - the field that matters. It's not a suggestion; each table was fit to a specific family's training.steps(INT, 3–1000, default 20).denoise(FLOAT, 0–1, default 1.0).- One
SIGMASoutput, into your sampler.
Common issues
- Wrong family. Running the Wan table on a Flux model, or the FLUX table on a Wan model, gives you a curve tuned for a different training distribution. The results are usually "off" in a subtle way - slightly worse composition or detail - that's hard to pin down. Match the pick to the checkpoint.
- It doesn't know about your specific checkpoint. "FLUX" covers the whole family, but a distilled Flux (Schnell, Klein) wants fewer steps and a different shape than base Dev. OptimalSteps is a great default; it's not a substitute for reading the model card's recommended settings.
- Treating it as a magic improvement. Pre-tuned schedules are a real quality bump over naive defaults at low step counts, but the differences are subtle. If you're chasing a big change, the sampler and CFG are where to look first.
For the three families it covers, this is the lazy-but-right choice: plug in, pick the family, generate. It's the node I'd hand a beginner on Flux before any schedule-tuning lecture.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_type | COMBO | 3 options: FLUX, Wan, Chroma | |
| steps | INT | 203–1000 | — |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |