A Bowl of Wrong-Coloured Fruit
An objective, rubric-scored benchmark of AI text-to-image models.
Ask an AI for a purple lemon and you’ll get one — naming the colour does the work for it. This benchmark takes the training wheels off: paint five fruits in unnatural colours of your own choosing, no two alike, plus two constraints today’s models reliably fumble — a halved orange whose flesh must be a different unnatural colour from its skin, and a strawberry that has to be visibly rotting. Eight models, one locked prompt, one published run each, seven ✓ / ½ / ✗ marks printed on the image — so you can re-derive every score by counting. Free to cite with attribution.
Name the colour and models obey. Leave it open and they revert.
In the assigned-colour version of this test (“a purple lemon, a black strawberry…”), two flagship models scored a perfect 100. On this version — same fruits, colours left to the model — only one entry swept it: Meta Muse, at a clean 100.0 (run by hand on the meta.ai app, not the API — see the method). Every model run through a raw API dropped at least one constraint. That includes the ones that reason before they draw: OpenAI’s gpt-image-2 plans with O-series reasoning and Google’s Nano Banana thinks by default — yet gpt-image-2 still fell from 100 to 57.1, obeying both colours the prompt names (the pink FRENZY banana, the two-tone halved orange) and rendering every fruit left to its own choice in perfectly natural colours. A reasoning step doesn’t save them; the prior wins whenever the prompt doesn’t pin it down. And the hardest single mark? The strawberry: only 2 of eight bowls painted it a clearly unnatural colour.
Results
Seven marks per run (five colour slots + the orange’s flesh + the strawberry’s rot), −0.5 for each extra fruit or same-colour pair. Score = marks /7, normalized to 100. One published run per model, all settings published. These scores also feed the cross-benchmark model leaderboard.
- 1
Meta Muse Image
7/7 · 100.0meta.ai consumer app · manual (no public API) — see the fairness note in the method
✓✓✓✓✓✓✓
The only clean sweep — all seven constraints satisfied. It cut the orange as asked (fluorescent-green skin, teal flesh, both clearly unnatural and different), and gave the bowl a blue lemon, a purple lime and a golden, mould-spotted strawberry. Caveat: this is the one entry run by hand on the meta.ai consumer app rather than a raw API, so its prompt may have been enhanced before generation — treat the sweep with that asterisk.
- 3
Nano Banana 2 Lite
5.5/7 · 78.6Gemini API · generateContent · gemini-3.1-flash-lite-image · aspectRatio 3:2
✓✓✓✓✓✗✓−0.5 colour collision: cyan lemon vs the orange's cyan skin
The best orange in the field — cyan skin, teal-green flesh, both unnatural and clearly different. But the strawberry stayed natural red, and its cyan lemon collides with the orange's cyan skin under the no-two-alike rule.
- 3
Qwen Image 2.0 Pro
5.5/7 · 78.6AIMLAPI · alibaba/qwen-image-2-0-pro · defaults
✓✓✓✓✗½✓
Teal-skinned halved orange — with glowing blood-orange red flesh, a colour real oranges actually have, so the interior scores zero. Its chartreuse strawberry sits at the edge of the natural unripe range (½).
- 3
Seedream 5 Lite
5.5/7 · 78.6AIMLAPI · bytedance/seedream-5-0-lite · defaults
✓✓✓✓½✗✓
Teal orange with grapefruit-pink flesh — pink flesh exists in real Cara Cara oranges, so only ½. And its strawberry went green: squarely inside the natural unripe range, the exact trap the benchmark sets.
- 2
Seedream 5.0 Pro
6/7 · 85.7AIMLAPI · bytedance/seedream-5-0-pro · defaults (released 8 Jul 2026)
✓✓½✓½✓✓
ByteDance's brand-new frontier model, second only to the reasoning model. Teal-skinned halved orange with grapefruit-magenta flesh (½), and one of only two models to make the strawberry genuinely unnatural (powder-blue, mould and all). Its one soft spot: the lime came out orange — an unnatural colour for a lime, but it reads like an orange, so a half.
- 6
Google Nano Banana 2
4.5/7 · 64.3Gemini API · generateContent · gemini-3.1-flash-image · aspectRatio 3:2
✓✓✓✓✗✗✓−0.5 colour collision: magenta lime vs the pink banana
Interior reversion, textbook case: a teal-skinned halved orange (unnatural ✓) with perfectly natural orange segments inside (✗). Its magenta lime also collides with the pink banana.
- 7
OpenAI gpt-image-2
4/7 · 57.1OpenAI API · /v1/images/generations · gpt-image-2 · 1536×1024
✓✗✗✓✓✗✓
The anchor effect in one image: it obeyed both colours the prompt names (pink FRENZY banana; blue-skinned, purple-fleshed halved orange) and reverted every colour left open — yellow lemon, green lime, red strawberry. It swept the assigned-colour v2 of this test 100/100.
- 8
FLUX Kontext Pro
0.5/7 · 7.1AIMLAPI · flux/kontext-pro/text-to-image · defaults
✓✗✗✗✗✗✗−0.5 extra fruit: a duplicate lemon
A near-natural fruit bowl — an edit-focused flow model with a strong photographic prior, so it reverts to normal fruit (its FLUX 2 Pro sibling floored the duck ladder the same way). Only the pink FRENZY banana landed; it even put the requested rot on the orange instead of the strawberry, and added a second lemon.
Every bowl, every grade
All eight runs with their marks: ✓ (1 point, constraint met), ½ (half a point, borderline — a colour at the edge of the fruit’s natural range, or a half-satisfied constraint) or ✗ (0 — a natural colour, a missing constraint, or a wrong fruit). The score is what you can count — no hidden runs.

Five fruits, seven marks
Every fruit has one canonical natural colour — that’s what makes “unnatural” objective without naming a target. The banana’s pink is the one colour the prompt specifies (it carries our logo, and doubles as a floor: fail the one given colour and nothing else matters).
- 1Banana — bright pink (the ONE colour we name; our brand anchor)
- 2Lemon — any unnatural colour of the model's choosing
- 3Lime — any unnatural colour of the model's choosing
- 4Orange, halved — skin an unnatural colour
- 5Orange flesh — unnatural AND different from the skin
- 6Strawberry — an unnatural colour (judged on the non-rotten flesh)
- 7Strawberry — visibly rotting, with a brown mould patch
Run it yourself — the verbatim prompt
A photorealistic photo of a fruit bowl on a plain table. Bright even lighting, plain background, sharp focus. The bowl contains exactly these five fruits and nothing else. Every fruit is clearly recognisable but painted an unnatural colour it never occurs in nature, and no two fruits are the same colour: (1) a bright pink banana with the word 'FRENZY' written along its side in bold black letters; (2) a lemon; (3) a lime; (4) an orange, cut in half, whose skin and whose inner flesh are two different unnatural colours; (5) a strawberry that is visibly rotting, with a patch of soft brown mould. Do not add any other fruit.
Paste this into any text-to-image model. Count the marks yourself: one per colour slot, one for the orange’s flesh differing from its skin, one for visible rot — minus half a point per extra fruit or same-colour pair.
How it’s scored
- Seven marks per run, printed on the composite above: ✓ = 1 point · ½ = half a point · ✗ = 0. Penalties of −0.5 for each unrequested extra fruit and each pair of same-coloured fruits (the prompt forbids both). Score = (marks − penalties) / 7 × 100, floored at zero.
- A colour inside the fruit’s real-world range fails — including unripe, overripe and rare cultivars. Blood-orange red flesh, Cara Cara pink and unripe-green strawberries all count as natural: models genuinely defying their prior shouldn’t be out-scored by models drifting to an unusual-but-real colour.
- The prompt was locked in writing before any image was generated. One run per model, no retries, no cherry-picking — the first API return is the published run.
- One fairness caveat, stated plainly: seven of the eight ran through raw APIs at their defaults, so they’re directly comparable. Meta Muse has no public API, so its run was done by hand on the meta.ai consumer app with the identical prompt — and consumer apps can rewrite or enhance a prompt before it reaches the model. So Muse’s clean sweep is not strictly apples-to-apples with the API cohort; read it as “the best consumer-app result” rather than a like-for-like win. It is not that Muse is the only model that reasons — gpt-image-2 (O-series reasoning) and Nano Banana (thinking on by default) both plan before drawing, and both still reverted.
- Every image was graded twice — once by us, once by an independent grader given only the rubric and the image — and reconciled; where the two disagreed, the pixel-sampled evidence won. Borderline calls (a magenta lime beside a pink banana; a green orange rind that unripe oranges actually have) are documented and consistent across models.
- Design log: v1 let models choose their own fruits — ambitious crowded bowls scored lower than sparse safe ones, so it was never published. v2 named every target colour — and two flagships promptly swept it 100, because naming the colour hands the model an anchor. v3 (this page) keeps the fixed fruit set but leaves the colours open. When a test stops discriminating, we redesign it in public.
- This benchmark scores prompt-adherence against the model’s own prior, not image beauty. Free to reuse with attribution to A Bowl of Wrong-Coloured Fruit (CC BY 4.0). Press & data requests: promptfrenzy.com/press.
More objective benchmarks
This is the text-to-image sibling of the Duck Transform Ladder (same doctrine, image-edit models). Both feed the cross-benchmark model leaderboard.