AI vision testing · local + cloud · September 24–29, 2026
What we're testing, how we're testing it, and what we've found: running local and cloud vision models against real product photos and video, blind, to see which ones can be trusted with what.
The whole test on one chart: 14 models, what job each one did, and how it did. The rounds below have the details.
The three Gemini rows below (3.1 Pro, 3 Flash, 3.8 Flash) are three different model versions tested at different points in the trial, not a duplicate.
Scroll sideways for all 14 models →
This chart is easiest to read on a larger screen.
| Model | Job / runs | Design match, round 1 (first guess) | Names the object up close | Reads on-screen text | Spots the same product | Real catalog test | Cost | In one line |
|---|---|---|---|---|---|---|---|---|
| Qwen 27B | Reader · Local | 9 of 10 | No | Yes | n/a | Rescued by matching | Free | Best at picking the design, but never said "cooler" |
| Qwen 8B | Reader · Local | 5 of 10 | No | Yes | n/a | Rescued by matching | Free | Decent, same object blind spot |
| Gemini 3.1 Pro | Reader · Cloud | not tested | Hedged | Yes | n/a | Rescued by matching | $0.42 run* | Safer, not smarter; caught a brand name on one clip |
| Gemini 3 Flash | Reader · Cloud | not tested | Hedged | Yes | n/a | not tested | $0.42 run* | Same hedging as Pro |
| Gemini 3.8 Flash | Reader · Cloud | not tested | Best so far | Yes | n/a | not tested | $0.066 run | Correctly named the object on 3 of 4 hardest clips |
| Model live in prod. today (frame-sampled test) | Reader · Cloud | not tested | No, plus one wrong scene | One misread | n/a | Rescued by matching | $0.267 run | Not clearly worse or better than the pack, in this mode |
| Same model, its real prod. pattern | Reader (live today) · Cloud | not tested | Worst tested, incl. the easiest clip | 2 misreads | n/a | not tested this way | $0.045 run | Cheapest, but weakest reader tested in its real, actual form |
| Qwen3.8 27B (free) | Reader · Cloud | not tested | Partial run | Partial run | n/a | not tested | Free tier | Rate-limited on video, stills only partly done |
| CLIP | Matcher · Local | not tested | n/a | n/a | Yes, cleanest | n/a | Free | Best at "same product?" |
| Apple Vision | Matcher · Local (Mac only) | 0 of 10 | n/a | n/a | Yes | n/a | Free | Good at grouping, weak at picking the design; 3 of 3 on photos |
| DINOv2 | Matcher · Local | not tested | n/a | n/a | Yes, noisier than first reported | n/a | Free | Right answer, messier at the edges (see correction) |
| SigLIP | Matcher · Local | 2 of 10 | n/a | n/a | not tested | n/a | Free | Middle of the pack |
| Jev | Judge · Cloud | n/a | n/a | n/a | n/a | 24 of 24, top pick | ~$0.003 total | Right by its top pick every time; see disclosure below |
| Codex | Judge · Cloud | n/a | n/a | n/a | n/a | 24 of 24 | subscription | Right every time, on choices with easy-to-tell-apart options |
| Claude | Judge · — | n/a | n/a | n/a | n/a | 24 of 24 | — | Right every time |
Good Mixed Failed not tested n/a = not that model's job. *One bill covered the whole cloud round for both Gemini models.
Can an AI model, local or in the cloud, look at product photos and videos and reliably say what's in them (the product, the design, the on-screen text) without a person having already told it? The real question isn't local versus cloud: it's finding whichever model gets this most accurate. Testing local models first is part of that search, not the whole point of it. This matters for two things: reading incoming footage faster, and eventually sorting or matching footage on its own.
The practical goal: have a model read incoming photos and video and tag what's actually in each clip, and roughly where in the clip, so that tagging can drive things downstream, like picking the right footage automatically when generating video.
Vision model is the umbrella term for everything on this page. Under that umbrella, three different kinds of tool are being tested, because they do three different jobs.
An LLM that also takes images and video as input. Looks at footage and writes a description in words.
Turns a picture into a list of numbers and compares those numbers to another picture's. No language model, no text in or out. It can only say how visually alike two images are.
A third job, Judge, shows up in the catalog-matching rounds below: given a reader's written description, decide which real product it matches. Text only, never sees the image.
| Round | Photos | Videos | Reference set |
|---|---|---|---|
| Round 1 · Sept 24 | 3 catalog stills | 2 | 75 anonymous reference images |
| Round 2 · Sept 26–27 | n/a | 13, pulled from the live content library | none (descriptions only) |
| Matching follow-up · Sept 27 | 13 frames pulled from round 2's videos | n/a | each frame against the other 12 |
Blind means the model never sees the right answer, and nobody checks its answer until every model has finished.
N07 instead of its real filename, so nothing about it can hint at the answer.Same three prompts, word for word, every time, for every model, every clip. Nothing gets adjusted per clip and nothing gets a second try.
The prompts themselves stay private. In short: every model was told to use only what it could see, say "unknown" when unsure, and never guess a brand or material it couldn't see.
| Apple Vision | SigLIP | Qwen 8B | Qwen 27B | |
|---|---|---|---|---|
| Video frames, right on the first guess (of 10) | 0 | 2 | 5 | 9 |
| Video frames, right in the top 3 (of 10) | 1 | 5 | 6 | 10 |
| Photos, right on the first guess (of 3) | 3 | 3 | 2 | 3 |
Qwen 27B was clearly strongest at picking the right design. But when I read what it actually wrote, both Qwen models still invented things: called products "wooden" when material was never visible, gave a wrong dog breed, cited a timestamp past the end of a clip, and misspelled on-screen text.



Four of the six clips a teammate had already reviewed and approved turned out to be the exact same physical product: a cooler with a "Mr. & Mrs." design. Confirmed by hand against the video frames.
Across those four clips, the two Qwen models called it four different things: a wooden sign, a wedding box, a trunk, a doormat. Neither one ever said cooler. A fifth clip of the same product only got called a cooler because that particular shot happened to catch the branded body in frame, not because either model recognized the material.
On a separate clip of a CNC cutting machine, correction made Sept 28 after a closer frame check: both models did see a real thing, not nothing: a wall sign for the machine's own brand, and a real design being carved (an animal-like graphic with text). Where they failed was narrower than first reported: every model tried on this clip read that carved text as something different, and none of the guesses matched the real word on the wall. Small, hard-to-read text gets a confident wrong answer instead of "unknown."
Both models stayed reliable at reading legible on-screen text, even on the clips where they had no idea what object the text was printed on.
Since the readers missed the same-cooler pattern, one frame from each of the 13 round 2 clips went through the three matching tools instead, comparing pictures to each other, no reading involved.
All three matchers correctly grouped the cooler cluster as their top pick. CLIP was cleanest: every one of the five cooler clips picked another cooler clip as its closest match, by a wide margin over anything else.
Correction: DINOv2 is noisier than first reported — on re-scoring, one non-cooler clip's top match actually is a cooler clip. The overall pattern still holds, just messier at the edges than first written up.
The split makes sense: the readers were asked to name the object, which needs more than pixels. The matchers were only ever asked whether two pictures are the same thing, which doesn't require naming anything.
Same 13 videos and 3 stills, run through two true video-native cloud models: Gemini 3.1 Pro and Gemini 3 Flash. A third, a free hosted open-source model, was rate-limited on video every attempt and only partly completed on stills. A capacity problem on the free tier, not a rejection of the test.
Gemini did not clearly beat the free local models on the cooler mix-up. On the same crops where Qwen guessed wooden sign, trunk, doormat, Gemini mostly hedged to "rectangular object" without committing to a material. Safer, but not "cooler" either. Its one real win: on one clip it followed the camera pan far enough to read the actual brand name and the latches, something neither Qwen model caught on that specific clip.
Real cost for the full run, from the provider's own billing, not an estimate: $0.42.
Every earlier round tested candidates. This round tests the incumbent: the exact model already running a real production alt-text pipeline, same 13 clips and 3 stills, same fixed prompts, read critically rather than taken at its word.
Two conditions, on purpose. Condition A matches what production actually does today: one static thumbnail frame, no video, ever. Condition B gives it the same fair, frame-sampled treatment as Qwen and Gemini.
The first write-up understated this. On condition A, the exact pattern running in production right now, it called the cooler a "wooden plaque" or "sign" on all four of the hard crops, and it also missed the wide shot every other model in this test got right, misreading the brand name and still calling the object a "white container/box," not a cooler. Checked directly against the raw output.
On condition B (the fairer, frame-sampled version of the same model), it did somewhat better, but still misread a truck's on-screen text, and on the CNC clip it described an entirely different scene than what's actually there: "a mechanical amusement ride," "a large cylindrical transparent dome."
Bottom line: the exact reader pattern live in production today is the weakest performer of everything tested in this whole trial, on its own core test. That is a real finding, not a tie.
Cost, real: condition A (today's actual pattern) is the cheapest of every model tried, and also the worst on accuracy in its real form.
Every round before this asked "what is in the frame." This round adds a second stage: once a reader writes its description, who decides which real product it actually matches? Two products pulled live from a store catalog, plus two real decoy products. Same 4 readers described the two real products, blind. Three independent judges, Jev, Codex and Claude, each looked at a reader's description plus the three candidates and picked one, never seeing the images.
All 4 readers described both products accurately. Every judge's top pick was correct all 8 times, across all readers and both products.
Disclosure 1: Jev doesn't give a flat yes/no, it gives a confidence number per candidate. "8 for 8" means Jev's single highest-confidence pick was right every time, the reading that matters for actual use. But on several calls it also gave real confidence to a wrong candidate. Read the strictest possible way, the score drops to 2 of 8. Both numbers come from the same data; they answer different questions.
Disclosure 2: this round's decoys were easy to tell apart from the real product by name alone. A harder version, with genuinely similar decoys, is Round 7 below.


A model we hadn't tried yet: Gemini 3.8 Flash, run on the identical 13 clips and 3 stills.
On the four hard cooler crops, it said "cooler" plainly on three of four, including one clip no other reader in this whole test called correctly without a hedge. It missed the fourth, same as everyone else there.
On the CNC clip it read the real background correctly with no invented scene, though it still misread the wall sign's text.
Real cost: $0.066 for all 16 items.
The decisive follow-up. Round 5 proved matching works on easy content. This round tests it on the exact four clips where every reader failed. Reused the readers' original descriptions, pulled the real matching catalog product plus 3 real decoys (including one deliberately harder, similarly personalized one), and ran all three judges again.
48 out of 48. Four readers × four clips × three judges. Every judge caught the real product every time, even from a description that called the object a sign, a trunk, a doormat, or a container, because the reader still reliably transcribed the real words on it, and that text alone was enough.
Honest limit: the decoys still didn't include another design with the same wording in a different color. That's the genuinely hard case, and it hasn't been tried yet.
| Model | Runs on Linux? |
|---|---|
| Qwen 8B / Qwen 27B | Yes, plain PyTorch, no Apple-specific code |
| CLIP / DINOv2 | Yes, same, unchanged, GPU or not |
| Apple Vision | No, a macOS system framework, no Linux build exists or can exist |
Which model for which job: pros and cons, in the same order as the at-a-glance chart above.
| Model | Best for | Pros | Cons |
|---|---|---|---|
| Qwen 27B | Picking the right design or catalog match, free and local | Best design-match accuracy of any reader tried (9 of 10); reads on-screen text reliably; free, runs on this Mac | Never named the cooler correctly, same as every other reader; invents details (material, breed, a timestamp past the clip's end) it can't actually see |
| Qwen 8B | A lighter free local fallback when 27B isn't needed | Free, local, reads on-screen text reliably | Weaker design-match than 27B (5 of 10); same object-naming blind spot |
| Gemini 3.1 Pro | Not a clear pick yet based on this trial | Safer than the free local readers on material guesses; the only reader that caught a brand name on one clip | Hedges to vague phrasing ("rectangular object") instead of committing to an answer; not obviously better than free local models for the cost |
| Gemini 3 Flash | Not tested enough to recommend | Cheaper than Pro under the same shared bill | Same hedging pattern as Pro; never run on the catalog-matching test |
| Gemini 3.8 Flash | Best reader result in the whole trial on the hardest problem | Plainly said "cooler" on 3 of 4 of the hardest clips, including one no other reader called correctly; cheap ($0.066 for the full run); read the CNC background correctly with no invented scene | Still missed the fourth hard clip; not yet run on design-match round 1 or the full catalog test |
| Model live in production today (frame-sampled test) | Not recommended based on this test | Cheapest reader tested ($0.267/run for this mode) | Called the cooler "wooden plaque" or "sign" on all four hard crops; missed the easy wide shot every other model got right; misread the brand name |
| Same model, its real production pattern | Not recommended; this is the actual incumbent being questioned | Cheapest of everything tested ($0.045/run) | Weakest reader in the whole trial on its own core test; one static thumbnail frame only, no video, ever, by design |
| Qwen3.8 27B (free) | Too early to say | Free tier | Rate-limited on every video attempt; only partly completed on stills, so this test couldn't really judge it |
| CLIP | "Is this the same product as that other photo or video?" | Cleanest matcher in this trial; every cooler clip matched another cooler clip by a wide margin | Doesn't read text or name objects, that's simply not its job; only tested on one matching round here |
| Apple Vision | Quick photo grouping on a Mac when design accuracy doesn't matter | Correct on all 3 photos tested; free, built into macOS | Weak at picking the right design from video frames (0 of 10); Mac-only, can't run on a Linux server |
| DINOv2 | A solid second matcher, Linux-friendly | Free; runs on Linux, GPU or not; got the main cooler pattern right | Noisier than first reported; one non-cooler clip's top match was actually a cooler clip on re-scoring |
| SigLIP | Not the first choice here | Free; some design-match hits (2 of 10) | Weakest design-match score among the matchers tested for it; never run on the main same-product test |
| Jev | Fast, very cheap catalog-matching decisions from a text description | ~$0.003 total for 24 decisions; top pick was right every time (24 of 24), including the 4 hardest clips that broke every reader (48 of 48) | Also gives real confidence to a wrong candidate sometimes; read the strictest way, the score drops to 2 of 8, so its confidence numbers need a strict read, not blind trust |
| Codex | Catalog-matching decisions if you're already paying for a subscription | 24 of 24 right, including the hard 48 of 48 | Billed as a subscription, not pay-per-call; this trial didn't disclose a per-decision cost |
| Claude | Catalog-matching decisions | 24 of 24 right, including the hard 48 of 48 | This trial didn't track or disclose a run location or per-decision cost for it |
Any of the models tried does the job. The gaps between them are small.
Don't trust it alone from a close-up crop, and the model live today is the weakest one tested at it, not merely average.
That's a matching question, not a reading one. CLIP is the strongest of the three tried.
Worked perfectly, twice: once on easy content, once specifically on the hard content that broke every reader (48 for 48). The strongest, most decisive result in the whole trial.
Revised: one candidate model clearly outperformed the pack on the core failure, and the model live today's real pattern is the worst tested, not a tie. Worth a real look.
At 20–50 videos and 50–100 images a week, every option priced out under about $7/week. Price is not the deciding factor here; accuracy is.
An independent audit, fresh context, adversarial, scored everything against the sealed answer keys before reading any prior write-up, and found real things to fix, now corrected above.
Fresh footage nobody has reviewed, real (non-staged) customer photos, and a genuinely hard matching decoy that shares wording with the real product.
New trials, same format: what we tested, what broke, what we'd actually use. No spam, just new findings as they publish.