Skip to content

Grain

Adds animated film grain noise to an image.

Category: Effects Menu path: Effects > Grain

Ports

PortTypeDirectionDescription
inimageRgba16finputInput image
outimageRgba16foutputImage with grain applied

Parameters

ParamTypeDefaultDescription
amountscalar0.3Grain intensity. 0 = no grain, 1 = very heavy grain. Keyframeable.
sizescalar1.0Grain particle size in pixels. 1 = per-pixel grain, higher values produce coarser clumps. Keyframeable.
monochromebooleantrueWhen true, grain is the same on all channels (luminance noise). When false, each RGB channel gets independent noise (chromatic grain).
speedscalar1.0Animation speed. 0 = static grain (same every frame), 1 = normal, higher = faster variation.

Expose Channels

When enabled (E button on node header), adds input ports that override params via edge connections:

PortTypeOverrides
amount_inscalaramount
size_inscalarsize

How It Works

The shader generates hash-based white noise seeded by the quantized pixel position and a time-varying seed derived from the current frame and speed parameter. Noise is added to the unpremultiplied RGB channels (scaled by amount), then repremultiplied with the source alpha. Transparent pixels stay transparent -- grain only appears where the source has content.

When monochrome is enabled, a single noise value is used for all three channels, producing neutral gray grain. When disabled, three independent noise values create color speckle.

The grain pattern changes every frame when speed > 0. The cache key includes comp_frame for animated grain, ensuring each frame produces unique noise.

Usage Examples

Basic: Film-like grain overlay

  1. Add a Grain node as the last effect before Output
  2. Set amount to 0.15 and monochrome to true
  3. Adds a subtle analog film texture to the image

Creative: Heavy chromatic grain

  1. Set monochrome to false for colored noise
  2. Increase amount to 0.5 and size to 2.0
  3. Creates a gritty, lo-fi video aesthetic

Advanced: Grain that fades with brightness

  1. Use a Levels node upstream to isolate dark areas
  2. Feed the result into amount_in via expose channels
  3. Grain appears only in shadows (where film grain is most visible)

Tips

  • Apply grain after all other effects -- it should be the last step before Output
  • Amount values of 0.1-0.2 add subtle texture; above 0.5 is very aggressive
  • Set speed to 0 for static grain (same pattern every frame), useful for stills or freeze frames
  • Grain size above 3-4 starts looking like blocky artifacts rather than film grain
  • Noise -- procedural noise generator (not applied to an image, generates a full texture)
  • Blur -- apply before grain to create a softer base for the grain to sit on
  • ColorCorrect -- adjust contrast/saturation alongside grain for a complete film look

Caddis — professional motion design.