Element_SigmaGraph
The sigma curve editor
- custom_sigmas
- latent
- sigmas
- steps
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_valueoutput 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 201–1000 | — |
| graph_data | STRING | {"points": [{"x": 0.0, "y": 1.0}, {"x": 1.0, "y": 0.0}], "mode": "curve"} | — |
| max_value | FLOAT | 1.00000.0001–1000 | — |
| custom_sigmasopt | SIGMAS | — | |
| latentopt | LATENT | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |
| steps | INT | — |