Nodes/SDXL Auto Prompter/APNext Noise FX
ComfyUI Node

APNext Noise FX

Add film grain to kill the plastic digital look

By dagthomas·Created 3 years ago·Updated 13 days ago· 283
APNext Noise FX
  • images
  • image
intensity0.50
noise_typemonochrome
blend_modeoverlay
grain_size1.0
color_count3
seed0

A little grain covers a lot of sins. AI images have a tell - surfaces are too clean, skin is too smooth, everything looks slightly plastic. A layer of film grain breaks that up, and it's one of the highest-value-for-effort passes you can add to a render. APNext Noise FX overlays monochrome noise, colored noise, or proper film grain on a finished image, with control over how coarse it is and how it blends.

Image in, image out, after VAE decode. No model, no API key.

How it works

The node generates a noise layer and composites it over your image using the chosen blend_mode. noise_type picks the flavor: monochrome is neutral grey grain (the safest, most film-like), colored adds chromatic speckle, and film_grain is tuned to mimic real emulsion. grain_size sets how coarse the grain is - fine grain reads as a high-quality film stock, chunky grain as pushed high-ISO. intensity is how visible it all is, and seed makes a given grain pattern reproducible.

blend_mode decides how the grain interacts with the image: overlay (the default) adds grain in shadows and highlights while preserving midtone contrast, soft_light is gentler, multiply darkens, screen lightens. Overlay is the right default for a film look.

Inputs and outputs that matter

  • images - your decoded image.
  • intensity (0–2, default 0.5) - how strong the grain is. Subtle is the goal; the 0.5 default is already visible up close.
  • noise_type - monochrome or film_grain for realism, colored for a noisier digital-sensor look.
  • grain_size (0.1–5, default 1) - fine to coarse. Match it to your intended stock/ISO.
  • blend_mode - overlay for the standard film overlay; soft_light if overlay is too contrasty.
  • seed - lock a grain pattern (useful when grain-matching frames in a sequence).

The single output is image.

Installing it

ComfyUI Manager: search comfyui_dagthomas, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/dagthomas/comfyui_dagthomas
cd comfyui_dagthomas
pip install -r requirements.txt

Runs on the pack's image dependencies. No API key, no downloads.

Common issues

Grain should be felt, not seen - if it's obvious at normal viewing distance, it's too strong and now looks like sensor noise rather than film. Keep intensity low and judge it at 100% zoom, remembering it'll read as even subtler once the image is downscaled for the web. Coarse grain_size on a small image looks like dirt; scale grain to your output resolution.

Add grain last, after color grading, bloom, and halation, so it sits on the final image the way real grain sits on a print - grading grain along with the colors underneath looks off. And if you're going for maximum realism, monochrome or film_grain beats colored; the colored option is better for a deliberately noisy, gritty, digital aesthetic than for faking analog film.

Categorycomfyui_dagthomas/APNext FX

Inputs (7)

NameTypeDefaultDescription
imagesIMAGE
intensityFLOAT0.500–2
noise_typeCOMBOmonochrome3 options: monochrome, colored, film_grain
blend_modeCOMBOoverlay4 options: overlay, multiply, screen, soft_light
grain_sizeFLOAT1.00.1–5
color_countINT32–8
seedINT00–18446744073709550000

Outputs (1)

NameTypeDescription
imageIMAGE