ChatGPT Images 2.5 on Forgery Tasks: Testing Advertised Improvements Against Known Answers
Abstract
OpenAI released ChatGPT Images 2.5 on 8 September 2026, advertising more precise local edits, better consistency across edits, more faithful reference products and sharper detail. We evaluate these claims on four forgery tasks with answers fixed in advance: receipt-field alteration, repeated editing, product placement and small-print rendering. GPT-Image-2 provides same-week baselines at a cheaper and a more expensive tier. A limited improvement appears in receipt editing. After alignment, OCR detects changes to surrounding text in 31.7% of Flare outputs, against 44.2% for the cheaper baseline. This gain is concentrated on CORD receipts and sensitive to shifts of a pixel or less; the forged value itself is no more often correct. Repeated editing and fine print show no measurable gain. Product codes become more legible mainly because Images 2.5 draws the product larger. Defence outcomes change little: localisation remains weak for both generations. A detector that flags 68.6% of controlled benchmark images flags only 35.9% of images posted online. Advertised improvements therefore transfer unevenly to the tested forgery capabilities, while substantial detection limitations remain.
Figures & tables
| Claim | Exp. | Layer | Metric (unit, n) | GPT-Image-2 | Flare | Sunburst | Images 2.5 GPT-Image-2 [95% CI] | ||||
| fraud task | Flare | Sunburst | |||||||||
| Precise local editing alter one field on a receipt | E1 | L1 | Target value read (%) | low | 67.7 | 71.9 | 77.1 | [ , ] | [ , ] | ||
| n = 96 readable fields | med. | 74.0 | [ , ] | [ , ] | |||||||
| L2 | Other text changed, aligned (%) | low | 44.2 | 31.7 | 31.2 | ∗ † | [ , ] | ∗ † | [ , ] | ||
| n = 199; calibration 12.1 | med. | 44.2 | ∗ | [ , ] | ∗ † | [ , ] | |||||
| Multi-turn consistency keep editing the receipt | E2a | L1 | Edit success, CORD (%) | med. | 92 | 75 | 87 | [ , ] | [ , ] | ||
Appendix figures & tables18 assets
Supplementary material from the paper’s appendix.
Appendix
| Out. tokens | $/image | Images 2.5 tier | GPT-Image-2 tier | Flare s | Sunburst s | GPT-Image-2 s |
| 196 | 0.006 | low | low | |||
| 439 | 0.013 | medium | — | — | ||
| 1,756 | 0.053 | high | medium | |||
| 3,122 | 0.094 | xhigh | — | — | ||
| 7,024 | 0.211 | max | high | |||
| 3,336 | 0.100 | 4K high | — | 29.7 | 38.9 | — |
| Batch/sync rows | |||||||
| Cell | Claim, layer | Units | Ref. | Flare | Sunburst | GPT-Image-2 | GPT-Image-2 low |
| smoke | tiers, cost, latency | 65 calls | — | sync | |||
| E1 documents | local editing, L1–L3 | 1,996 edits | 4 | sync | |||
| GPT-Image-2 control | E1 control, L1–L3 | 399 edits | 1 | sync | |||
| E2a receipt chains | multi-turn, L1–L2 | 60 receipts | 0 | 228/12 | 228/12 | 228/12 | 240/0 |
| E2b photo chains, stateless | multi-turn, L1–L2 | 157 chains | 6 | 36/200 | 216/18 | 216/18 | 237/3 |
| Claim | Exp. | Layer | Metric (unit, n) | GPT-Image-2 | Flare | Sunburst | Images 2.5 GPT-Image-2 [95% CI] | ||||
| fraud task | Flare | Sunburst | |||||||||
| Precise local editing alter one field on a receipt | E1 | L2 | Numeric text changed, v1 coordinates | low | 22.2 | 18.8 | 15.3 | [ , ] | [ , ] | ||
| (%, n = 199) | med. | 31.9 | [ , ] | [ , ] | |||||||
| Tolerant locality, median | low | 3.3 | 2.5 | 1.6 | [ , ] | [ , ] | |||||
| (% crop, n = 192; floor 0.15) | med. | 3.9 | [ , ] | [ , ] | |||||||
| Multi-turn consistency keep editing the receipt | E2a | L1 | Edit success, WildReceipt (%) | med. | 91 | 82 | 91 | [ , ] | [ , ] | ||
| Claim | Exp. | Layer | Metric (unit, n) | GPT-Image-2 | Flare | Sunburst | Images 2.5 GPT-Image-2 [95% CI] | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| fraud task | Flare | Sunburst | |||||||||
| Faster on the forgery task | E1 | L3 | Median s per edit; GPT-Image-2 / Images 2.5 | med. | 30.9 | 10.8 | 13.5 | 2.75 | [2.59, 2.86] | 2.26 | [2.20, 2.31] |
| (n = 199–200 specs) | low | 13.0 | 1.19 | [1.15, 1.21] | 0.97 | [0.94, 0.99] | |||||
| Refusal | E1 | L3 | Refused of 200 shared specs | low 1, med. 0 | 1 | 0 | |||||
| exact McNemar vs low , med. | 1, 1 | 1, 1 | |||||||||
| Localisation | E1 | L3 | DocTamper per-image AUC | low | 0.613 | 0.588 | 0.599 | ||||
| Registered | Registered | Registered | Old token set | Unregistered | ||
|---|---|---|---|---|---|---|
| Contrast | all rows | 2 px | 1 px | 1 px | 1 px | |
| Flare low | % ( ) | % ( ) | % (0.0019) | % (0.46) | % (0.63) | 72 |
| Flare medium | % (0.0015) | % (0.011) | % (0.07) | % (1) | % (0.73) | 36 |
| Sunburst low | % ( ) | % (0.0011) | % (0.002) | % (0.09) | % (0.12) | 67 |
| Sunburst medium | % ( ) | % (0.14) | % (0.062) | % (0.5) | % (0.25) | 34 |
| Arm | Tolerant median [95% CI] | Pixel-exact | Inside | Shift (px) | Registered | Excl. | |
|---|---|---|---|---|---|---|---|
| GPT-Image-2 low | 192 | 3.3% [3.0%, 3.9%] | 11.7% | 25.0% | 0.88 | 97% | 7 |
| GPT-Image-2 medium | 193 | 3.9% [3.3%, 4.6%] | 15.2% | 24.5% | 2.22 | 98% | 7 |
| Flare | 950 | 2.5% [2.3%, 2.7%] | 10.5% | 25.1% | 0.66 | 96% | 49 |
| Sunburst | 948 | 1.6% [1.4%, 1.7%] | 8.6% | 22.3% | 0.75 | 94% | 49 |
| Resampling floor | 999 | 0.15% [0.12%, 0.22%] | 7.3% | — | — | — | — |
| Variant | Model | Chains | Success | Present [95% CI] | In place [95% CI] | Relocated | Drift | Strength | |
|---|---|---|---|---|---|---|---|---|---|
| Stateless | GPT-Image-2 med. | 39 | 93.2% | 95.6% [92.7%, 98.2%] | 98.3% [95.9%, 100.0%] | 1.6% | 18.0% | 44.3% | |
| GPT-Image-2 low | 40 | — | 94.6% [91.4%, 97.7%] | 98.9% [97.4%, 100.0%] | — | — | — | ||
| Flare | 39 | 94.0% | 94.1% [90.5%, 97.3%] | 100.0% [100.0%, 100.0%] | 0.0% | 25.6% | 41.4% | ||
| Sunburst | 39 | 93.2% | 95.6% [92.6%, 98.0%] | 100.0% [100.0%, 100.0%] | 0.0% | 15.7% | 39.6% | ||
| Conversational | GPT-Image-2 med. | 19 | 88.6% | 98.8% [96.4%, 100.0%] | 38.1% [29.4%, 47.6%] | 61.2% | 22.2% | 49.1% | |
| Flare | 19 | 86.0% | 95.0% [88.5%, 100.0%] | 48.7% [39.2%, 57.7%] | 48.8% | 5.5% | 43.7% |
| Corpus | Endpoint | GPT-Image-2 medium | GPT-Image-2 low | Flare | Sunburst |
|---|---|---|---|---|---|
| CORD | success | 92% (106/115) | 94% (108/115) | 75% (86/115) | 87% (100/115) |
| survival | 98% (80/82) | 94% (75/80) | 89% (56/63) | 97% (74/76) | |
| joint | 93% (80/86) | 87% (75/86) | 65% (56/86) | 86% (74/86) | |
| never-edited kept | 93% (84/90) | 97% (87/90) | 82% (74/90) | 94% (85/90) | |
| WildReceipt | success | 91% (107/117) | 80% (94/117) | 82% (96/117) | 91% (106/117) |
| survival | 96% (81/84) | 94% (68/72) | 97% (71/73) | 98% (78/80) |
| Metric | GPT-Image-2 med. | GPT-Image-2 low | Flare | Sunburst | |
|---|---|---|---|---|---|
| In scene | Area | 2.4% | 2.7% | 4.1% | 3.9% |
| Width | 14% | 14% | 18% | 18% | |
| Wider | 85% | 94% | 100% | 100% | |
| Rel. px | 17.3 | 17.4 | 17.1 | 17.0 | |
| IoU | 0.908 | 0.904 | 0.902 | 0.932 | |
| Hero | Area | 12.3% | 12.0% | 12.7% | 12.4% |
| Arm (tokens) | Above ceiling | Intention to treat | No line |
|---|---|---|---|
| GPT-Image-2 medium (1,756) | 88% [78%, 96%] | 28% [22%, 35%] | 6 of 40 |
| Flare high (1,756) | 91% [85%, 95%] | 63% [58%, 68%] | 0 of 40 |
| Sunburst high (1,756) | 83% [73%, 90%] | 37% [31%, 42%] | 0 of 40 |
| GPT-Image-2 high (7,024) | 82% [71%, 91%] | 23% [18%, 29%] | 5 of 40 |
| Flare max (7,024) | 95% [92%, 98%] | 67% [60%, 74%] | 1 of 40 |
| Sunburst max (7,024) | 82% [73%, 90%] | 30% [26%, 35%] | 0 of 40 |
| Round (arm) | Generator | Route | Mask | Prompt | Run | Attempts | Refused (95% CI) | Isolates |
|---|---|---|---|---|---|---|---|---|
| v2 | GPT-Image-2 | gateway | drawn box | 5 clauses | Apr 2026 | 4,062 | 10% | — |
| v3 (Flare arm) | 2.5-flare | direct | alpha | 4 sentences | Sep 2026 | 1,000 | 0.40% [0.16%, 1.02%] | — |
| v3 (Sunburst arm) | 2.5-sunburst | direct | alpha | 4 sentences | Sep 2026 | 1,000 | 0.30% [0.10%, 0.88%] | — |
| v3 (control arm) | GPT-Image-2 | direct | alpha | 4 sentences | Sep 2026 | 400 | 0.25% [0.04%, 1.40%] | generation |
| DocTamper | AUC [90% CI] | Margin | 0.05 | 0.10 |
|---|---|---|---|---|
| Flare | 0.588 [0.578, 0.597] | 0.097 | no | yes |
| Sunburst | 0.599 [0.588, 0.610] | 0.110 | no | no |
| GPT-Image-2 low | 0.613 [0.590, 0.635] | 0.135 | no | no |
| GPT-Image-2 med. | 0.615 [0.592, 0.636] | 0.136 | no | no |
| Flare low | [ , ] | 0.044 | ||
| Flare med. | [ , ] | 0.044 |
| Out. tokens | $/image | GPT-Image-2 | Flare | Sunburst |
|---|---|---|---|---|
| 196 | 0.006 | 0.881 [0.852, 0.909] (21.2 s) | 0.903 [0.878, 0.927] (13.4 s) | 0.893 [0.864, 0.919] (16.7 s) |
| 439 | 0.013 | — | 0.890 [0.861, 0.917] (16.3 s) | 0.918 [0.894, 0.939] (20.7 s) |
| 1,756 | 0.053 | 0.880 [0.850, 0.908] (51.9 s) | 0.888 [0.859, 0.914] (21.4 s) | 0.917 [0.895, 0.937] (37.1 s) |
| 3,122 | 0.094 | — | 0.889 [0.861, 0.915] (31.6 s) | 0.914 [0.889, 0.936] (58.5 s) |
| 7,024 | 0.211 | 0.897 [0.869, 0.921] (151.3 s) | 0.916 [0.886, 0.941] (51.7 s) | 0.935 [0.912, 0.958] (105.9 s) |
| 4K high | 0.898 [0.850, 0.940] | 0.823 [0.762, 0.873] | 0.775 [0.714, 0.832] | |
| Task | Control | GPT-Image-2 s | Flare s | Sunburst s | Ratio, Flare | Ratio, Sunburst | |
|---|---|---|---|---|---|---|---|
| E1 edits | low | 199 (199) | 13.0 | 10.8 | 13.5 | 1.19 [1.15, 1.21] | 0.97 [0.94, 0.99] |
| E1 edits | medium | 200 (200) | 30.9 | 10.8 | 13.5 | 2.75 [2.59, 2.86] | 2.26 [2.20, 2.31] |
| E2a receipt chains | medium | 12 (3) | 31.6 | 11.7 | 15.5 | 2.86 [2.63, 3.15] | 2.03 [1.91, 2.21] |
| E2b stateless | medium | 18 (3) | 39.3 | 13.3 | 19.1 | 2.96 [2.85, 3.13] | 2.13 [2.05, 2.21] |
| E2b conversational | medium | 115 (20) | 41.2 | 16.0 | 21.2 | 2.57 [2.56, 2.64] | 1.97 [1.93, 2.00] |
| E3 references | medium | 9 (6) | 40.4 | 12.9 | 19.0 | 3.15 [2.83, 3.42] | 2.17 [1.97, 2.18] |
| Component | Version |
|---|---|
| Image models | gpt-image-2 , gpt-image-2.5-flare , gpt-image-2.5-sunburst |
| Relay (E2b conv.) | gpt-5.4-nano-2026-03-17 |
| OCR | easyocr 1.7.2, torch 2.10.0+cu128, English, GPU; E4 mag_ratio=1.0 ; allowlist ACDEFHKLMNPQRTUWXYZ |
| Grounding (E2b) | OWLv2 google/owlv2-base-patch16-ensemble |
| TruFor | trufor.pth.tar , grip-unina/TruFor release v1.0 |
| DocTamper | released checkpoint dtd_doctamper |
Image Editing Evaluation
Image editing evaluation measures whether edits follow instructions while preserving identity, context, and visual quality.
See all 92 papers