
The three seasons of How India Built Itself on The Making of India have 1,392 shots, and each shot is a picture, a clip and a voice made by a model. Models make mistakes that a viewer notices in a second: people in an empty room, a foreign flag on a government building, a line whose last words are missing. This post covers the checks an episode now passes before release, and the lesson that shaped them: a check is measured, not trusted. The first post covers how the episodes are made.
The tools are all local. The vision model is Qwen3-VL-8B, served by vLLM on one NVIDIA RTX A5000 (24 GB VRAM), six requests at a time. Lettering is read with EasyOCR, and the audio is transcribed with Whisper base.en on the CPU.
1. The gate that flagged half a season
Season 2’s vision gate asked the model to find defects in three frames of each of its 600 clips, in categories such as ANATOMY, FACE, TEXT and ANACHRONISM. It called 300 shots obviously defective, and its verdicts queued 166 re-renders and redraws. Then we looked at what it had flagged, frame by frame:
- 94 of the 175 frames it called obvious had nothing wrong with them.
- Its most frequent category, ANATOMY, was right on 2 of 94 frames. Hands below the frame read as “missing entirely”, drawn mouths as “only two teeth”, anime eyes as “glowing”.
- 232 of its 600 stored verdicts described clips that had already been replaced.
- The real defects were mostly ones it barely named: a picture that did not match its shot (palms and sea in a Delhi street), letterbox bars, and patches left by our own lettering removal.
Going through all 166 shots it had sent back, 21 clip renders and 3 redraws were needed.
| Category | Frames where the model named it and the frame had that kind of fault | Precision |
|---|---|---|
| ARTIFACT | 21 of 30 | 70% |
| ANACHRONISM | 12 of 18 | 67% |
| TEXT | 12 of 44 | 27% |
| FACE | 1 of 9 | 11% |
| ANATOMY | 2 of 94 | 2% |
| MERGE | 0 of 2 | 0% |
Its rules were also upside down. ANATOMY, right 2% of the time, blocked a shot. ANACHRONISM, right 67% of the time, never did.
Since then, before a check’s verdicts drive any work, someone looks at a sample of what it flagged and what it passed, and reports its precision per category, not its count. That happens again whenever the question, the model or the input changes.
2. Ask narrow questions, and keep the answer out of the question
The check that replaced it asks narrow questions with short, fixed answers, about three frames of each clip, at 12%, 50% and 88% of its length:
- MATCH: given the plan and the line, is this the planned picture? The answer is one of MATCH, SUBJECT (the main subject differs), PERSON (someone the plan does not name is the subject), COUNT or DETAIL.
- SPEAK: is a face talking? A speaker’s shot must show one, and a narration shot must not.
A shot is flagged when two of its three frames agree. On Season 2 Episode 1, where we knew by eye that three shots had people the plan does not have, it caught all 3 with no false alarms. The old defect question, on the same frames, caught 1 of 3 and raised 3 false alarms.
The hard lesson came when we added a third question, SYMBOLS: every flag, emblem, insignia or banknote in the frame, and its country. It taught us what not to tell the model. When a shot’s plan named the Indian flag, the model answered “Indian national flag” on 12 of 12 frames that had no flag at all. With the flag taken out of the plan and the place given as a New Delhi government office block, it still called a plain red flag the Indian tricolour. Asked only “what colours are the flags in this frame”, with no plan and no place, it answered “Red” on 5 of 6 frames of the red flag, named the tricolour’s colours on 6 of 6 frames that fly it, and answered NONE on 6 of 6 frames with no flag.
So our checks describe first and judge in code. The model says what it sees, and the comparison with the plan happens outside the model.
3. What reached finished episodes anyway
On 15 September, watching finished Season 3 episodes before release, we found three kinds of defect that every check had passed:
- foreign flags: an American flag on a New Delhi government building in Episode 6, and a plain red flag on Shastri Bhavan in Episode 1;
- people in scenery shots whose plan has nobody in them;
- no speaker named on screen in any Season 3 episode, because the cards file had been written with sources only.
That evening a sheet of frames from a new check showed a fourth: letterbox bars, 10 to 80 rows deep, on shots in seven episodes.
None of those episodes had been released. The same day, each defect got a question in the loop, measured on the case that had slipped through:
- FLAGS asks only what colours the flags are, for every shot set in India, and a flag that is not saffron and green is flagged. Its first pass over all 368 stills set in India flagged 10. Seven were real: plain red flags on the Patent Office and near the RBI tower, a red pennant, a red-and-white flag behind the Prime Minister, a green-and-white flag in the Supreme Court, a red-and-white flag at a bench, and an American flag. Three were false: a blue curtain with a gold tassel, a red-and-white barrier pole, and green and red wall panels in the Rajya Sabha. It read the tricolour correctly on all 11 stills that fly it.
- SYMBOLS at full resolution caught 4 of 4 known wrong flags, with no false alarms in 40 clean stills, and passed a correct US flag over a courthouse in Maryland. At 768 pixels wide it had missed one.
- PEOPLE reads the list of people the model already gives with each MATCH answer. The verdict line had been passing people its own list named: of 259 scenery stills whose plan names nobody, 80 listed someone, and 30 of those had passed. Checked by eye, 11 of 12 had people the plan does not name. The twelfth was a bird, and birds, animals, statues and pictures no longer count.
- CARD: every speaker’s first line needs a checked name and post, and the vision model must read that name on the card in the finished cut.
- Bars: every clip is now measured, including its first and last three frames, because a bar on only part of a clip slipped past a 12-frame sample twice.
4. Every second of the finished cut
The clip check reads raw clips, before the subtitles, name cards, crops and fills exist. So the last check reads what a viewer sees: one frame for every second of the finished cut, at full resolution, placed in its shot, plus two frames inside each name card. For a two-minute episode that is about 450 to 480 questions to the vision model. One run took 9.1 minutes, while the vision server was shared with two other checks. Everything else in the loop together takes about four minutes an episode.
It also asks whether each narration shot fits what is heard over it. The model first describes three frames of the shot with no script, and a text-only question then gets those descriptions and the words heard in the cut, and answers YES, LOOSE or NO. Measured on one withdrawn episode:
- with each shot’s own words, 11 of 12 shots fit, and the twelfth was a false alarm;
- with another episode’s lines about water on the Moon, it caught 7 of 12 mismatches;
- with lines from other shots of the same episode, it caught 4 of 12;
- a stricter wording caught all 12 Moon swaps, but called 4 of the 12 true pairs unrelated.
That is a partial catch. Its NO answers go on a review list that a person looks at, and they do not stop the episode.
5. The audio
Whisper transcribes each shot’s stretch of the finished cut and compares it with the written line. A shot is flagged when the match score is under 0.55, or when none of the line’s last three words is heard. The first version transcribed each whole episode at once, and Whisper’s long-form chunking dropped audio: it “lost” 27 of 60 lines that were there. So each shot is transcribed on its own.
A score is not a transcript. Kokoro read “Rs” as the letters R S in 25 Season 3 lines, 44 amounts in all, and the scorer passed every one at 1.00, because it normalises both sides before comparing. Only the transcripts showed it: “RS 18,300 crore”, “Arrest 10,720 crore”. It was fixed before Season 3 was released, and for any line with an abbreviation, a symbol or a unit, we now read the transcript.
6. Test the check on an episode broken on purpose
Before an automated check is trusted, it runs on a copy of a real episode broken on purpose, and on the real cut:
- The audio check: one line’s ending muted and another line muted whole. Both were flagged; the real cut had no flags.
- The held-picture check: a four-second freeze, a two-second freeze and one second of black added to three shots. The four-second freeze and the black were flagged, the two-second freeze was recorded and passed as designed, and the real cut had no flags.
7. What no check measured
- Lip sync. On 17 September, working on a new pilot, we rendered the same shot twice with two different voice tracks and got identical clips, to the pixel. The video model had been regenerating the audio stream from noise, because a missing audio mask defaults to “regenerate everything”, so the mouths in our clips moved because the prompt said the person was speaking, not in time with the voice. Holding the audio with a zero mask fixed it: in the pilot, a character’s mouth now closes where her own line ends. The episode graph now holds the voice for every speaking shot, for renders from that day on. The test is cheap: render one shot with two different voices and compare the frames.
- Held pictures. When a narrated line runs longer than its clip, the cut keeps every word and holds the last frame. Across the 36 Season 3 episodes there are 59 planned holds; 45 last a second or more, and the longest is 6.06 seconds, 30% of its shot. The check measures every one. How long a hold may run before the shot needs a shorter line or a second picture is still to be decided.
- A person watching. Every defect in section 3 was found by a person looking, at a finished episode or at a sheet of its frames. The checks exist so that a person finds fewer, and each find becomes a new question in the loop, measured on the case that slipped through, the same day.
What we would tell anyone building this
- Measure a check’s precision per category, by eye, on what it flagged and on what it passed, before its verdicts drive any work.
- Ask narrow questions with one-word answers, and never put the expected answer in the prompt.
- Have the model describe, and do the judging in code.
- Test every check on a copy you broke on purpose.
- Read transcripts and frames, not scores.
- A check someone runs by hand is not part of the pipeline. Season 2’s still screen was a script run by hand, and it was left out when the loop moved on to Season 3.
- Keep a person watching.
Every check here ran on our own machines. If you want open vision, speech and video models on dedicated hardware for work like this, OptraCloud is a GPU cloud in India and the UAE.






