Power Shift Scheduler
The scheduler that reshapes denoising to your model's liking
- model
- SIGMAS
If you've ever felt that a model's output was "close but not quite" and the standard scheduler dropdown wasn't doing it for you, Power Shift is the node that gave scheduler-curious users a real knob to turn. It builds a power-shaped sigma schedule - instead of the fixed curves in ComfyUI's stock list, you get to bend the denoising curve itself with two numbers. It comes from silveroxides/ComfyUI-UtilsCollection, and it's the direct descendant of the standalone ComfyUI_PowerShiftScheduler pack that silveroxides shipped earlier - which itself was inspired by Clybius's InverserSquaredScheduler. The UtilsCollection version keeps the node ID, so old workflows just keep working.
Why bother with a custom schedule? The KB's sampler essay has the framing: the sampler decides how noise is removed, the scheduler decides how much at each step, and models differ wildly in what they want. Power Shift gives you a curve of the form (1 - x^power)^power with a midpoint shift, which lets you push more denoising work toward the start or end of sampling. People use it when a model's colors wash out, when detail dies early, or when the default Karras-style curve just fights the model. There's a real community pattern here: for power, 2–3, and midpoint shift 0.8–1.0, at 4–16 steps - that's the range people report actually helping on models like Klein. Treat it as a starting point, not a law; one recurring piece of wisdom is that no single schedule works forever, so expect to re-tune per model.
What's on the node
- model - the diffusion model, so it can read the model's own sigma range.
- steps - number of denoising steps (default 20).
- power (default 2.0) - how strongly the curve is bent. Higher = change is concentrated more dramatically.
- midpoint_shift (default 1.0) - shifts denoising effort toward the start (below 1) or end (above 1) of sampling.
- SIGMAS output - the schedule, which feeds the sampler node in a custom-sampling setup.
Two notes baked into the node's own description: for image-to-image, connect Sigma Rescale after it to map the schedule to the exact noise level you're starting from; and if your sampler requires penultimate-sigma removal, chain Discard Penultimate Sigma. The dedicated node doesn't include Core-style denoise controls, so those two helper nodes are how you get there.
Installing it
Via the pack:
- ComfyUI Manager: search "ComfyUI-UtilsCollection".
- Or:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart ComfyUI. Requirements are opencv-python and typing-extensions - no models. If you still have the old standalone ComfyUI_PowerShiftScheduler installed, ComfyUI will offer to replace it; accept and remove the old pack so you don't get duplicate nodes. The migration also registers power_shift as an option in Core's own scheduler selector, so you can even use it without the standalone node.
Gotchas
The classic mistake is treating Power Shift as a set-and-forget replacement for the stock schedulers. It isn't - it's a tuning instrument, and the same settings that fix one model can subtly break another. Watch for color shifts, which are the usual symptom of an over-aggressive curve; if colors wash out, lower the power. And don't forget the I2I step: running image-to-image through a schedule meant for txt2img gives you noise levels that don't match your actual start, which is exactly what Sigma Rescale exists to fix. Start from the community's 2–3 power range, change one variable at a time on a fixed seed, and judge by the composite rather than a single thumbnail.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| steps | INT | 203–1000 | — |
| power | FLOAT | 2.0000–5 | Changes how denoising steps are spread. Higher values make the change stronger. |
| midpoint_shift | FLOAT | 1.0000–5 | Move more denoising toward the start or end of sampling. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | For I2I, connect Sigma Rescale. If required, connect Discard Penultimate Sigma. |