PolyexponentialScheduler
Karras's flexible cousin
- SIGMAS
PolyexponentialScheduler is a noise-schedule generator that walks the line between the two extremes most people know: the ExponentialScheduler's pure exponential curve and the KarrasScheduler's strongly-shaped one. It produces a polyexponential schedule, controlled by a rho exponent, and it's been in ComfyUI core (comfy_extras.nodes_custom_sampler) since September 2023. It's one of the "compute sigmas from sigma_min/sigma_max" family of schedulers that you mostly find in advanced workflows that need a specific schedule shape.
How it works
A noise schedule is just a descending list of sigma values. The polyexponential schedule interpolates between sigma_max (the noisiest starting point) and sigma_min (the cleanest), with rho controlling the curve's shape:
rho= 1 gives a curve close to the plain exponential - denoising effort spread fairly evenly, leaning toward the noisy end.rho> 1 concentrates more denoising effort in the middle steps, approaching the Karras-style reshaping that helps DDPM-style models at low step counts.
The inputs:
steps- how many sigma values (denoising steps) to produce.sigma_max/sigma_min- the noise-level range. The defaults (14.61 / 0.029) are the standard SD/SDXL-range values; you'll normally leave them alone unless you know your model's range differs.rho- the shape knob, 0–100, default 1.
Output is a SIGMAS tensor for SamplerCustomAdvanced.
The honest framing
This is a specialist node, and its specialty is narrowing. If you just want a good schedule, you pick a named scheduler from the dropdown on BasicScheduler and never think about sigma ranges. PolyexponentialScheduler is for when you want the parametric control - a schedule between exponential and Karras that you can tune continuously with rho, or one built to your own sigma bounds. That's a niche. The sibling KarrasScheduler exists because most people who want this kind of control want that specific shape; polyexponential is the one for the in-between.
Where people get burned
- Assuming Karras-style reshaping helps everything. Same rule as everywhere: aggressive schedules fail on flow-matching models (Flux, Z-Image, Klein, Anima). Raising
rhoon those is a distortion, not a correction. This schedule's powers are an SD 1.5/SDXL thing. - Changing sigma_min/max without checking the model. The model's sampling object knows its own range; the defaults are generic. If you're tuning these, you're asserting a range that overrides what the model expects.
- Expecting a visible difference. Between rho 1 and rho 3 the change is real but subtle; you're in diminishing-returns territory that most workflows never need to visit.
If the model card names a sampler/scheduler pair, use that. This node is for the experimenters who want a continuously-tunable schedule and know why.
If you're browsing this family for the first time, the practical path is: start on BasicScheduler with a named scheduler, and only reach for a parametric one when a sweep shows a specific region of the schedule is hurting you. When that day comes, rho gives you the one knob Karras hard-codes at 7 - the polyexponential curve at a rho you choose - which is the node's whole reason to exist.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 201–10000 | — |
| sigma_max | FLOAT | 14.610–5000 | — |
| sigma_min | FLOAT | 0.030–5000 | — |
| rho | FLOAT | 1.000–100 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |