Sigma Waveform Node Advanced
Two waveforms, one schedule — the Sigma Waveform Node Advanced
- sigmas
The base Sigma Waveform Node draws one wave. The Advanced version from the SigmaWaveFormNodes pack draws two, blends them, and then runs the result through a small post-processing pipeline that makes it look a lot more like something a sampler can actually chew on. If you're going to bother with this pack at all, this is the node you'll end up keeping.
The idea: one waveform shape is a blunt instrument. A sine schedule gets boring, a square schedule gets violent. But a sine faded into a sawtooth, at the right blend, can give you a curve that starts aggressive and settles - which is exactly the arc a good scheduler fakes with math. This node lets you build that arc by hand.
How it works
It generates two independent waveforms on the same time axis, then combines them:
sigma = blend_factor * sigma1 + (1 - blend_factor) * sigma2
After the blend, the same pipeline as the base node runs - unidirectional shift, optional exponential damping, optional Fourier lowpass - and then the Advanced node adds two things the base node doesn't have:
apply_loglinear- interpolates the sequence in log space, the classic move for turning a linear-looking curve into a perceptually smooth noise ramp.- The "refined exponential solver" - a second-order integration pass that sums the curve into a smoother, more schedule-shaped output. This is why the Advanced node's results are noticeably less chaotic than the base node's raw waves. It runs unconditionally.
Finally noise_fine_tune scales the whole thing.
The inputs that matter
The base-node set is all here - steps, min_sigma, apply_fourier, horizontal_length, enable_damping/damping_factor, enable_unidirectional - plus the split controls:
waveform_type1/waveform_type2- pick any two of the seven shapes (sine, sawtooth, stepped, square, random, triangle, rectangular).amplitude1/frequency1andamplitude2/frequency2- shape each wave independently.blend_factor(0–1, default 0.5) - at 0.5 you get an equal mix; pull toward 1 to hear mostly wave one.noise_fine_tune(default 1.0) - a master volume for the whole schedule after blending and integration.apply_loglinear- off by default; turn it on when you want the interpolated, smoothed version.
Single output sigmas, which wires straight into ComfyUI's native SamplerCustom node.
Installing it
Comes bundled with the whole SigmaWaveFormNodes pack - install once, get all six nodes. Use ComfyUI Manager (search "SigmaWaveFormNodes") or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/BenNarum/SigmaWaveFormNode
Restart ComfyUI after. Dependencies are just numpy and torch, which you already have; no models, no downloads, nothing heavy.
Gotchas
Same caveats as the base node apply - even the Advanced node's output isn't a guaranteed-descending schedule, so treat results as experiments, not corrections. The blend formula weights wave one by blend_factor and wave two by 1 - blend_factor, so at 0.5 it's a true half-and-half, not two full waves stacked. And noise_fine_tune multiplies the final integrated curve, so a value of 2 roughly doubles your sigma magnitudes - start at 1 and nudge.
One honest note: this pack's last commit was June 2024 and the project is effectively dormant. It still imports and runs fine, but don't expect updates - and don't expect anyone on r/comfyui to have debugged your exact settings. You're the maintainer of your own workflow here, which is sort of the point.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 601–1000 | — |
| noise_fine_tune | FLOAT | 1.00–10 | — |
| waveform_type1 | COMBO | sine | 7 options: sine, sawtooth, stepped, square, random, triangle, +1 |
| waveform_type2 | COMBO | sine | 7 options: sine, sawtooth, stepped, square, random, triangle, +1 |
| blend_factor | FLOAT | 0.500–1 | — |
| amplitude1 | FLOAT | 3.00.1–100 | — |
| amplitude2 | FLOAT | 3.00.1–100 | — |
| frequency1 | FLOAT | 0.100.01–10 | — |
| frequency2 | FLOAT | 0.100.01–10 | — |
| horizontal_length | FLOAT | 0.100.01–1 | — |
| min_sigma | FLOAT | 0.00–10 | — |
| apply_fourier | BOOLEAN | false | — |
| apply_loglinear | BOOLEAN | false | — |
| enable_damping | BOOLEAN | true | — |
| damping_factor | FLOAT | 0.0300–0.1 | — |
| enable_unidirectional | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| sigmas | SIGMAS | — |