| name | grain-overlay |
| description | motion-graphic primitive — uniform noise texture overlaid with multiply blend mode at low opacity. signals "printed" / "shot on film" / "riso" feel. critical anti-AI visual cue across editorial and illustration packs. |
grain-overlay
Purpose
Apply a subtle noise texture across the entire frame (or a specific layer) to give a printed / risograph / film-grain feel. The key anti-AI tell: AI-generated motion graphics often have perfectly clean fills; grain breaks that perfection.
Params
{
"opacity": 0.08,
"blend_mode": "multiply",
"texture_resolution": [1920, 1920],
"tile": false,
"per_shape": false,
"seed": "static",
"intensity_blend_with_pack": true
}
Behaviour
- Render a PNG noise texture at
texture_resolution.
- Overlay on top of all content (or per shape if
per_shape: true) with blend_mode and opacity.
- Use a static seed — moving grain looks like a TV filter, not film grain.
Style pack overrides
- SP-C (editorial-cinematic) — opacity 0.05, multiply, full-canvas overlay.
- SP-G (riso-illustration) — opacity 0.12, multiply, per-shape (more aggressive printed feel).
Quality Checks
- Opacity ≤ 0.15 (more than that looks dirty).
- Static seed (not per-frame).
- Multiply blend mode (not normal — that would just be a gray overlay).
Failure Modes
- Grain looks like TV noise. Per-frame seed; switch to static.
- Grain too aggressive. Reduce opacity to 0.05.
- Grain invisible. Wrong blend mode; use multiply.