Nodes/ComfyUI_ELLA/Get Sigma (BNK)
ComfyUI Node

Get Sigma (BNK)

The invisible number that wrecks ELLA prompts

By ExponentialML·Created 2 years ago·Updated 2 years ago· 160
Get Sigma (BNK)
  • model
  • FLOAT
sampler_name
scheduler
steps10000
start_at_step0
end_at_step10000

ELLA is picky. Its text encoding is conditioned on the exact noise level - the sigma - your sampler is at, so if the sigma you feed it doesn't match what the KSampler is actually doing, the conditioning gets applied at the wrong denoising stage and parts of your prompt quietly stop mattering. The reference workflow hardcodes a sigma float, which is right for exactly one sampler/scheduler/steps combo. Change anything and you're off.

Get Sigma exists to close that gap. It's a tiny utility node that takes your model, sampler, scheduler and step range, works out what sigma the KSampler's schedule would produce, and hands you that number as a FLOAT. Wire it into ELLATextEncode and the sigma always matches, no matter what you tweak. "BNK" in the name isn't marketing - the node is borrowed from BlenderNeko's ComfyUI_Noise pack (the source literally comments "borrowed from … until patch update").

How it works

Under the hood it builds a real comfy.samplers.KSampler with your settings, reads the sigma schedule it generates, and returns:

sigmas[start_at_step] - sigmas[end_at_step]

then divides by the model's latent scale factor. So it's not a guess or a lookup table - it's the actual delta your sampler will walk through for that range. That's why model is a required input: different checkpoints have different latent scale factors, and the sigma value is per-model, not universal.

The inputs that matter

  • model - your checkpoint. Same one feeding the KSampler.
  • sampler_name and scheduler - 42 samplers, 9 schedulers. These must match your KSampler exactly, because each combination produces a different sigma schedule.
  • steps, start_at_step, end_at_step - for a standard full-denoise ELLA setup, set steps to your KSampler's step count and end_at_step to the same number. The outputs are a single FLOAT, which feeds ELLATextEncode's sigma input (right-click that input and pick "convert sigma to input" to free the socket first).

One genuinely nice thing: Get Sigma is useful well beyond ELLA. Any workflow that needs a sigma value - noise injection, certain img2img math, "how much denoising am I actually doing here?" sanity checks - can grab it. It's a standalone calculator that happens to live in this pack.

Install and gotchas

It ships in the same pack as the rest of ELLA, so the install is shared: ComfyUI Manager, search ComfyUI_ELLA, or clone it straight into custom_nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/ExponentialML/ComfyUI_ELLA

Restart ComfyUI. The real gotcha is discipline, not installation: if you change the sampler, scheduler, or step count on the KSampler and don't update Get Sigma to match, you've reintroduced the exact bug it was supposed to kill. Keep them in sync and you never have to think about sigma again - which, for ELLA, is the entire point.

Categorylatent/noise

Inputs (6)

NameTypeDefaultDescription
modelMODEL
sampler_nameCOMBO42 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +36
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
stepsINT100000–10000
start_at_stepINT00–10000
end_at_stepINT100001–10000

Outputs (1)

NameTypeDescription
FLOATFLOAT