Power Shift Scheduler
The sigma curve knob people actually use to fix washed-out Flux colors
- model
- SIGMAS
When your Flux output comes out washed-out and flat, the fix people actually reach for isn't a different checkpoint - it's reshaping the noise schedule. Power Shift Scheduler is one of the most-mentioned knobs for that exact problem. The pack README is one line long and credits Clybius's InverserSquaredScheduler as the ancestor, which tells you the pedigree: this is a power-curve scheduler for people who've outgrown the stock dropdown.
Let's be clear about what it is and isn't. It's a scheduler, not a sampler. It decides when the denoiser spends its steps, not how each step removes noise. You use it inside the custom sampling stack: it outputs SIGMAS that feed the sigmas input of SamplerCustomAdvanced, sitting between your checkpoint and sampler.
How it works
The math is a double power curve. It takes x from 0 to 1 across your steps, skews it with midpoint_shift, then computes ts = (1 - x**power)**power and maps those values onto the model's own sigma ladder, deduplicating repeats and appending a final 0.0. Two knobs do all the work:
- power (default 2.0): how aggressively S-shaped the curve is. 1 is near-linear; 2–3 is the range people actually use.
- midpoint_shift (default 1.0): skews the curve's inflection point. Below 1 pushes more of your steps toward the low-noise end, where details get drawn.
steps, discard_penultimate, and denoise round it out. denoise under 1.0 (img2img or hires passes) computes a longer schedule and trims it down to your step count, which is how partial denoising keeps a sensible curve instead of a chopped one. discard_penultimate drops the second-to-last sigma - the last real denoise step before 0 - a cheap way to skip a near-zero step.
Why it's famous
The community signal is overwhelmingly flow-matching models: Flux, Wan, Klein. When someone on r/StableDiffusion asked about tweaking sigmas on a Flux 2 / Klein 9B workflow to stop color shift, the top reply was literally "I prefer Power Shift scheduler… with 2–3 for power and 0.8–1 for midpoint shift, 4–16 steps depending on case." Another regular describes it as "mostly for flow matching models, which is FLUX and basically all video models." On a near-straight rectified-flow trajectory, a reshaped curve changes how the model spends its effort - that's what rescues saturated color at low step counts. It still works on SD1.5/SDXL, since it remaps the model's own sigma range, but that's not where its reputation comes from.
The output is a single SIGMAS tensor. Wire it into SamplerCustomAdvanced, or skip the node entirely - installing the pack also registers power_shift (plus radiance_shift, sigma_curve_*, and a family of beta_33–beta_57 schedules) as built-in names in the KSampler scheduler dropdown.
Install
ComfyUI Manager → search "ComfyUI Power Shift Scheduler", or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI_PowerShiftScheduler
Restart ComfyUI. No model downloads, no weights. One real gotcha: the pack imports scipy at module load but ships no requirements.txt, so Manager won't install it for you. If the nodes don't show up after restart, that's the usual culprit - pip install scipy in your ComfyUI environment fixes it.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| steps | INT | 203–1000 | — |
| power | FLOAT | 2.0000–5 | — |
| midpoint_shift | FLOAT | 1.0000–5 | — |
| discard_penultimate | BOOLEAN | false | — |
| denoise | FLOAT | 1.000–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |