Colour and exposure jump between my AI video clips
Any AI video tool Last checked 2026-10-14
Each generation picks its own lighting, white balance and grade, so clips that should match do not. Fix it by matching on a reference frame in the edit — a one-pass grade per shot — rather than trying to prompt identical lighting.
What you saw
Two shots of the same scene cut together and the second is warmer, brighter or more contrasty than the first.
Skin tone shifts between cuts even though the character and wardrobe held.
The sequence looks fine shot by shot and looks cheap when played end to end.
Upscaled or interpolated clips no longer match the ungraded ones around them.
What it actually means
Lighting is sampled, not specified. 'Golden hour, soft key from the left' narrows the range; it does not fix a colour temperature. Two generations land in different places inside that range.
Models also apply their own implicit grade — contrast curve, saturation, black level — and this varies between models and between versions of the same model. Mixing outputs from two tools in one sequence makes the mismatch worse.
Post-processing compounds it. Upscalers, frame interpolation and codec conversion all shift levels slightly. A clip that matched before the upscale often does not match after.
The eye is far more sensitive to a luminance or white-balance jump at a cut than to almost any other artefact. This is why mismatched grading reads as 'AI slop' even when every individual shot is good.
The fix
Pick one hero shot as the reference for the sequence. Everything else gets matched to it. Do not try to match everything to an imagined ideal.
Grade in the edit, not in the prompt. A shot-match pass — white balance, exposure, contrast, saturation — takes a minute per clip and is deterministic, which prompting is not.
Automate a first pass if you are assembling programmatically. A simple histogram or average-luma match gets most of the way before any manual work:
# quick per-shot normalisation pass
ffmpeg -i shot_02.mp4 -vf "eq=brightness=0.02:saturation=0.96" \
-c:a copy shot_02_matched.mp4
Apply one shared look LUT across every clip at the end. A unified grade hides a surprising amount of residual mismatch, because the eye forgives a consistent stylisation more readily than a drifting neutral.
Keep the whole sequence on one model and one version. Mixing generators within a scene is the fastest way to create a grade problem you cannot fully fix.
Grade after upscaling, never before. Any process that touches pixels should happen before your match pass, or your match will be undone.
How to stop it happening again
Fix the order of operations once and never vary it: generate, upscale, match, grade, assemble, export. Clips that take different routes through the pipeline will not match.
Put the lighting description in a frozen prompt constant shared by every shot in a scene, alongside the character reference. Varying wording varies light.
Use a reference image for lighting as well as identity where the tool supports it — an image carries colour information that a sentence cannot.
Review on a contact sheet. One frame per shot, side by side, exposes grade jumps in seconds that are easy to miss while scrubbing a timeline.
Check on a second screen and on a phone. Mismatches that are subtle on a graded monitor are obvious on a phone at full brightness, which is where most of the audience is.
Related questions
Can I prompt an exact colour temperature?
You can bias toward one, and it will help, but you cannot pin it. Treat prompt lighting as art direction and the edit as the place where matching actually happens.
Should I grade each shot individually or the whole timeline?
Both, in order: match each shot to the reference first, then apply one shared look across the finished sequence.
Why did matching stop working after I upscaled?
Upscalers alter levels and sharpness. Always match after every pixel-touching process, not before.