Nodes/ComfyUI_Element_easy/Element_SigmaGraph
ComfyUI Node

Element_SigmaGraph

The sigma curve editor

By supElement·Created 9 months ago·Updated about 11 hours ago· 10
Element_SigmaGraph
  • custom_sigmas
  • latent
  • sigmas
  • steps
steps20
graph_data{"points": [{"x": 0.0, "y": 1.0}, {"x": 1.0, "y": 0.0}], "mode": "curve"}
max_value1.0000

Element_SigmaGraph is the most technical node in this pack and the one you should probably skip until the others make sense. It's a custom sigma schedule editor: instead of picking a scheduler from a dropdown, you draw the noise schedule yourself - a curve that says "here's how much denoising happens at each step." It started life as a heavily modified fork of Temult's TWanSigmaGraph node, and the changelog reads like a running list of sharp edges that got fixed.

Why you'd ever bother

The stock schedulers (Karras, exponential, and friends) are fixed recipes for how noise is removed across the sampling trajectory. That works great for most models, but the whole sampler-tuning scene exists because it doesn't work great for everything - flow-matching models in particular are picky about sigma schedules, and a curve editor lets you redistribute denoising effort by hand (see the samplers and schedulers discussion in the ComfyUI concepts docs if you want the theory). If you're doing serious sampler R&D, this is the tool. If you just want good images, the scheduler dropdown is fine and this node is a time sink.

How it works

You set steps (1–1000) for the trajectory, then shape the curve in graph_data - a JSON string of points plus a mode, curve for smooth interpolation or linear for straight segments. Click to add a point, drag it, right-click to delete. max_value (default 1) sets the top of the curve, so you can scale the whole schedule up or down without redrawing it; the node also has a forced-correction behavior that keeps the output sigma values sane even if you draw something pathological.

Outputs are sigmas (a SIGMAS tensor) and steps (the count). The sigmas output plugs into a sampler that accepts a custom schedule - this is the whole point, and it bypasses whatever scheduler the sampler would otherwise use.

Two optional inputs are worth knowing about because they exist for real reasons:

  • custom_sigmas (SIGMAS) - feed in an existing sigma series and the node can store it, turning any schedule into an editable preset.
  • latent (LATENT) - this exists to sync load/unload ordering with LTX audio VAE, a niche-but-real bug that was apparently worth a port for.

Installing it

It ships in supElement/ComfyUI_Element_easy:

cd ComfyUI/custom_nodes
git clone https://github.com/supElement/ComfyUI_Element_easy.git

Restart ComfyUI, or install via ComfyUI Manager by searching ComfyUI_Element_easy.

Gotchas

This is where the changelog gets interesting. A few real things people hit:

  • The linear "L" mode had an output bug that was fixed in v1.4.4 - if you're on an old version and linear mode looks wrong, update the pack.
  • In the same release the author added the max_value output and the forced-correction pass, so on older versions weird curves could produce garbage sigmas without warning.
  • Drawing an aggressive schedule can make sampling unstable. The forced correction helps, but "the model fell apart" after a custom curve is a feature, not a bug - you drew something the model can't denoise from.

If you're not already comfortable with what a sigma schedule does, skip this one until you are. When you are, it's one of the few places you can actually sculpt the noise trajectory instead of picking a preset.

CategoryElement_easy/custom_SIGMAS

Inputs (5)

NameTypeDefaultDescription
stepsINT201–1000
graph_dataSTRING{"points": [{"x": 0.0, "y": 1.0}, {"x": 1.0, "y": 0.0}], "mode": "curve"}
max_valueFLOAT1.00000.0001–1000
custom_sigmasoptSIGMAS
latentoptLATENT

Outputs (2)

NameTypeDescription
sigmasSIGMAS
stepsINT