A pipeline with an agent
Lesson 17 of 22 in the course “AI Video, No Flops”. Free, with animations and a quiz.
An ad for $2,000
In June 2025, an ad for the prediction platform Kalshi aired during the NBA Finals. One person made it, AI filmmaker PJ Accetturo, in two to three days. Google’s Veo 3 generated the video, and by his account the budget was about $2,000. Media wrote that this was roughly 95% cheaper than a normal shoot for such an ad. That doesn’t mean film crews are no longer needed. But it’s a good example of what a working AI pipeline looks like in a real project rather than a demo. Let’s break down exactly how it was built and what Mira can take from it.
The bin is normal
The most useful number in this story isn’t the price but the waste. The creator said the 15 clips that made it into the ad took roughly 300–400 generations. So about one shot in 20–27 made it into the ad. That isn’t failure; it’s normal work with a generative model: every generation is a roll of the dice, and you pick the best. Two conclusions follow. First: budget not for the number of shots in the video but for the number of attempts. Second: drafts must be cheap, or twenty attempts per shot will ruin you. That’s what the next lesson is about.
How it was built
The pipeline was simple. First the person wrote a rough script: what happens in each shot. Then he asked Gemini to turn each shot into a detailed prompt for Veo: shot, camera, light, action, sound. Then hundreds of generations in Google Flow, picking the 15 best clips, and a normal edit. Notice where the agent is and where the human is. The model took the boring part: rewriting an idea into a long technical prompt by consistent rules. The person kept the idea, the selection and the edit. That’s exactly how Mira will work with her agent, except instead of Gemini and manual Flow she has Claude with Higgsfield connected.
Small batches
One detail from this story is especially useful. The creator asked Gemini to write prompts five shots at a time because, in his words, quality dropped with more. That’s typical language-model behaviour: ask for 30 prompts at once and they get shorter and alike, and brief details get lost toward the end. Five shots at a time give detailed prompts, and you can eyeball the batch before running it, while the credits are still unspent. Mira’s rule: the agent writes prompts in batches of 5 shots, shows them, and only then runs the generation.
Mira’s pipeline
Let’s put it all into one six-step conveyor. Idea and script are Mira’s alone: why the video exists and what the viewer should feel. She makes the storyboard with the agent: it suggests shots and camera, she corrects. The agent writes prompts in batches of five, using the character folder and the rules from earlier levels. The agent runs drafts at 480p–720p within the cap. Picking takes is Mira’s again; she looks at the grid and marks the best. Final render and edit are shared: the agent renders the chosen shots at full resolution, Mira assembles the video. Notice the person stands at the start, in the middle and at the end.
The agent checks itself
An agent can not only generate but also look at the result itself. Give it a short checklist from earlier levels: five fingers not fused, the face matches the character passport, feet don’t slide on the floor. If a draft fails, the agent reruns it, but not forever. Set a hard limit: two reruns per shot at most, then the agent stops and asks you. Why? If a shot breaks the same way three times in a row, the problem isn’t luck but the approach. It needs a region edit, motion control with a real reference, or different staging, and that’s a human decision.
Order in your files
Hundreds of generations quickly turn into chaos: the client says “I liked the one where she laughs”, and you have forty files named video(17).mp4. So from day one the agent files everything into four folders. /refs holds the character sheet, passport and product photos. /prompts keeps each shot’s prompt so a good one can be repeated. /drafts has drafts with clear names: shot number, version, resolution, for example shot02_v3_720p.mp4. /final has only the chosen shots at full resolution. The agent keeps this order itself, and you find the right take in a second.
Check yourself
- 15 clips took 300–400 generations. What does that mean for Mira’s planning?
Correct answer: Budget by the number of attempts and keep drafts cheap. Waste is a normal part of working with a generative model. You build it into the budget up front. - Mira asked the agent for prompts for 30 shots at once. They came out short and alike. What should she change?
Correct answer: Ask in batches of 5 shots and check each batch. Small batches keep brief details, and checking before running saves credits. - The agent is rerunning shot 3 for the sixth time: the fingers fuse again. Which rule would have helped?
Correct answer: Two reruns at most, then stop and ask Mira. A repeating error points to a bad approach. A person decides on a different one. - The client writes: “Bring back the version where she laughs”. Mira has 40 files named video(…).mp4. What would have saved her?
Correct answer: Folders and names like shot02_v3_720p, plus saved prompts. Clear names and saved prompts let you find and repeat any take.