RC Add Noise
Five kinds of noise, one node — grain, texture, and de-banding
- image
- IMAGE
Noise gets a bad rap. In the AI image world it's usually the enemy - the grain that ruins a clean render, the banding on a gradient that you'd kill to smooth out. But there's a whole category of work where adding noise on purpose is the move: matching a generated image to a grainy reference, giving a too-clean render a filmic texture, breaking up the posterization in a smooth sky, or testing how your pipeline handles dirty inputs.
RC Add Noise, from the RC Image Compositor pack, gives you five procedural noise models behind one input. It's not the most glamorous node in the pack, but it's one of the more flexible.
How it works
The noise_type dropdown is the whole story:
- gaussian - sharp random noise with a bell-curve distribution. The standard "salt in the image" look.
- gaussian_blur - the same Gaussian distribution but blurred, so it reads as softer, larger-scale texture rather than pixel grit.
- uniform - evenly distributed random values, flatter and harsher than Gaussian.
- salt_pepper - black and white speckles. This is the one that makes an image look genuinely dirty.
- speckle - multiplicative noise, where the noise scales with the underlying pixel value. The tooltip's right: it behaves like film grain, because real grain is roughly multiplicative too.
The amount slider runs 0–100. Keep it low - single digits read as texture, double digits read as damage.
The inputs that matter
- image - what you're adding noise to.
- noise_type - the five-way choice above.
- amount - intensity, 0–100.
- monochromatic - off (default) gives independent noise per RGB channel, which shows up as color speckle; on gives the same noise across all channels, i.e. clean grayscale grain. For film grain you nearly always want this on.
- preserve_alpha - defaults to true, keeping an RGBA image's alpha channel untouched. Leave it alone unless you're deliberately adding noise to an alpha.
Output is a single IMAGE tensor.
How to install it
It ships in the RC Image Compositor pack (search "RC Image Compositor" in ComfyUI Manager, or):
cd ComfyUI/custom_nodes
git clone https://github.com/kj863257/ComfyUI_RC_Image_Compositor
cd ComfyUI_RC_Image_Compositor
pip install -r requirements.txt
Restart ComfyUI after. Dependencies are just pillow, numpy, opencv-python - no models, no keys.
Common issues
The trap here is assuming one noise type suits every job. If your goal is film grain, gaussian with monochromatic on gets you a flat analog texture, but for anything with tone-aware grain - more grain in shadows, less in highlights - the pack's separate RC Film Grain node is the one you actually want, because it modulates grain by luminance. RC Add Noise is the blunt instrument; use it for texture, de-banding, and dirtying things up, and reach for Film Grain when you want it to look like it came off a negative.
Also worth knowing: noise is additive at whatever amount you set, so on a high-quality render, values above ~5% will read as obvious noise rather than texture. Dial it in on a preview (the pack's RC Preview Image (No Metadata) is handy for that) before committing to a save.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| noise_type | COMBO | gaussian | Noise type: - gaussian: Sharp random noise with bell curve distribution - gaussian_blur: Smooth Gaussian distributed noise with blur - uniform: Evenly distributed random noise - salt_pepper: Black and white speckles - speckle: Multiplicative noise (like film grain) |
| amount | FLOAT | 10.00–100 | Noise intensity (0-100, higher values = more noise) |
| monochromatic | BOOLEAN | false | Monochromatic noise: - True: Same noise pattern for all RGB channels (grayscale noise) - False: Independent noise for each color channel (color noise) |
| preserve_alpha | BOOLEAN | true | Keep original alpha channel unchanged |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |