MAI-Image-2.5 vs GPT-Image-2: Has Microsoft Caught Up with OpenAI?
Microsoft's in-house MAI-Image-2.5 family (2.5 / Flash / Pro, all Preview) versus OpenAI's GPT-Image-2 (medium / high, GA): the same ten prompts, one generation each, on Azure AI Foundry — 50 requests, 46 images. The answer isn't "whose images look better": text goes to GPT, people go to MAI — separated by one content-filter block and a 10x latency gap.
🔬 Hypothesis
The MAI-Image-2.5 family is good enough to replace GPT-Image-2 as the default production image model.
Criteria: across ten same-prompt scenes, MAI is no worse than GPT-Image-2 medium in at least half, and there is no category of work where it is simply unusable. Both hold → hypothesis confirmed; either fails → split by scenario.
0. Three claims to correct before we start
This study doesn't amplify vendor talking points — and it corrects our own internal quick-note where it was sloppy:
- "MAI-Image-2.5 is #2 on Arena" — The numbers don't agree. Microsoft's launch post says "No. 2", its own Foundry Labs page says "debuting at #3 (+74.5 ELO)", the official blog claims it "surpasses Nano Banana Pro's Arena score", and third-party write-ups split it as #3 text-to-image / #2 editing. Three Microsoft pages, two different ranks — this study takes no leaderboard rank as evidence and relies on its own same-prompt test instead. primary verified (conflict recorded)
- "GPT-Image-2 only supports three fixed resolutions" — False (our own internal note said this too; corrected here). Official docs: GPT-Image-2 supports arbitrary resolutions up to 4K (sides in 16px steps, 655,360–8,294,400 total pixels). It is MAI that caps out around 1024×1024 (each side ≥768). On resolution freedom GPT is stronger, not weaker. primary verified
- "MAI Flash costs $0.027 per image" — Overstated precision. Flash's image-output list price appears as both $26/M and $33/M (the latter from a write-up of the official announcement, itself noting a $19.50–33 range). The honest statement is a $0.027–0.034 range, not a point. secondary, conflict flagged
1. Experiment design (reproducible)
| Item | Setting |
|---|---|
| Platform | Azure AI Foundry (MAI via the proprietary /mai/v1/images/generations; GPT via the OpenAI images API, api-version 2025-04-01-preview) |
| Models | MAI-Image-2.5 (2026-06-02) / 2.5-Flash (2026-06-02) / 2.5-Pro (2026-06-19), all Preview, GlobalStandard, quota maxed at 12 RPM; GPT-Image-2 (2026-04-21, GA) at medium and high |
| Spec | 1024×1024 across the board, one generation per scene per tier, no retries, no cherry-picking — every image is raw output |
| Scenes | 10: simple subject / English poster / complex multi-object / two-person portrait / fashion shoot / cartoon detail instructions / F1 motion / dense bilingual poster / four-panel comic / child football |
| Output | 50 cells = 46 successes + 4 requests returning HTTP 400 (see scenes 05 / 10) |
| Ledger | Per-request latency, token usage and error codes in results.json (sanitized, public); the generation script is idempotent and skips completed cells |
Quality verdicts (Best / Solid / Drift) come from item-by-item checks against the prompt (text verbatim, instructions one by one). Countable defects like typos are this study's strongest evidence; the subjectivity of look-and-feel judgments is disclosed honestly in the adversarial section. All images on this page are downsampled copies of raw output, untouched; click any image to enlarge.
2. Overview: speed, price, and what we can already conclude
Three things decide the choice before aesthetics do: how long you wait, what each image costs, and which calls are already safe to make.
Generation latency
Flash: 15.8s median. GPT-Image-2 high: 158.3s median. Exactly a 10x spread.
Cost per image @1024×1024
Tokens per image come first-hand from the API usage fields of this run: MAI is a constant 1,024 tokens/image; GPT medium/high burn 1,756/7,024 — a 4x token gap that directly becomes a 4x price gap.
Token list prices (USD / 1M tokens)
| Model | Text in | Image in | Image out | Tokens/image |
|---|---|---|---|---|
| MAI-Image-2.5 | $5 | $8 | $47 | 1,024 (constant) |
| MAI-Image-2.5-Flash | $1.75–5* | $1.75–8* | $26–33* | 1,024 (constant) |
| MAI-Image-2.5-Pro | $5 | $8 | $106 | 1,024 (constant) |
| GPT-Image-2 (medium) | $5 | $8 | $30 | 1,756 (measured) |
| GPT-Image-2 (high) | $5 | $8 | $30 | 7,024 (measured) |
Text and fine instructions: GPT-Image-2 clearly ahead
Four straight wins: English poster, spatial details, dense Chinese poster, four-panel comic. Chinese opens the widest gap — GPT is near typo-free while all three MAI tiers make glyph-level errors. Posters, comics, anything with text: go straight to GPT.
People and portrait photography: under the default filter, MAI is the only option
Four-hands-in-frame: all three MAI tiers pass while GPT medium tangles fingers. On the fashion-shoot and child-football scenes, both GPT tiers were blocked by content filtering (HTTP 400). Boundary note: Azure OpenAI filter thresholds are configurable (full opt-out needs approval); this conclusion holds under the default configuration.
Speed: a 10x spread end to end
Flash's 15.8s median is one tenth of GPT high's 158.3s. GPT's latency is consistent with its thinking/routing design — a tier characteristic rather than a fault, but a hard constraint for interactive workloads.
Cost: a wash within tiers — the tier choice is the variable
MAI-2.5 at ≈$0.048/image ≈ GPT medium ($0.053), about a quarter of GPT high ($0.211). The untested GPT low tier costs just $0.006/image — if its quality clears your bar, the cost conclusion flips.
IP tendencies: MAI invents brands, GPT paints real liveries
In the F1 scene both GPT tiers painted real team liveries while MAI leaned fictional. Safer for commercial use on MAI's side — but this is a single-scene observation (n=1), not evidence of a systematic policy difference.
3. Price and capability
Same platform, two different product shapes — resolution freedom, protocol, editing and content policy often decide the choice before image quality does. All rows are official-doc facts (verified 2026-08-05), with two errors from our internal note corrected.
Output spec
| MAI-Image-2.5Microsoft | MAI-Image-2.5-FlashMicrosoft | MAI-Image-2.5-ProMicrosoft | GPT-Image-2 (medium)OpenAI | GPT-Image-2 (high)OpenAI | |
|---|---|---|---|---|---|
| Resolution | Free width×heightEach side ≥768, total pixels ≤1,048,576 (≈1024² cap) | Free width×heightEach side ≥768, total pixels ≤1,048,576 (≈1024² cap) | Free width×heightEach side ≥768, total pixels ≤1,048,576 (≈1024² cap) | Arbitrary up to 4KSides in 16px steps, 655,360–8,294,400 total pixels (official docs) | Arbitrary up to 4KSame; this test used 1024×1024 across the board |
| Quality tiers | Single tierNo quality parameter | Single tierNo quality parameter | Single tierNo quality parameter | low / medium / highThis run tested medium | low / medium / highThis run tested high |
| Output format | PNG (b64)Fixed | PNG (b64)Fixed | PNG (b64)Fixed | PNG/JPEG (b64)Format parameter available | PNG/JPEG (b64)Format parameter available |
| Images per call | 1No n parameter | 1No n parameter | 1No n parameter | n = 1–10Batch supported | n = 1–10Batch supported |
API and capability
| MAI-Image-2.5Microsoft | MAI-Image-2.5-FlashMicrosoft | MAI-Image-2.5-ProMicrosoft | GPT-Image-2 (medium)OpenAI | GPT-Image-2 (high)OpenAI | |
|---|---|---|---|---|---|
| Protocol | Proprietary /mai/v1Not OpenAI-compatible; needs adaptation | Proprietary /mai/v1Not OpenAI-compatible; needs adaptation | Proprietary /mai/v1Not OpenAI-compatible; needs adaptation | OpenAI images-compatibleExisting SDKs just work | OpenAI images-compatibleExisting SDKs just work |
| Editing | Text-to-image + image-to-imageMultipart edits API | Text-to-image + image-to-imageMultipart edits API | Text-to-image + image-to-imageMultipart edits API | Edits + mask inpaintingInpaint supported | Edits + mask inpaintingInpaint supported |
| Prompt limit | 32K tokens | 32K tokens | 32K tokens | Per images API limits | Per images API limits |
| Content-safety outcome | People scenes all passedFashion shoot and child-football both generated | People scenes all passedSame | People scenes all passedSame | People scenes all blockedBoth realistic-people scenes blocked under the default filter (HTTP 400) | People scenes all blockedSame |
| Filter configurability | No documented control surfaceDocs advise layering your own safety governance | No documented control surfaceSame | No documented control surfaceSame | Thresholds configurableLow/medium/high; full opt-out needs Limited Access approval | Thresholds configurableSame; this run used the defaults |
Price and quota
| MAI-Image-2.5Microsoft | MAI-Image-2.5-FlashMicrosoft | MAI-Image-2.5-ProMicrosoft | GPT-Image-2 (medium)OpenAI | GPT-Image-2 (high)OpenAI | |
|---|---|---|---|---|---|
| Token price / 1M | $5 / $8 / $47Text in / image in / image out | Price sources conflict$5/$8/$26 (internal note) vs $1.75/$1.75/$33 (official-announcement write-up) | $5 / $8 / $106Top-fidelity tier | $5 / $8 / $30Batch half-price; cached input $2/M | $5 / $8 / $30Batch half-price; cached input $2/M |
| Cost per image | ≈$0.048Constant; no size-based jumps | ≈$0.027–0.034Range due to the price-source conflict | ≈$0.109About 2.3x the base 2.5 | ≈$0.053@1024²; the untested low tier is just $0.006 | ≈$0.211@1024²; about 4x medium |
| Rate limit | 12 RPMGlobalStandard quota maxed (official tiers top out at 12 RPM/subscription/region for the 2.5 family) | 12 RPMSame | 12 RPMSame | 12 RPMThis test environment | 12 RPMThis test environment |
All three MAI-Image-2.5 models are Preview (no SLA, 7 regions only); prices verified 2026-08-05; per-image costs computed at 1024×1024. Matrix in one line: GPT leads on resolution freedom, protocol compatibility, batch + mask editing and production maturity; MAI leads on people-photography availability (under the default filter) and latency; same-tier cost is a wash.
4. Ten scenes, image by image
The same prompt sent to all five tiers, 1024×1024, one shot, no retries. Every card shows measured latency and a verdict (Best / Solid / Drift / Blocked); click any image to enlarge.
Simple subject · Ginger cat on a windowsill
Baseline texture and lighting — how good is the foundation with a single subject, no text, no complex instructions.
Show the original prompt



On narrow screens, swipe sideways to compare all five tiers
Product poster · English text
Short English text rendering and commercial design sense — can it spell both the headline and the tagline.
Show the original prompt


On narrow screens, swipe sideways to compare all five tiers
Complex scene · Inventor's workshop
Multi-object instruction following, reflections and spatial reasoning — the key test is whether three cats land in their assigned spots.
Show the original prompt



On narrow screens, swipe sideways to compare all five tiers
Two-person portrait · Pottery studio
Faces, hands and skin — four hands in one frame is the classic failure point.
Show the original prompt


On narrow screens, swipe sideways to compare all five tiers
Editorial photoshoot · Real person
Full-body portrait, fabric and depth of field — and the dividing line for the platform's content-safety policy.
Show the original prompt



Request rejected by content filtering (HTTP 400)
Request rejected by content filtering (HTTP 400)
On narrow screens, swipe sideways to compare all five tiers
Cartoon mascot · Fox astronaut
Fine-grained instruction following in sticker style — golden key, chest star patch, and a band-aid on the right ear, checked item by item.
Show the original prompt



On narrow screens, swipe sideways to compare all five tiers
F1 at speed
Motion blur and complex machinery — panning, spray and front-wing structure all at once.
Show the original prompt


On narrow screens, swipe sideways to compare all five tiers
Dense bilingual poster (CJK)
CJK text rendering — agenda, speakers and ticketing in mixed Chinese/English, all of it expected legible and correct.
Show the original prompt


On narrow screens, swipe sideways to compare all five tiers
Four-panel comic
Paneling, character consistency and bilingual speech bubbles — the same two characters must stay themselves across four panels.
Show the original prompt
On narrow screens, swipe sideways to compare all five tiers
Real child · Street football
Photoreal child portrait plus a frozen high-speed moment — and a second probe of the safety policy on realistic photos of children.
Show the original prompt



Request rejected by content filtering (HTTP 400)
Request rejected by content filtering (HTTP 400)
On narrow screens, swipe sideways to compare all five tiers
5. Decision matrix
| Dimension | MAI-Image-2.5 family | GPT-Image-2 | Leans |
|---|---|---|---|
| Dense Chinese / CJK text | Weak (glyph-level typos, all three tiers) | Strong (near typo-free at both tiers) | GPT |
| Fine instruction following (spatial) | Medium (mirrored details, missed items) | Strong (item-by-item correct) | GPT |
| People / portrait photography (default filter) | Strong (all passed, high quality) | Unusable (requests blocked) | MAI (only option) |
| Latency | Strong (15.8–31.8s medians) | Weak (58.5–158.3s medians) | MAI |
| Cost per image @1024² | $0.027–$0.109 | $0.006 (low, untested) – $0.211 | A wash within tiers |
| Resolution freedom | Weak (≈1024² cap) | Strong (arbitrary up to 4K) | GPT |
| Integration cost (protocol/SDK) | Weak (proprietary /mai/v1) | Strong (OpenAI-compatible) | GPT |
| Production maturity (SLA/quota/regions) | Weak (Preview, 7 regions, 12 RPM) | Strong (GA) | GPT |
| Commercial IP posture | Leans fictional brands (n=1) | Paints real liveries (n=1) | Thin evidence; leans MAI |
Matrix in one line: GPT leads on text, fine instructions, resolution, integration and maturity; MAI leads on people-photography availability (a hard gate) and latency; cost within tiers is a wash. There is no overall winner — splitting the traffic is the only rational answer.
6. Adversarial check: where these conclusions could be wrong
Per the methodology, we hunted for counter-examples before synthesizing. Each of these genuinely narrows the conclusions:
- "GPT is unusable for people" depends on the default filter config. Azure OpenAI filter thresholds are configurable, and full opt-out exists behind Limited Access approval. Whether s5/s10 pass at lowered thresholds was not tested — for organizations that can clear that approval, the "only option" claim may not hold. Also: the four failed requests' response bodies were not archived (the ledger has status codes only); "content filtering" is an inference from failures clustering exclusively on the two realistic-people scenes, same-day 2/2 reproduction, and exact consistency with the documented 400 + content_filter behavior.
- Thin samples: n=1 per scene per tier, single-reviewer verdicts. Typos are objective and countable — the strongest evidence here; "nicer fur texture" judgments carry no statistical weight at n=1, and we deliberately kept them out of the conclusions.
- The cost conclusion can flip on the low tier: GPT low at ≈$0.006/image was not quality-tested. If it clears your quality bar, the cost dimension flips entirely to GPT — an explicitly unverified branch.
- Latency was sampled in one region on one day (and GPT and MAI in different regions). Absolute values will drift with load; the 10x magnitude matches both vendors' tier designs (Flash tuned for throughput vs GPT's thinking/routing layer), so the magnitude is robust while exact values are not.
- Freshness: the MAI family is Preview and iterating fast (five image models shipped in 2026 already); prices and quotas can move. All external facts were verified 2026-08-05; treat them as stale after a quarter.
✅ Conclusion
Partially confirmed — the verdict splits by content type. "MAI no worse than GPT medium in half the scenes" holds (people, photorealism, latency and cost all clear the bar or better); "no whole-category hard failure" does not — all three MAI tiers make glyph-level errors on dense Chinese text, so MAI cannot replace GPT for text work.
Practical routing: general imagery and people photography → MAI-Image-2.5 (Flash for high-volume low-latency work, but it is the weakest at text; Pro buys visual density, not instruction following, and has the same Chinese typos — the base 2.5 is the value pick); text posters, comics and strict-instruction work → GPT-Image-2 medium; the high tier costs ~3x the latency and ~4x the price, worth it only at extreme text density.
Validity bounds: these conclusions hold under Azure's default content filter, at 1024×1024, single-shot generation, August 2026 versions and prices. If you can get filter-config approval, if GPT low clears your quality bar, or if you need 4K output — re-evaluate via the adversarial section.
📚 Citations (primary first; verified 2026-08-05)
This study's ledger, results.json (per-request latency/tokens/errors, sanitized) primary · own experiment
Microsoft Learn: MAI image models (protocol/regions/resolution/quota/Preview) primary
MAI-Image-2.5 + Flash launch (2026-06-02; 2.5 pricing $5/$8/$47) primary
MAI-Image-2.5-Pro announcement (2026-07-23; $106/M image-out) primary
Microsoft AI: seven models (vendor leaderboard claims, not independently verified) primary
Foundry Labs: MAI-Image-2.5 (the #3 side of the rank conflict) primary
GPT-image-2 GA (2026-04-21; arbitrary resolution up to 4K) primary
Microsoft Learn: OpenAI image models (quality/n/inpaint/contentFilter) primary
Microsoft Learn: content filtering (400 + content_filter; configurable thresholds) primary
WaveSpeed: Flash pricing write-up ($1.75 in / $33 out, with a stated range) secondary
Mervin Praison: independent 2.5 pricing + Arena rank breakdown secondary
gpt-image-2 per-image cost reference (cross-consistent with futureagi/cloudprice) secondary
⚠️ Limitations and open questions (research honesty)
- The four failed requests kept only HTTP status codes; response bodies were not archived. "Content filtering" is inference (basis in adversarial item 1), not direct evidence.
- Flash's image-output list price conflicts across sources ($26/M vs $33/M); per-image cost is stated as a range. GPT's $30/M image-out could not be quoted from the official pricing page (dynamic rendering); it is multi-source-consistent and reconciles with measured tokens.
- Single generation per cell (n=1), single-reviewer verdicts, no inter-rater check; look-and-feel differences were not used as evidence.
- GPT low tier, 4K output and image-to-image edits were not quality-tested; the IP-posture observation is single-scene.
- The MAI family is Preview; versions, prices and quotas move fast. External facts verified 2026-08-05.
- All vendor benchmarks (Arena ranks, ELO deltas, "surpasses Nano Banana Pro") are unverified and were not used as evidence.























