ComfyUI Node

Noise

Film grain with eleven personalities

By TrophiHunter·Created about a year ago·Updated about a year ago· 5
Noise
  • image
  • IMAGE
noise_level0.0000
typecolor noise
distributiongaussian
opacity100

Flat, poreless AI images are the single biggest tell that something was generated, and grain is the cheapest fix. The catch is that most "add noise" nodes just scatter uniform static - which looks like static, not film. This Noise node gives you eleven distributions to play with, from proper gaussian grain to salt-and-pepper sensor error to Poisson shot noise, in both monochrome and color. If you're chasing the photorealism finish line, the grain you add at the end is doing more heavy lifting than you'd think, and this is the node to do it with.

How it works

It generates a noise field per the chosen distribution and blends it into the image at opacity. The noise_level is the master amount, but here's the author's honest warning in the description: each distribution needs a different level before anything shows up. Gaussian noise appears at low levels; Poisson and Rayleigh need a much higher setting to be visible at all. So the slider isn't universal - the distribution you pick changes what "100" means.

The distributions worth knowing:

  • gaussian - the workhorse. Smooth, filmic, the default for a reason
  • dark-dependent gaussian - noise that scales with shadow areas; this one's great because real sensor noise is worse in the dark
  • poisson / speckle - shot-noise flavor, more physical, subtle at low levels
  • salt & pepper - sparse black/white pixels, the "dead pixel" sensor look
  • laplacian / exponential / rayleigh / gamma / binary - exotic textures for specific vibes

type picks color noise (independent per-channel, can look rainbow if overdone) vs. monochromatic (single-channel, reads as real film grain). Start monochromatic.

Inputs that matter

  • noise_level - amount, 0–100. Remember: distribution-dependent
  • type - "monochromatic noise" for film grain; "color noise" for sensor character
  • distribution - the personality. Gaussian is the safe first stop
  • opacity - Photoshop-style blend strength. The clean way to dial in subtlety

One IMAGE in, one IMAGE out.

Install

Part of Photography Nodes:

cd ComfyUI/custom_nodes
git clone https://github.com/TrophiHunter/ComfyUI_Photography_Nodes

Restart, look under TrophiHunter/Photography (ComfyUI Manager: "Photography Nodes"). No requirements, no models.

Where people get burned

The big one is cranking noise_level to 100 on gaussian and wondering why the image is static - that's a mix of a too-high level and, often, forgetting opacity is a separate 0–100 dial. The subtle-but-plausible recipe is monochromatic, gaussian, opacity 20–40, and a low noise_level, dialed until skin stops looking waxy. Also: grain goes last in the chain, after sharpening (sharpening amplifies grain into crawly texture), which matches the author's own ordering - Noise sits after Chromatic Aberration and before Sensor Dust, near the end of the capture-degradation stack.

CategoryTrophiHunter/Photography

Inputs (5)

NameTypeDefaultDescription
imageIMAGE
noise_levelFLOAT0.00000–100
typeCOMBOcolor noise2 options: color noise, monochromatic noise
distributionCOMBOgaussian11 options: gaussian, uniform, dark-dependent gaussian, poisson, salt & pepper, speckle, +5
opacityINT1000–100

Outputs (1)

NameTypeDescription
IMAGEIMAGE