ComfyUI Node

PCHIP Scheduler

A monotonic spline through your sigma control points

By silveroxides·Created about a year ago·Updated 4 months ago· 9
PCHIP Scheduler
  • model
  • SIGMAS
steps8
discard_penultimatefalse
denoise1.00
custom_points

PCHIP Scheduler does exactly what its name says and nothing more: it takes sigma control points and runs a monotonic cubic Hermite spline through them, so you get a smooth noise schedule instead of a polygon. It's the sibling of the pack's From Points Scheduler - same eight built-in points, same custom_points input, same SIGMAS output - but where From Points connects the dots with straight lines that kink at every corner, PCHIP rounds them into a continuous curve. And because it's monotonic by construction, it can't overshoot outside your control points the way a naive cubic spline can. No surprise dips below zero, no spikes above your max sigma.

Why you'd reach for it

Hand-designed schedules. If you're defining a sigma curve by feel - "spend a while up here, drop fast through the middle, crawl through detail land" - PCHIP gives you a shape that actually behaves instead of one with corners where the linear version would snap. It's also the one you want when resampling a known curve to a lot of steps: the default steps is 8, but the max is 2000 (twice the From Points node's cap) and the spline stays smooth all the way up. Resample someone's 8-point custom list to 60 steps without it turning into a staircase.

The inputs mirror the rest of the pack:

  • steps (default 8): points along the curve, plus the appended 0.0.
  • custom_points: comma-separated floats like 1.0, 0.9, 0.8; fewer than two values falls back to the built-in points.
  • discard_penultimate / denoise: skip the last near-zero step, or trim a longer schedule for partial-denoise passes.

Output is a single SIGMAS tensor for SamplerCustomAdvanced.

Same gotcha as its sibling

Like From Points, this node emits raw sigma values - it never touches your model's sigma ladder, so the model input is a formality. The default points are normalized 0..1, which is the scale flow-matching models (Flux, Wan, Klein) actually use. Feed them to an SD1.5/SDXL sampler, where real sigmas run ~15 down to ~0, and you'll get a blurry image that looks like a partial denoise, because you effectively started at the clean end. On flow models you're fine; on DDPM models, scale your points or use Power Shift.

Install

Same one install as the whole pack:

cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI_PowerShiftScheduler

or search "ComfyUI Power Shift Scheduler" in ComfyUI Manager, then restart. No model downloads. One quirk worth knowing: PCHIP is a scipy.interpolate routine, and the pack imports scipy at load time with no requirements.txt - if the nodes are missing after install, pip install scipy in the ComfyUI environment is the fix. The install also exposes sigma_curve_pchip in the plain KSampler scheduler dropdown if you want a quick taste before building a custom-sampling graph.

Categorysampling/custom_sampling/schedulers

Inputs (5)

NameTypeDefaultDescription
modelMODEL
stepsINT81–2000
discard_penultimateBOOLEANfalse
denoiseFLOAT1.000–1
custom_pointsoptSTRINGsigma curve points provided as comma separated list of floats. e.g. '1.0, 0.9, 0.8'

Outputs (1)

NameTypeDescription
SIGMASSIGMAS