Sigmas CatmullRom
Smooth and resample a noise schedule with spline interpolation
- sigmas
- SIGMAS
Unlike a lot of its neighbors in RES4LYF's sigma toolbox, Sigmas CatmullRom isn't a novelty. Catmull-Rom splines are a standard, well-understood interpolation technique - the same kind of math used for smooth camera paths in animation - and this node applies that to a noise schedule: fit a smooth curve through your existing sigma values, then resample it at however many points you want.
What it's actually for
Two genuine use cases. First, smoothing: if you've built a schedule by hand-editing, appending, or running it through some of the pack's rougher math nodes, the result can be jagged in a way that makes a sampler behave unpredictably - CatmullRom fits a smooth curve through those points instead of leaving hard jumps between them. Second, resampling: it's also a legitimate way to change your step count on an existing schedule without going back to a scheduler node and starting over.
How it works
tension controls how tightly the spline pulls toward its control points versus how loosely it curves between them - this is the standard Catmull-Rom tension parameter, and lower values give a looser, more rounded curve while higher values hug the original points more closely. points sets how many samples the output schedule has - note this defaults to 100, which is a lot more than a typical 20–30 step schedule, so this parameter is doing real resampling work whether you intend it to or not. boundary_condition (repeat, clamp, or mirror) decides how the curve behaves at the very start and end, where it doesn't have neighboring points on both sides to work from.
The inputs and outputs that matter
sigmas(SIGMAS, required) - the schedule to smooth/resample.tension(default0.5, range 0–1) - curve tightness.points(default100, range 5–1000) - output step count. Set this to match the step count you actually want, not the default.boundary_condition(enum:repeat,clamp,mirror; defaultclamp) - end behavior.
Output is a single SIGMAS list of length points.
How to install it
- ComfyUI Manager - search "RES4LYF", install, restart.
- Manual - activate your venv,
cd ComfyUI/custom_nodes && git clone https://github.com/ClownsharkBatwing/RES4LYF,cd RES4LYF,pip install -r requirements.txt(portable builds: use the embeddedpip.exe). Restart.
Common issues & troubleshooting
The most common mistake: forgetting to set points. Drop this node on a normal 20–30 step schedule without touching points and you'll suddenly be sampling 100 steps - a real difference in render time and, depending on your sampler, possibly in output quality too. Set it to whatever step count you were actually targeting.
Low tension on a schedule with a sharp drop near the end can overshoot. Splines can curve past their control points depending on tension and boundary condition, which for a noise schedule means you could end up with sigma values that dip negative near a steep section. Check the output - Sigmas Abs fixes negative values if this happens.
Not covered in the README, but this is the sigma node in the batch I'd trust most without a doc, precisely because spline resampling is well-understood, general-purpose math rather than a pack-specific invention. Still worth a Sigmas Count check to confirm your final step count before a real render.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| tension | FLOAT | 0.500–1 | — |
| points | INT | 1005–1000 | — |
| boundary_condition | COMBO | clamp | 3 options: repeat, clamp, mirror |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |