ImageNoiseGaussian
Film grain and texture without leaving the graph
- images
- IMAGE
Sometimes you want the image to look less perfect. Photoreal renders and upscaled clean images have a tell - zero grain, zero imperfection - and the fastest way to fake "this came off a film stock" is a touch of gaussian noise. ImageNoiseGaussian from the Allor Plugin adds exactly that: a strength-controlled noise layer you can blend onto an image, restricted to whichever channels you want. It's the node you reach for when you need texture, not when you need cleanup.
It's part of Allor (Nourepide/ComfyUI-Allor), the image-processing pack that keeps RGBA and multi-image batches alive through every node. Gaussian is the flagship of the pack's noise family, which also includes Beta, Binomial and Bytes. If you only remember one, remember this one - strength is a plain "how much noise" dial, which is what most people actually want.
How it works
The noise is sampled from a standard normal distribution, taken as absolute values, normalized to a 0–1 range, multiplied by strength, and then added to the image (subtracted if invert is on). The result is clamped to valid pixel range. Because the noise is normalized before scaling, strength behaves like a sane percentage rather than a raw standard deviation - 0.5 (the default) is a clearly visible grain, 0.1 is a subtle sheen.
The clever part is the channel control. All Allor noise nodes share a channels dropdown with twelve options - rgb, rgba, rg, rb, ra, gb, ga, ba, and the single letters r, g, b, a. Only the selected channels get noise; everything else passes through untouched. That lets you do things like:
rgb- classic grain, alpha clean.aalone - scramble transparency, e.g. to texture the edges of a cutout.ra- grain the red channel and the alpha together, a favorite for aged-photo artifacts.
monochromatic (true/false) is the other big switch: off means each channel gets its own independent noise, which reads as color-speckle; on means one shared noise pattern across channels, which reads as clean monochrome grain. For film look you almost always want monochromatic on.
Inputs and outputs
images(IMAGE) - single frame or batch.strength(FLOAT, default 0.5, step 0.01) - the main dial. How loud the noise is.monochromatic(false/true) - shared noise across channels for clean grain.invert(false/true) - add vs subtract.channels- which channels receive noise.
Output is an IMAGE at the same resolution and channel count, ready to composite, preview, or chain into more Allor nodes.
Installing it
Search "Allor Plugin" in ComfyUI Manager, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Nourepide/ComfyUI-Allor
No models needed. First launch writes a config.json with a daily auto-update - you can change or disable it there.
Where people get burned
The usual overreach is cranking strength past 0.5 and getting TV-static. Start at 0.1–0.2 and let it sit - grain is meant to be felt, not inspected. And if your grain comes out rainbow-speckled when you wanted film grain, you forgot monochromatic on. One more: this node adds noise to all frames in a batch independently, so if you're making an animation, each frame gets fresh noise and the result will shimmer. That's a feature if you want flicker, a bug if you wanted stable texture.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| strength | FLOAT | 0.50 | — |
| monochromatic | COMBO | 2 options: false, true | |
| invert | COMBO | 2 options: false, true | |
| channels | COMBO | 12 options: rgb, rgba, rg, rb, ra, gb, +6 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |