From Points Scheduler
Draw your own noise schedule, literally
- SIGMAS
Most schedulers give you a dropdown. UC_SigmaCurveFromPointsScheduler gives you a list of numbers and interpolates the entire denoising schedule through them. You literally type the shape of the curve: 1.0, 0.9, 0.7, 0.3, 0.1 - that's a schedule that dawdles at the top, drops fast through the middle, and eases at the bottom. This is the "draw your own noise curve" tool for people who've exhausted the presets.
How it works
Two inputs. steps (default 8, up to 1000) is how many sampling steps you're running. custom_points is a comma-separated string of sigmas that defines the shape of the curve - the defaults ship as 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, which is a gently accelerating descent tuned for low-step sampling. The points are interpolated out to your step count, so you don't need to type one point per step - eight points shape a thirty-step schedule fine. Give it fewer than two points and it falls back to the built-in defaults, so you can't accidentally break it by deleting the field.
The output is a SIGMAS list for a custom sampling chain: ModelSampling → this → SamplerCustom. And the pack is explicit about the two companions you'll often need: for image-to-image, connect UC_SigmaRescale after it to set your start noise level; if your sampler requires penultimate-sigma removal, connect UC_DiscardPenultimateSigma next.
Why you'd bother
The whole point of a custom curve is control over where denoising effort lands. Want a slow, careful start to nail composition before detail kicks in? Front-load low points. Want to slam through the early steps and spend your budget on texture? Back-load them. Flow-matching models like Z-Image and friends are famously picky here - the KB's sampler sweep work found that aggressive curve reshapes actively hurt on straight flow-matching trajectories, so this is a tool for deliberate experimentation, not a default upgrade. When a model "just isn't landing" at low steps, though, drawing a gentler curve is exactly the kind of intervention that fixes it.
Install
Part of ComfyUI-UtilsCollection:
cd ComfyUI/custom_nodes
git clone https://github.com/silveroxides/ComfyUI-UtilsCollection
Restart, or use ComfyUI Manager (search "UtilsCollection"). No models needed; opencv-python + typing-extensions auto-install.
Gotchas
The migrated scheduler also registers under the core-compatible ID sigma_curve_from_points, so you may see it inside Core's scheduler selector dropdowns in addition to this standalone node - same behavior, two doors in. And the pack's README is blunt about its migrations: if you had the old standalone ComfyUI_SigmoidOffsetScheduler / ComfyUI_PowerShiftScheduler packs installed, remove them before accepting ComfyUI's workflow-replacement prompt, or you'll collide on node IDs. Worth repeating for this whole scheduler family: the defaults are a starting point, not gospel - if your model likes a different shape, the points field is there to be edited, and that's the entire reason this node exists.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 81–1000 | — |
| custom_pointsopt | STRING | 1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875 | Comma-separated points that shape the denoising schedule. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | For I2I, connect Sigma Rescale. If required, connect Discard Penultimate Sigma. |