A vision model as a frame checker: what it caught and what it let through
Video
Image models write fake words on signs, add watermarks and give people too many fingers. A bad frame found after the render costs a re-render; found before, it costs one redraw. So every picture Studio draws is shown to a vision model first.
How the check works
Each frame is scaled down to a JPEG of at most 1,024 pixels on its long side and sent with one instruction: answer only with JSON, ok true or false plus a list of problems, and say false for any written text, letters, numbers, watermark or logo, or for deformed hands, faces or bodies, or a broken image. A rejected frame is drawn again with a new seed, up to a limit you set. If no draw passes, the job stops with the reasons rather than publish a broken frame. A frame that is a flat colour, or the black square some safety filters return, is rejected before the model is even asked.
The test
We used the same local model that writes our scripts, served by vLLM on our own machine, and gave it four pictures that our image model had made earlier: a cup of coffee on a wooden table, an apple on a white background, a person on the phone in front of a bookshelf, and the coffee picture with "SALE 50% OFF" written across it.
- The three clean pictures passed, including the bookshelf, whose book spines we had expected to trigger a false alarm.
- The picture with the slogan was rejected, with the reason "written text".
- In the full loop, the slogan frame came first, was rejected, and the redraw passed: two draws for that scene.
Each check took 3 to 14 seconds, on a model that was busy with other work at the time.
What it does not do
A vision model is a second pair of eyes, not a guarantee. It can miss a small artefact, and a strict instruction will sometimes reject a picture you would have kept, which costs a redraw rather than a bad video. Four pictures are a check of the wiring, not a statistic. Watch your first videos yourself, and tighten or loosen the redraw limit with what you see.
Studio runs this check with any model your server exposes with image input; leave the vision setting empty and the check is off.