SetFirstSigma
One number at the top of your noise schedule — and why it controls so much
- sigmas
- SIGMAS
Every sigma schedule starts somewhere, and that first value is the most opinionated number in the whole curve. It's the noise level your latent begins at - the exact point where the sampler kicks off. SetFirstSigma is the node that lets you rewrite just that one number and leave the rest of the schedule alone.
If you've ever set KSampler's denoise below 1.0 for img2img, you were, in effect, doing the same thing this node does directly: starting from a lower noise level so the original image's structure survives. The difference is that the slider throws away the top of the schedule while SetFirstSigma rewrites the first entry. Same spirit, finer control, and it composes with everything else in the sigmas family.
How it works
The implementation is almost laughably small: it clones the incoming tensor and sets element zero to your value. sigmas[0] = sigma. That's it - no rescaling, no renormalizing, the rest of the curve stays exactly as the scheduler drew it. That's also its superpower: you get surgical control over the starting noise without disturbing the shape of the denoising curve below it.
The inputs and output
sigmas(SIGMAS) - any schedule from a scheduler node.sigma(FLOAT, 0–20000, default 136.0) - the new starting noise level. The default 136 is roughly the max sigma an SD 1.5/SDXL-class model was trained on, so leaving it alone means "full noise, denoise from scratch."SIGMASoutput - feed the edited schedule into your sampler.
What you'd actually use it for
- Partial denoise without a slider. Set
sigmato, say, 30% of the model's max, and the sampler starts mid-curve - the img2img look, expressed as data. - Normalizing schedules. If you swap schedulers and the workflow still behaves identically because the start was pinned by this node, that's a tidy trick for reproducible workflows.
- Working around a scheduler's quirks. Some flow-matching schedulers ship schedules whose first sigma doesn't line up with what your checkpoint expects; pinning the top with this node sidesteps that.
Where people get burned
- Going above the training ceiling. Sampling from a noise level the model never saw is out-of-distribution by definition - you're asking the denoiser to do a job it wasn't trained for. Keep
sigmaat or below the checkpoint's native max. - Breaking monotonicity. Schedules are strictly decreasing, and solvers assume that. If you set
sigmahigher than the second entry... it technically works, but high-order samplers get confused and you can get subtle artifacts. If you want a bigger spread, raise the first value and check the second stays below it. - Thinking it changes step count. It doesn't. You've moved the starting line, not shortened the race - a lower first sigma with the same schedule still runs every step.
It's a one-trick node, but it's a genuinely useful trick, and it's the piece of the sigmas toolkit that makes "start from noise level X" a thing you can wire up instead of a slider you have to babysit.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| sigma | FLOAT | 136.0000–20000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |