ImageBench
Back to blog
· 9 min read

Can an Open Model Grade Our Benchmark?

Most of ImageBench is graded by Gemini 3.1 Pro, a closed model that nobody can freeze or rerun forever. So when Tencent released WeVisOne-VL, an open model built to find and count things, we tested it as a judge. With blind human labels as the reference, it tied Gemini on counting and on simple negation, and lost on text and attributes. A tie is a better result than we expected, but not enough to change the benchmark. V1.2 stays, and the full dataset is public.

Why try another judge

A judge is part of the measurement. If the judge changes, every score can drift. An open model with published weights can be pinned and rerun years from now, and a detector gives something a chat model does not: boxes you can look at. If it says nine goldfish, you can see which nine.

WeVisOne-VL comes in 2B and 4B versions under Apache-2.0. We tested 4B, the largest published. It does not reason in prose. It answers with geometry: boxes, dots, masks and OCR words. That makes it a poor fit for “does this look like a photo?” and a plausible fit for “are there exactly three apples?”

First attempt: the obvious prompt was the wrong one

We started with the model’s built-in count prompts on all 728 Counting images, from 81 models. The pass rates looked close: Gemini 47.4%, WeVisOne 45.6% with dots and 45.3% with boxes. A reviewer then labeled the images blind. On the 44 confident images where the judges disagreed, Gemini was right 70.5% of the time, the dot prompt 61.4% and the box prompt 38.6%. All three got the 17 confident control images right. Gemini won, and we nearly stopped there.

We also tried finger counting on the 24 human-labeled images from our hands study, cropping each hand and counting fingers. The best rule reached F1 71% and precision 58%, against F1 80% and precision 100% for Qwen3.5-122B. Crops often held more than one hand, and grips hide fingers. Hands stay with Qwen.

But the count prompt is only one of the model’s outputs, so a loss there did not tell us what the model could do.

What each output actually sees

We ran every method we could build on 10 hard images, picked by hand. That sample is deliberately biased, so read this table for how methods fail, not as a ranking. Rows with fewer than 10 images are methods that do not apply to every prompt.

MethodMatches the human
Gemini 3.1 Pro (live judge)8 / 10
Plain detection7 / 10
Referring prompt7 / 10
Detection, singular wording7 / 10
Detection, upscaled image7 / 10
Generic noun mask + color from mask pixels6 / 7
Joint detection, all classes in one call4 / 5
Pointing dots6 / 10
Count prompt, boxes (our first test)6 / 10
Segmentation masks6 / 10
Majority vote of dots, detection and masks6 / 10
Count prompt, dots (our first test)4 / 10
Visual prompt4 / 10

The dot-count prompt we had leaned on was among the weakest. Each output also had its own blind spot. Boxes missed a sliver of an orange that dots found:

Detection boxes on a fruit bowl, finding three orangesPointing dots on the same fruit bowl, finding four oranges
FLUX 2 Pro fruit bowl. Detection finds 3 oranges (left). Dots find the fourth, hidden behind an apple (right).

The model also counts literally. Ask for yellow rubber ducks in front of a mirror and it counts the reflections too. Masking the generic word “ducks” happened to return only the real five:

Boxes around ducks and their reflections, ten in totalMasks on the five real ducks
Kromoss. Detection counts 10 ducks including reflections (left). The generic noun mask finds 5 (right), which matches the prompt.

Gemini has its own failure. On this GPT Image 2 fishbowl it stated “exactly 9 goldfish” and passed the image. WeVisOne found 10, and our reviewer failed it. Boxes make that kind of error easy to check.

Detection boxes around ten goldfish in a bowl
GPT Image 2. The prompt asks for 9 goldfish. Gemini passed it; detection counts 10, and the reviewer failed it.

The real test: every disagreement, labeled blind

We picked two candidates and wrote the rules down before running them: plain detection, and masks of a generic noun with color read from the mask pixels. Both ran on all 728 Counting images. Most verdicts matched Gemini, so only the disagreements could separate them: 36 images for detection, 43 for masks.

Each disagreement got a human label, with the verdicts hidden until the reviewer had answered. The 10 images used to choose the methods were left out of the score, and a method needed p < 0.025 on a McNemar test to claim a win.

Neither won. Detection came out at 11 right to Gemini’s 13, which is a statistical tie. Masks, the method we had expected the most from, lost 11 to 19; the gap is not significant, but it went the wrong way. Pass rates across the board were also close: Gemini 345 of 728, detection 331, masks 328.

The two judges are good at different images. On the goldfish prompt detection beat Gemini 5 to 1. On every other prompt combined it lost 6 to 12. Balloons barely separated them: across 81 images they disagreed once, and Gemini was right.

Every labeled disagreement (40 images)

Cells that disagree with the human are tinted red. Marked images were used to choose the methods and are not in the score. Images the reviewer marked unsure are left out.

ImagePrompt asks forHumanGeminiDetectionMasks
local--kromoss-dmd: 3 red apples3 red applesFAILFAILPASSPASS
local--kromoss-dmd2: 3 red apples3 red applesFAILFAILPASSPASS
local--tinydit-256: 3 red apples3 red applesPASSPASSPASSFAIL
local--z-image-6b: 3 red apples3 red applesPASSFAILPASSPASS
bfl--flux-1.1-pro: 5 yellow rubber ducks5 yellow rubber ducksPASSPASSFAILPASS
local--kromoss: 5 yellow rubber ducks5 yellow rubber ducks (tuning image)PASSPASSFAILPASS
fal--hidream-o1-image-dev-8b: 4 white candles4 white candlesPASSPASSFAILPASS
bfl--flux-1.1-pro: 9 goldfish9 goldfishFAILPASSFAILFAIL
fal--bria--fast: 9 goldfish9 goldfishFAILPASSFAILFAIL
fal--krea--v2-large: 9 goldfish9 goldfishFAILPASSFAILFAIL
local--bonsai-image-ternary-4b: 9 goldfish9 goldfish (tuning image)PASSPASSFAILFAIL
local--flux-3-klein-fp8: 9 goldfish9 goldfishPASSFAILPASSPASS
local--qwen-image-2512-20b: 9 goldfish9 goldfishFAILFAILPASSPASS
local--sana-1.5-1.6b: 9 goldfish9 goldfish (tuning image)FAILPASSFAILFAIL
local--sefi-image-5b-turbo: 9 goldfish9 goldfishFAILPASSFAILFAIL
openai--gpt-image-2: 9 goldfish9 goldfish (tuning image)FAILPASSFAILFAIL
bfl--flux-2-pro: 3 bananas, 4 oranges, 2 apples3 bananas, 4 oranges, 2 apples (tuning image)PASSPASSFAILFAIL
fal--ideogram--v4: 3 bananas, 4 oranges, 2 apples3 bananas, 4 oranges, 2 applesPASSPASSFAILFAIL
fal--reve--2.1: 3 bananas, 4 oranges, 2 apples3 bananas, 4 oranges, 2 applesPASSPASSFAILFAIL
xai--grok-imagine-2: 3 bananas, 4 oranges, 2 apples3 bananas, 4 oranges, 2 applesFAILPASSFAILFAIL
replicate--minimax--image-01: 11 balloons11 balloonsPASSPASSFAILFAIL
bfl--flux-2-pro: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
fal--bytedance--seedream-v5-lite: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
fal--google--nano-banana-pro: 4 red roses, 2 white daisies4 red roses, 2 white daisiesFAILPASSFAILFAIL
fal--hidream-o1-image-8b: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
fal--krea--v2-medium: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSFAILPASSPASS
fal--qwen-image-2-pro: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
local--flux-3-klein-base-fp8: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
local--krea-2-raw: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
openai--gpt-image-2.5-flare: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
xai--grok-imagine-2: 4 red roses, 2 white daisies4 red roses, 2 white daisiesPASSPASSPASSFAIL
fal--google--nano-banana-pro: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSFAILPASS
fal--ideogram--v3: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSFAILFAIL
fal--krea--v2-medium: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSPASSFAIL
fal--recraft--v3: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSFAILPASSPASS
fal--reve--2.1: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSFAILPASS
local--iris-3b: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSFAILFAIL
local--kromoss-dmd: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSFAILPASSPASS
openai--gpt-image-2.5-sunburst: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterflies (tuning image)PASSPASSFAILPASS
replicate--leonardoai--lucid-origin: 1 blue butterflies, 3 yellow butterflies1 blue butterflies, 3 yellow butterfliesPASSPASSFAILFAIL

Could it grade anything else?

We first asked it every question in the benchmark directly, on 8 models and 1,533 images. As a general judge it does not work: it answered FAIL only 16 times and gave no verdict on 321. Where agreement looked high, it was just passing images that mostly pass.

So we built tests around what it can see, then labeled disagreements blind again. For Writing accuracy, OCR words had to contain the expected words. For Negation, zero boxes on the forbidden thing meant PASS. For Attributes Binding, every phrase needed a box.

TestImagesDisagreementsWeVisOne rightLive judge rightUnsurepResult
Counting, detection72836111360.84Tie
Counting, mask + color72843111990.20Tie
Negation Easy + Medium, detection4862591330.52Tie
Writing Easy + Medium, OCR48642112740.014Gemini
Writing Hard + Extreme, OCR (sample of 20)48413221710.0007Gemini
Attributes Binding, detection (sample of 20)72910431340.021Gemini

Counting rows leave out the 10 tuning images, so their scores cover 30 and 39 disagreements. Sample rows label 20 random disagreements, so they show a direction, not a final score.

Negation is the cleanest fit, and it tied. The two judges failed differently: WeVisOne wrongly failed 13 images, often from one false box on a person or on food, and Gemini wrongly failed the other 9. Writing accuracy lost: OCR misses short words such as “a”, and word matching passes text a person would reject. Attributes Binding leaned clearly against it. In 94 of 104 disagreements WeVisOne passed what Gemini failed, and the sample suggests a box on a “small blue triangle” is weak evidence that it is small or blue.

Why we are not switching

Moving Counting and easy Negation to detection would cost no measurable accuracy. It would flip 61 of 1,214 verdicts, and no model would move more than 3 images out of 192. We still decided against it. A benchmark judge should change because the new one is better, and nothing here beat Gemini. The gain would also be partial: 15 of 192 prompts would become reproducible, Gemini would still grade most of the benchmark, and those 15 prompts would lose their written explanations. Every new model would need a third judge.

So the leaderboard stays on V1.2. What changes is what we know: on these labels we could not measure a difference between a 4B open detector and a frontier model on counting.

Honest caveats

  • A tie is not equivalence. With 24 scored disagreements on Counting, the test can only detect a large gap. “No detectable difference” is the claim, not “equally accurate”.
  • One reviewer, and some images are ambiguous. All labels come from one person. Unsure images are excluded, and they were not rare on the Counting disagreements. Refracted fish in a bowl are a judgment call for a person too.
  • Only disagreements were fully labeled. Where both judges agree, both may be wrong. These tests compare the judges; they do not measure absolute accuracy.
  • Masks were chosen on a small hard set. Our own favorite lost on fresh images, and the 10-image table above flattered it. That is why we keep tuning images out of the score.
  • The goldfish result is post hoc. We noticed the 5 to 1 after seeing the results, on 6 images. It is a lead for later, not a finding.
  • Some steps ran outside our normal pipeline. Masks need Tencent’s own package, so the mask runs and the 10-image methods study ran directly on our GPU machine. The full-board detection, OCR and direct questions ran through the benchmark’s batch server. Plain detection matched across the two routes on 9 of the 10 images.

The data is open

The dataset on Hugging Face has the 203 human labels, 4,932 rows of judge verdicts with raw answers, the methods study, the finger counts and the plans we froze before each test. If you think a prompt, rule or label is wrong, you can check it image by image.