Conditioning set timestep from sigma
Set timestep from sigma
- model
- conditioning
- CONDITIONING
ComfyUI's built-in ConditioningSetTimestepRange node tells a conditioning to only be active for part of the generation - but you have to express that range as a percentage of steps. That works fine until you change the step count, or switch samplers, and suddenly your carefully-tuned cutoff point is in the wrong place. Conditioning set timestep from sigma fixes that by letting you set the range in sigma values instead - the actual noise levels the sampler works in.
Sigmas are the model's own measurement of noise, and they don't care how many steps you took to get there. A sigma of 15 is "early, noisy," and a sigma of 1 is "late, nearly clean" regardless of whether you're running 20 steps or 40. That makes this node the robust way to express the kind of "let the negative stop after the coarse structure is done" cutoff that the Support empty uncond speed trick depends on.
Mechanically it's a thin wrapper: it takes your sigma start and end, converts them into the equivalent step percentages using the model's own sigma→timestep mapping, and hands the result to the core ConditioningSetTimestepRange node under the hood. So it behaves exactly like the built-in, just with a better unit.
The inputs are the usual three plus a pair of floats:
modelandconditioning- pass through, needed to convert sigmas and to carry the modified conditioning.sigma_start(default 15) - the noisiest point where the conditioning becomes active.sigma_end(default 0) - the cleanest point where it stops being active.
Set sigma_start high and sigma_end around the noise level where you want conditioning to cut out. To make the Support empty uncond speedup work, the README's recipe is to let your negative conditioning go through this node with the range set so it stops around 65% of the way through - and since you're expressing it in sigmas, that cutoff stays put no matter how you change your sampler settings.
The output is a single CONDITIONING, which you wire into your sampler's negative (or positive) conditioning input. If you're using this with Support empty uncond, remember that node's rule: use it only once, and as the last pre-CFG node in any chain.
Getting the node is the pack standard:
cd ComfyUI/custom_nodes
git clone https://github.com/Extraltodeus/pre_cfg_comfy_nodes_for_ComfyUI
or install pre_cfg_comfy_nodes_for_ComfyUI via ComfyUI Manager and restart. It's in the "advanced/conditioning" category rather than the model_patches group, but it ships in the same pack - no extra install, no models, no dependencies.
If you've ever rebuilt a workflow after changing samplers only to rediscover your conditioning cutoff drifted, this node is the annoyance-killer. Set it once in sigmas and stop thinking about step math.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| conditioning | CONDITIONING | — | |
| sigma_start | FLOAT | 15.000–10000 | — |
| sigma_end | FLOAT | 0.000–10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |