Nodes/SigmaWaveFormNodes/Sigma Waveform Node Advanced
ComfyUI Node

Sigma Waveform Node Advanced

Two waveforms, one schedule — the Sigma Waveform Node Advanced

By BenNarum·Created 2 years ago·Updated 2 years ago· 6
Sigma Waveform Node Advanced
    • sigmas
    steps60
    noise_fine_tune1.0
    waveform_type1sine
    waveform_type2sine
    blend_factor0.50
    amplitude13.0
    amplitude23.0
    frequency10.10
    frequency20.10
    horizontal_length0.10
    min_sigma0.0
    apply_fourierfalse
    apply_loglinearfalse
    enable_dampingtrue
    damping_factor0.030
    enable_unidirectionaltrue

    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 / frequency1 and amplitude2 / 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.

    Categorysampling/custom_sampling/schedulers

    Inputs (16)

    NameTypeDefaultDescription
    stepsINT601–1000
    noise_fine_tuneFLOAT1.00–10
    waveform_type1COMBOsine7 options: sine, sawtooth, stepped, square, random, triangle, +1
    waveform_type2COMBOsine7 options: sine, sawtooth, stepped, square, random, triangle, +1
    blend_factorFLOAT0.500–1
    amplitude1FLOAT3.00.1–100
    amplitude2FLOAT3.00.1–100
    frequency1FLOAT0.100.01–10
    frequency2FLOAT0.100.01–10
    horizontal_lengthFLOAT0.100.01–1
    min_sigmaFLOAT0.00–10
    apply_fourierBOOLEANfalse
    apply_loglinearBOOLEANfalse
    enable_dampingBOOLEANtrue
    damping_factorFLOAT0.0300–0.1
    enable_unidirectionalBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    sigmasSIGMAS