Nodes/WAS Affine/Affine Ring Noise Noise Options
ComfyUI Node

Affine Ring Noise Noise Options

Targeting one frequency band with Affine's ring noise

By WASasquatch·Created about a year ago·Updated 5 months ago· 5
Affine Ring Noise Noise Options
    • noise_options
    ring_center_frac0.85
    ring_bandwidth_frac0.060

    WASRingNoiseOptions is the config node for Affine's ring_noise pattern, and it's the most surgical knob in the whole WAS Affine pack. Where most patterns spread an effect everywhere or everywhere-organic, ring noise isolates a single band of frequencies in the image and aims the transform only at the detail at that scale. Think of it as telling the affine step: "there's a specific texture size I want to push, and everything else - the flat tones, the fine grain, the big shapes - leave alone."

    That makes it the pattern to reach for when you know the exact problem. Detail in the 0.85-of-Nyquist frequency band looks burned or mushy? Ring noise lets you nudge exactly that, rather than firing a broad-spectrum enhancement that also sharpens noise and hardens gradients.

    How it works

    The mask is generated in the frequency domain as a narrow annulus - a thin ring in 2D frequency space - then transformed back. Two inputs control it, and that's the whole node:

    • ring_center_frac (default 0.85, 0–1) - where the ring sits, as a fraction of the Nyquist radius. Nyquist is the highest representable frequency (the pixel grid's own limit), so 0.85 is close to the fine-detail edge. Lower it toward 0.3–0.5 and you're targeting mid-scale structures instead.
    • ring_bandwidth_frac (default 0.06, 0.005–1) - how thick the ring is. A small value like the default means a very narrow frequency slice: precision. Widen it and the effect bleeds into neighboring scales.

    A useful mental model: frequency = feature size. High frequency = fine detail and noise; low frequency = broad tone and composition. Ring noise picks a specific feature size and modulates only that. The README's own guidance files ring_noise under "fine detail work," and that's the honest use case - it's a detail-enhancement scalpel, not a general polish tool.

    Wiring it up

    Like every Affine options node, it outputs a single noise_options DICT. Connect it to the noise_options input of Latent Affine, KSampler Affine Advanced, or the Ultimate Affine KSampler variants, and set that node's pattern to ring_noise. Per the source, noise_options overrides the base options dict (from WASLatentAffineCommonOptions) where keys collide, so you can layer a common base with this as the pattern-specific layer.

    The same catch as the rest of the family applies: if the consuming node's pattern isn't ring_noise, this node is decoration.

    Installing it

    It ships inside WAS Affine (WASasquatch/was_affine). Install via Manager - search "WAS Affine" - or clone:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/was_affine.git
    

    Restart after installing. No models to download; dependencies are just torch/numpy (plus matplotlib in the shipped requirements, used by the schedule visualization). The pack explicitly does not require UltimateSDUpscale nodes even though the samplers borrow the name.

    Gotchas worth knowing

    • Default 0.85 sits right at the edge of noise. At that center fraction, "fine detail" and "image noise" are neighbors, so you can end up amplifying sensor-like grain instead of real structure. If your result gets crunchy, pull the center down toward 0.6–0.7.
    • Bandwidth too narrow (default 0.06 is already narrow) can make the mask look like faint interference rather than enhancement. If you see rippling, widen it.
    • Ring noise is deterministic per affine_seed like the other procedural patterns - if you want the same mask across a batch or across frames, keep that seed fixed (or use the affine_seed_increment toggle to vary it deliberately).

    Thin node, sharp effect. If you want "enhance exactly this scale of detail and nothing else," this is the one.

    Categorylatent/adjust

    Inputs (2)

    NameTypeDefaultDescription
    ring_center_fracFLOAT0.850–1Ring center as a fraction of Nyquist radius (0-1).
    ring_bandwidth_fracFLOAT0.0600.005–1Fractional bandwidth (thickness) of the ring.

    Outputs (1)

    NameTypeDescription
    noise_optionsDICT