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—