πͺ Film Grain
Kill the too-clean AI look
- image
- image
AI images have a tell: they're too clean. Perfectly smooth gradients, no sensor noise, no texture - the kind of surface no real camera produces. This node adds it back. Drop it near the end of a workflow and it overlays film grain (or plain Gaussian noise) onto your image, which is one of the cheapest, most reliable ways to nudge a render from "obviously generated" toward "photographed."
It's a small node with one real decision - grain or noise - and one dial. That's the right amount of surface for the job. Grain is a finishing touch, not a workflow.
How it works
It generates a noise layer and blends it into your pixel image. The mode switch picks the character of that layer:
- Film grain - the organic, photographic option. It's weighted toward the way real film responds, so it sits more naturally in midtones and reads as texture rather than static.
- Gaussian noise - flat, uniform random noise across the frame. Harsher and more digital; useful when you specifically want a grungy or degraded look, or as a base for further processing.
The weight (0-100) is just intensity. It's a straight pixel operation - no model, no seed exposed, instant.
The inputs and outputs that matter
One image in, one image out, and really only two things to set:
mode-Film grainfor realism,Gaussian noisefor a rougher/digital look.weight- how strong. Subtlety wins here; a little grain sells realism, a lot of it just looks noisy. Start low (10-20) and creep up.
How to install it
ComfyUI Manager: search SDVN_Comfy_node, install, restart. Or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/StableDiffusionVN/SDVN_Comfy_node
then pip install -r custom_nodes/SDVN_Comfy_node/requirements.txt from your ComfyUI root, and restart. It appears under SDVN β Image. No models or keys - pure image processing.
Common issues & troubleshooting
It looks like static, not film. You're either on Gaussian noise when you wanted Film grain, or the weight is too high. Film grain at a modest weight reads as texture; crank it and any mode turns to snow.
Grain disappears after upscaling. If you add grain and then upscale, the upscaler can smooth it right back out - and a model upscaler may even hallucinate over it. Add grain last, after any upscale pass, so it survives to the final image.
The whole point is undone by JPEG. Heavy compression eats fine grain. If your grain looks great in the preview but vanishes in the exported file, that's the compression, not the node - save at higher quality or as PNG.
Want grain plus a full color grade? The Image Adjust node in this pack has its own light grain control bundled with exposure/contrast/temp. This dedicated node gives you the mode choice and a proper weight, so use it when grain is the actual goal.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| mode | COMBO | 2 options: Film grain, Gaussian noise | |
| weight | INT | 00β100 | β |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |