Coffee moments
An AI Film created with Invideo’s Agent Two
HOW I MADE THIS
The film started with photographs I took myself: café mornings from my own archive, shot over several years and stared at for longer. I grew the world out of them in Midjourney — variations on my own frames, and new scenes built in the same place and the same light. GPT Image 2 upscaled the results into the production plates. Photography gives you something generation almost never does, which is evidence: a man in a specific light. Even where the model composed him, he grew out of a place and a light that were actually there. So we made a rule on the first day. When the treatment and the photograph disagreed, the photograph won. We rewrote the treatment around what the frames insisted on.
My own photo
The film is twenty-four shots, about 162 seconds plus a tail. One café morning, watched by someone nobody notices. Every shot began as one of those plates, animated in Seedance 2.5 — image to video, the still as first frame, 1080p, one continuous take. You direct these models roughly the way you direct actors: named actions, an amount of breath, a decision about where the drift lives.
I ran the production inside Invideo as a small AI crew with Agent Two. Two agents in one project — an AI film director and an AI DP — trading messages the way a real set does. Shot sheets, take reports, duration pushbacks, the occasional argument. I made every call. Every rule that follows came out of that room. Everything starts by setting up the agents, describing what they will do, and giving them a proper brief. I realized that the brief is crucial for the work.
AI Generated variation
The first rule for our Director and AI DP was camera movement. Early takes arrived with slow push-ins, and a push-in is a decision to be noticed. This is an observational film; the camera doesn't have opinions about anyone. So we banned the dolly, the push-in and the orbit, and allowed only a handheld micro-wobble. There is one exception, in the opening — a slow dolly through pre-dawn neon, added late because I needed a surface smooth enough to motion-track a title onto.
The second rule was silence. Seedance invents sound confidently and badly. I asked for indistinct murmur once and got fluent French. So everything generated mute, with three exceptions: the conversation shots rolled with real, intelligible dialogue, purely so the lips would sync, and I stripped the voices in post. The whole soundtrack was built afterwards on the assembled cut. Room tone, murmur, a steam wand landing on a cut, a last cup set down, then nothing. There is no music anywhere in the film.
The third rule was no vapor. Espresso machines prime the model to hallucinate steam, and it rose off machines that weren't switched on, off a pen, out of an empty cup. The lesson worth passing on is that when a model keeps hallucinating an element, you fix the source still rather than the prompt. One plate kept seeding smoke no matter what we wrote into the text. I removed the smoke from the photograph myself, and the shot rolled clean on the next take.
The AI Director created a treatment for the AI DP to fully understand how to generate the shots, all based on my brief and shots.
Agent Two's first job was to turn my treatment into a production system — a full shot sheet with a risk rating on every frame. Its second was to disagree with me. It accepted five of the DP's requests for shorter durations, all of them grounded in measured frame stability, and the film landed at roughly 162 seconds instead of the 176 I had written. It was right.
The most useful thing it did was decline to believe anyone, including its own DP. Twice the DP reported the hardest shot as locked. Twice Agent Two refused to trust the description, ran its own frame-difference audits, measured the static spans in pixels and demonstrated that the takes were frozen photographs. Then it rewrote the generation recipe itself — motion first, restraints last — and that recipe became the project's standing rule. Trust nothing you haven't measured became house style because an agent enforced it.
Thanks to Invideo for supporting the creation of this mood film.