Text-to-image by citation of real COCO instances, self-verified; GenEval-style 50.9% held-out, no generative model.
Oracle7-Artist 2.0 (internal)
Status: public release. Prometheus7 Research Institute, 2026-09-25. Held-out complete: GenEval-style 50.9% (2,212 images, run once).
Frozen 2026-09-25 13:35 UTC (box four /opt/oracle7-artist/results/HELDOUT_FREEZE.txt):
- code SHA-256
000154e2ebf0403c300c98c12da0aa94a7e553e12e07acab12b74086f8acd6c7(C-locale sortedartist/*.py+eval/*.py, v0 copies excluded); - library index SHA-256
4b1d83af4ab12424822ce58129fd044283fa77d216bac789784c80f062187f4d(2,673 sprites, 80 classes).
What it is
Text-to-image by citation, with no generative model and no learned weights.
- Parse. A prompt is parsed into objects, counts, colours and spatial relations.
- Cite. Every object is a real instance cut from COCO val2017, cited by image id and annotation id.
- Lay out. The layout satisfies counts and relations by construction.
- Colour. It cites a real instance already of the named colour when the library holds one. Otherwise it recolours an instance, keeping its light and saturation structure.
- Verify. Artist re-measures every clause from its own pixels.
The judge is independent of Artist and shares no code with it. It is OWLv2 (base) queried with all 80 COCO class names plus CLIP ViT-B/32 for colour, applying GenEval's task rules. It is an approximation of the official GenEval scorer (Mask2Former + CLIP); numbers are "GenEval-style", not official GenEval. Its detection threshold (0.25) was set by presence F1 on 250 real COCO photographs before library v1 existed. It was then fixed.
Protocol
- Development: 120 templated prompts (seed 4242) covering the GenEval task families, excluding every official prompt. Every library and renderer change was made here.
- Held-out: the 553 official GenEval prompts Γ seeds 0β3, rendered and judged once, seed-major.
results/geneval_heldout.jsonis rewritten after each seed and markedfinal: trueat the end.
Development results (120 prompts, seed 0)
| Version | Overall | Counting | Two objects | Position | Colours | Colour attribution |
|---|---|---|---|---|---|---|
| v0 (first 40 prompts, thr 0.30) | 39.2% | 75% | 37.5% | 33.3% | 50% | 0% |
| v1 (library filters, own-colour citation) | 45.5% | 68.0% | 58.3% | 52.6% | 48.4% | 0% |
| v1b, frozen (texture-keeping recolour, fragmented masks rejected) | 47.7% | 68.0% | 58.3% | 52.6% | 45.2% | 14.3% |
Artist's self-verification passes 95β100% of its own images in every task. The gap between self-verification and the judge is the finding: the layout is right by construction, but many composited instances are not recognised as that object by a detector trained on photographs.
What changed from v0 to v1b, each change found by looking at dev renders:
- Occlusion: occluded instances are dropped (other boxes may cover at most 35% of the instance's box).
- Legibility: dark or flat cut-outs are dropped (median value < 0.18, or std < 0.04).
- Fragmentation: masks whose largest piece is under 80% of the mask are dropped.
- Own colour: a sprite's own colour is recorded only when unambiguous (red, orange, yellow, green, blue, white, black; saturation β₯ 0.35).
- Recolour: it now keeps the object's own light and saturation ratios. The old recolour flattened objects into blobs.
Held-out (official GenEval prompts): complete
Run once on box four, 2026-09-25 13:35 to 22:33 UTC (32,275 s on 2 CPU cores, no GPU): the 553 official prompts Γ seeds
0β3 = 2,212 images, judged once. results/geneval_heldout.json (final: true, SHA-256
b792e7906e54171d31ca3e3e5134c6250d481c5e9e44af288dc98f0f4c0cda9e). The code and library hashes are the frozen ones above.
| Task | Images | Independent judge | Artist's own self-check |
|---|---|---|---|
| Overall (GenEval-style) | 2,212 | 50.9% | |
| Single object | 320 | 80.6% | 100% |
| Two objects | 396 | 49.2% | 100% |
| Counting | 320 | 55.0% | 91.3% |
| Colours | 376 | 45.7% | 97.1% |
| Position | 400 | 56.0% | 100% |
| Colour attribution | 400 | 19.0% | 92.0% |
584 of the 2,212 images needed a recoloured instance. Held-out (50.9%) is above the frozen dev figure (47.7%), so the dev prompts did not overstate it.
Published GenEval overall scores for generative models (official scorer): SD 1.5 β 43%, SDXL β 55%, SD3 β 68β74%. Artist uses no generative model and no learned weights, and every object in every image is a cited COCO instance. The judge is an approximation of the official scorer, so this comparison is indicative only.
Failures, stated plainly
- Most dev failures are "missing": the judge does not detect the composited object. Colour attribution is weakest (14.3%). Two recoloured objects in one image compound the detector's difficulty.
- Counting fails when an instance overlaps or is cropped below the detector's confidence (8/25 dev).
- Thin library classes: hair drier 1, toaster 2, skis 3, frisbee 5, remote 5, knife 6.
- Brown, purple and pink objects are always recoloured, because photographed objects in these hues are read unreliably (red apples read as pink or purple).
- Judge calibration overlap: 67 of the 250 calibration photographs are also cited by the frozen library. The threshold was chosen on whole-photo detection before that library existed, so this does not favour Artist. It is disclosed.
- The judge is not the official GenEval scorer. Treat comparisons with published GenEval numbers (SD 1.5 β 43%, SDXL β 55%, SD3 β 68β74%) as indicative only.
Reproduce (box four)
cd /opt/oracle7-artist
judge-venv/bin/python artist/build_library.py coco library
judge-venv/bin/python eval/calibrate_judge.py 250
judge-venv/bin/python eval/eval_geneval.py dev 120
judge-venv/bin/python eval/eval_geneval.py heldout