Stop Asking a Vision Model to Check Your Own Renders

SF Scott Farrell • November 12, 2026 • scott@leverageai.com.au • LinkedIn

Your vision model approved a broken render. A string comparison caught it.

Here's the setup. An automated pipeline generates text-heavy visuals: quote cards, report pages, slides. To QA them, the obvious move is to screenshot the output and ask a multimodal model, "is this good?"

In one build, a stray negative margin pushed the attribution line on top of the quote. The vision model read the overlapping text perfectly, attribution and all, and flagged nothing. It reads mangled text too well to notice that a human couldn't.

A dumb deterministic check, comparing the words on the render against the words we meant to put there, dropped to 63% coverage. Caught it instantly.

The mistake wasn't a weak model. It was asking for an opinion when we already held the truth. We wrote the source text and we owned the markup. Handing the model a picture turned an exact verification problem into a vibe check.

The fix is to give the model the structure instead of the pixels. Render the asset in a real browser, pull the resolved DOM or accessibility tree, and strip the wrapper soup and styling clutter. What's left is a compact skeleton: the words, their order, their roles (headline, quote, byline), and the emphasis that survived rendering.

On that skeleton you ask two cheap, exact questions before any model gets a say. Did every intended word survive, in order? Did anything foreign creep in, or get clipped out? Only after a card passes do you let a model judge the part it's actually good at: whether the thing is worth saying.

The pixels are the most faithful representation of a visual, but they're often the worst one to reason over. Faithfulness is not usefulness.

This has limits. A skeleton won't tell you the colours clash or the photo is ugly. But for text-bearing assets where you already know what should be there, a smarter model is worse engineering than a string match. It's also why I'll take a generation path whose output I can flatten back and verify over one that's slightly prettier and opaque. When something runs a thousand times unattended, you need the version you can check.

If your pipeline produces or judges visuals, find the one place you hand a model an image of your own output. Flatten one render and check its words against the source.

Tell me what it caught. I read every reply.


Discover more from Leverage AI for your business

Subscribe to get the latest posts sent to your email.

[rpnnrecommend total="5" thumbnails="false" class="recommendedlist" ]

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2026 Leverage AI, Scott Farrell. All rights reserved. This content is made available on a limited, revocable, read-only basis only. No licence or right is granted to copy, reproduce, republish, scrape, store, adapt, summarise, index, embed, or use this content to create derivative works, work product, deliverables, methodologies, training materials, prompts, templates, software, services, research, or commercial outputs, whether by humans or machines, without prior written permission. This restriction includes internal business use, client work, consulting, advisory, implementation, and any use in or for artificial intelligence, machine learning, data extraction, retrieval, evaluation, fine-tuning, or knowledge-base construction.