Nodes/comfy-plasma/Brown Noise
ComfyUI Node

Brown Noise

Deep, muddy, and oddly calming

By Jordach·Created 3 years ago·Updated 2 years ago· 81
Brown Noise
    • IMAGE
    width512
    height512
    value_min-1
    value_max-1
    red_min-1
    red_max-1
    green_min-1
    green_max-1
    blue_min-1
    blue_max-1
    seed0

    If you've ever left a white-noise machine on, you know the noise color family: white is all frequencies at once, pink is warmer, and brown is the deep, rumbling end - the rain-on-a-roof sound. JDC_BrownNoise brings that idea to images. It's random noise, but the bright extremes get pulled hard toward the midtones, so instead of harsh static you get soft, dark, mottled texture. It's the gentlest member of the comfy-plasma noise family by Jordach.

    How it works

    All five of the pack's noise generators share the same skeleton: a per-pixel loop, per-channel range clamping, a seed. What distinguishes them is the math applied to each random value before it's written.

    Brown noise applies a cube root twice: pow(pow(random_value / 255, 1/3), 1/3) * 255. Each cube root squeezes values toward the middle of the range - 128-ish - so bright pixels get pulled down and dark pixels get lifted, and the extremes of the histogram collapse. The result is noise with a strong low-frequency character: broad, soft patches of subtle variation rather than per-pixel static. Where pink noise is "balanced," brown is "heavy." If you want a texture that looks like it was shot through fog or smoke, this is your node.

    It keeps the full range controls of the family: value_min / value_max (default -1 = full 0–255 range) plus red_min / red_max, green_min / green_max, and blue_min / blue_max per-channel overrides. So you can tint the brown - a deep sepia-brown wash is one override away. width / height step in increments of 8, from 128 to 8192.

    When you'd reach for it

    • Subtle texture over a background where pure random static would be too harsh.
    • Low-key, moody starting images for img2img or a VAE-encoded latent init - the soft variation gives the sampler something gentle to work from.
    • Film-grain-ish overlays with the edges taken off.

    It's the noise you pick when you want texture rather than static.

    The seed caveat

    Same as the rest of the family: the seed makes the output reproducible, but the author's source comment notes it "does nothing" as far as ComfyUI's caching is concerned - you have to actually change the seed widget or another input to force a fresh roll. There's no auto-randomize button.

    Install

    No requirements.txt, no models, no heavy deps - the pack uses only Pillow, numpy, torch, and requests, all already in ComfyUI.

    ComfyUI Manager → Install Custom Nodes → search comfy-plasma → install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Jordach/comfy-plasma
    

    Restart ComfyUI. It's under image/noise.

    Common issues

    The usual suspects: it's a Python per-pixel loop, so it's fine at 512×512 but slow if you push toward 8192 - generate small and upscale. And the double cube root means the noise occupies a narrow brightness band by default, so if it looks too muted, open up value_min/value_max rather than reaching for a contrast node afterward. It's supposed to look soft; that's the feature.

    Categoryimage/noise

    Inputs (11)

    NameTypeDefaultDescription
    widthINT512128–8192
    heightINT512128–8192
    value_minINT-1-1–255
    value_maxINT-1-1–255
    red_minINT-1-1–255
    red_maxINT-1-1–255
    green_minINT-1-1–255
    green_maxINT-1-1–255
    blue_minINT-1-1–255
    blue_maxINT-1-1–255
    seedINT00–18446744073709550000

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE