Why does AI colorization flicker between frames?
Because most colorizers treat a video as a stack of unrelated photos. Each frame is coloured on its own, and small differences in the model's guess make a shirt drift from blue to grey and back. The eye reads that drift as shimmering. Fixing it means constraining colour across time, not improving any single frame.
What flicker actually is
A video frame can be split into luminance, which is brightness detail, and chrominance, which is colour. Colorization only invents chrominance — luminance already exists in the black-and-white source. Flicker is therefore almost entirely a chrominance problem: the brightness is stable, the colour is not.
That distinction is the whole solution. If you smooth the whole frame across time you get motion blur and mush. If you smooth only chrominance and keep luminance from the original frame, colour settles down while edges stay sharp.
How we measure it
"No flicker" is a claim, not a number, so here is the number. We measure frame-to-frame chrominance deviation on a fixed test clip:
| Condition | Flicker |
|---|---|
| Frame-by-frame colorization, no temporal handling | 7.63 |
| Naturally shot colour footage (the reference) | 3.81 |
| Our pipeline, chrominance smoothed over five frames | 2.83 |
Lower is steadier. Landing below the natural-footage reference is not a trick: real film has genuine colour variation from lighting and camera noise, and a smoothed synthetic result has less of it.
The part everyone forgets: scene cuts
Averaging colour across neighbouring frames breaks at a hard cut, because the previous shot's colour bleeds into the first frames of the new one. On a cut from foliage to a face, the face arrives green.
The fix is to detect cuts and reset the smoothing window at each one. We detect them from luminance difference between consecutive frames, with an adaptive threshold rather than a fixed one — measured on our material, real cuts scored 63 and 85 while the fastest in-shot motion scored 37, against a median of about 17. A false positive costs only slightly weaker smoothing on two frames, so the threshold is deliberately sensitive.
If you are colorizing yourself
Running an open-source model locally? The same three rules apply:
- Smooth chrominance only, never the full frame.
- Take luminance from the original, not from the model output.
- Reset the smoothing window on scene cuts.
If you would rather not build that, our colorizer does it and keeps your original audio. The five-second preview is free and needs no account.
