Skip to content

Film Look for AI Video: Grain, Vignette and Grade

Why AI clips look too clean, the three-part film look that fixes it, the ffmpeg command, what grain costs in file size, and doing it in CapCut or Resolve.

Updated Oct 14, 2026

AI clips look too clean. The model leaves out the small things a real camera adds: sensor noise, dark corners, grain that moves. So the picture looks glassy and flat, and viewers spot it as AI.

A grade, a vignette and per-frame grain take most of that away. Here is the whole look in one command:

ffmpeg -i clip.mp4 -vf "eq=contrast=1.07:saturation=1.10,vignette=PI/4.5,noise=c0s=14:c0f=t+u" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -movflags +faststart -c:a copy clip-film.mp4

Three filters run in order: eq for contrast and saturation, vignette for the corners, and noise for grain. Each one is explained below, with a tuner for trying values on your own clip.

Before and after on our own clip

Both clips below are ours, made with Seedance. The left one is the model's output. The right one is the same clip after the command above.

Original
Film look

The change is small on purpose. Heavy grain reads as a bad phone video, not film. You want viewers to feel the texture, not see it.

Step 1: raise contrast and saturation

eq=contrast=1.07:saturation=1.10

Both values are multipliers, and 1.00 leaves the frame alone. Stay between 1.05 and 1.10 for contrast, and 1.05 and 1.15 for saturation. Past that, skin turns orange and shadow detail blocks up.

Test two shots before you lock a number in: a face in daylight, and a dark scene. The dark scene shows the damage first.

Step 2: darken the corners

vignette=PI/4.5

The angle is a lens angle in radians, and the bigger the angle, the darker the corners. PI/5 is the default and barely shows, PI/4 is a clear vignette, and PI/3 is heavy, best saved for flashbacks and title cards.

Keep dialogue shots at PI/4.5 or weaker. Faces near the frame edge lose detail fast.

Step 3: add grain that moves

noise=c0s=14:c0f=t+u

c0s sets the strength on the luma channel, which keeps the grain grey, the way film looks. If you use the all-channel form instead (alls=14), the colour channels get noise too, and it reads as a phone camera in low light.

c0f=t+u changes the noise every frame. Leave the flag off and ffmpeg averages the noise over time. That turns it into a faint moving pattern, not grain.

For strength: 8 is subtle, 14 is the pair above, 24 is heavy. One catch: this grain is one pixel wide. It looks finer on a 1080×1920 export than on a 540×960 one, so pick your number at your export size.

Try the numbers on your own clip

The tuner below runs in your browser. Load a frame or a short clip, move the sliders, then copy the command it builds. Nothing is uploaded.

Live preview — close, not exact. The pair above is a real render.

c0s=14
contrast=1.07
saturation=1.10
vignette=PI/4.5

Previewing our own Seedance clip. Load yours to check the look on it — the file never leaves your browser.

shell
ffmpeg -i clip.mp4 -vf "eq=contrast=1.07:saturation=1.10,vignette=PI/4.5,noise=c0s=14:c0f=t+u" -c:v libx264 -crf 18 -preset slow -pix_fmt yuv420p -movflags +faststart -c:a copy out.mp4

The preview is an approximation. It uses the same numbers, but browser filters are not ffmpeg. The pair at the top is the real render.

What grain costs in file size

Grain is random detail, and encoders spend bits on random detail. These are our own numbers, from a 5-second 540×960 clip:

Encode settingFile sizeGrain
-crf 1815 MBkeeps all of it
-crf 231.7 MBvisible but softer
-crf 23 -tune grain8 MBkeeps most of it

Takeaway: a grainy master is a big file. Export once at -crf 18 to -crf 20, then let the platform compress for playback. Re-encode a grainy clip twice and the grain turns to mush.

The same look in CapCut and Resolve

If you don't use ffmpeg:

  • CapCut: add grain from Effects → Video effects → Texture, or drop in a "4K film grain" overlay. Vignette sits in the Adjust menu. Raise contrast and saturation in that same menu.
  • DaVinci Resolve: drop Film Look Creator (Effects → Resolve FX → Film Emulation) onto a node. It bundles grain, vignette and halation, with 65mm and 35mm presets. Balance the shot first, or the effect fights your grade.

Whatever tool you pick, choose the grain amount while the clip plays. A still frame hides how much it flickers.

Where the look does not help

Grain changes texture, not the picture. These problems stay:

  • A face that changes between shots needs reference images, not noise. See character consistency.
  • Hands, crowds and physics errors stay wrong.
  • A flat or badly lit frame stays flat. Grain just adds texture to a flat frame.

Next

The look lands in the edit, so editing and captions is the next step. The demo clip came from our Seedance thriller prompts. If you run models on your own machine, the ComfyUI workflows guide shows where ffmpeg fits after generation.

Sources

  1. mp.weixin.qq.com/s/wctLBLN5GiOHtgPg8cvVhg
  2. ffmpeg.org/ffmpeg-filters.html#eq
  3. ffmpeg.org/ffmpeg-filters.html#vignette
  4. ffmpeg.org/ffmpeg-filters.html#noise
  5. trac.ffmpeg.org/wiki/Encode/H.264
  6. www.capcut.com/resource/film-grain
  7. www.capcut.com/resource/how-film-grain-overlays-for-video
  8. photography.tutsplus.com/tutorials/how-to-quickly-add-vignette-effects-in-capcut--cms-108824
  9. blog.frame.io/2024/08/15/what-is-resolves-new-film-look-creator-plugin
  10. www.blackmagicdesign.com/products/davinciresolve