Custom Sigmas
Pasting a hand-picked noise schedule straight in
- SIGMAS
A sampler's scheduler decides how much noise gets removed at each step - a Karras schedule, for instance, concentrates the removal in the middle steps rather than spreading it evenly, which is why "DPM++ 2M Karras" looks and behaves differently from plain DPM++ 2M at the same step count. Custom Sigmas skips the built-in scheduler entirely and lets you paste in the exact sigma values you want, step by step, as a plain comma-separated string.
Why you'd want this
Not every optimized schedule you might want is exposed as a dropdown option in ComfyUI's stock samplers. Nvidia's AYS (Align Your Steps) research published specific, hand-tuned sigma sequences per model family that get noticeably better results at low step counts than a generic schedule would - the node's own description ships the SD 1.5, SDXL, and SVD sequences as ready-to-paste examples. If your sampler node doesn't have that schedule built in, or you found a sequence in a paper or another tool's repo that ComfyUI doesn't natively support, this is how you get it into your graph without writing custom scheduler code.
It's also just useful for experimentation - if you want to hand-tweak individual step sizes to see what changes, editing a comma-separated list is a lot more direct than fighting with scheduler presets that only expose a handful of parameters.
How it works
You give it a string of sigma values, and it turns that into a proper SIGMAS tensor for ComfyUI's sampling nodes. If you want a different step count than the number of values you typed, interpolate_to_steps will resample the sequence up or down to match - so you can take a published 10-step AYS schedule and stretch or compress it to whatever step count you're actually running, rather than being locked to exactly the length you pasted.
The inputs and outputs that matter
sigmas_string(multiline, default is the SD 1.5 AYS 10-step schedule:14.615, 6.475, 3.861, 2.697, 1.886, 1.396, 0.963, 0.652, 0.399, 0.152, 0.029) - your comma-separated sigma values. The node's description also gives ready SDXL and SVD sequences if you want to swap in one of those instead of typing your own.interpolate_to_steps(0–255, default 10) - resamples your typed sequence to this many steps. Set it to 0 to use the sequence exactly as typed, with no resampling.
One output: SIGMAS - wire it into a sampler node that takes a sigmas input (a Custom Sampler / SamplerCustom-style setup) in place of its normal scheduler.
How to install it
- ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, thenpip install -r ComfyUI-KJNodes/requirements.txt(portable:python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-KJNodes\requirements.txt), then restart.
No models needed - this is pure numerical schedule generation.
Common issues & troubleshooting
Nothing changes even after swapping schedules. Make sure your sampler node is actually wired to accept a SIGMAS input rather than generating its own internally - plenty of the simpler KSampler-style nodes don't expose that slot at all, and you need one of the custom-sampler-style nodes that does.
Using a schedule from the wrong model family. These sigma sequences are tuned per model - the SD 1.5, SDXL, and SVD examples in the description are not interchangeable. Pasting the SVD sequence into an SDXL workflow (or vice versa) will run without erroring, but the noise removal curve won't match what the model was actually trained against, and results will suffer in ways that are easy to misdiagnose as something else being wrong.
Step count mismatch produces odd results. If interpolate_to_steps doesn't match the step count your sampler is actually set to run, you'll either get a resampled schedule that doesn't quite match the original curve's intent, or a length mismatch depending on how your sampler node consumes the sigmas. Keep the two in sync, or set interpolate_to_steps to 0 and match your sampler's step count to exactly how many values you typed.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas_string | STRING | 14.615, 6.475, 3.861, 2.697, 1.886, 1.396, 0.963, 0.652, 0.399, 0.152, 0.029 | — |
| interpolate_to_steps | INT | 100–255 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |