Generation, edits, and batch on one model
v1/images/generations, v1/images/edits, and v1/batch all serve gpt-image-2. One model ID covers the create path, the edit path, and the asynchronous bulk path, which keeps the integration small.
OpenAI's current image model does generation, edits, and inpainting through the Images API, and it bills by token rather than per image. That is the detail worth internalising before you build: cost scales with resolution and detail rather than sitting at a fixed rate, so a naive integration can produce a bill nobody forecast. Handled properly, the batch path and image-input caching cut it substantially.
Image output bills at $30 per million tokens rather than at a fixed price per picture, so cost moves with resolution and detail. Google's Nano Banana Pro takes the opposite approach at $0.134 for a 1K or 2K image and $0.24 at 4K, which you can put in a quote before you build. If you need a number for a client, that difference matters more than image quality does.
Image input is $8 per million tokens and $2 cached, with text input at $5 and $1.25 cached. Any editing workflow that repeatedly references the same source image or the same style reference should be structured so those tokens hit the cache, because they are otherwise the largest line on an editing bill.
The batch endpoint runs at 50% of standard rates. Catalogue imagery, variant generation, and asset pipelines almost never need a synchronous response, and moving them to batch is the single cheapest optimisation available on this model.
Tier 1 allows 5 images per minute and tier 3 allows 50, against token limits in the hundreds of thousands. For a bulk generation job the image-per-minute ceiling is what you will hit, and no amount of token headroom helps. Check your tier before you promise a delivery date on a catalogue run.
GPT-Image-2 produces images and does not answer questions about them. Document understanding, chart reading, and screen grounding go to the text models with image input: Claude Fable 5.1 for dense filings, Gemini 3.1 Pro for volume document processing, GPT-6 Astra for screens. Two different families of model wearing the same word.
The comparison that decides most builds is against Google's image models, because they are the direct alternative and they price on a completely different basis.
| Dimension | vs Nano Banana Pro | vs Nano Banana 2 |
|---|---|---|
How you forecast cost | Token pricing against per-image pricing. Nano Banana Pro is $0.134 for a 1K or 2K image and $0.24 at 4K, which is a number you can put in a proposal. GPT-Image-2 needs a measured average from your own prompts and resolutions before you can quote anything. | Nano Banana 2 is cheaper still at $0.067 for 1K and $0.151 at 4K, with a 512px tier that neither of the others offers. For high-volume generation where each image does not have to be exceptional, it sets the price floor. |
Reference images and consistency | Nano Banana Pro takes up to six object references but does not support character consistency or style references. If you need a recurring character or a locked house style, neither Pro nor GPT-Image-2 is the obvious answer. | Nano Banana 2 has the widest surface here: up to 10 object references, 4 character references for consistency, and 3 style references. For brand and character work that is a functional difference rather than a quality one. |
Editing | Both do inpainting, and both expose a dedicated edit path. Google documents semantic masking, which is the more useful shape when you want to change an object rather than a rectangle. | Same editing surface as Pro at half the price. If the edit does not need the top tier's fidelity, the cheaper model does the same job. |
Provenance and text in images | Every Google-generated image carries a SynthID watermark, and both Nano Banana models render legible stylised text well enough for infographics, menus, and marketing assets. Text rendering used to be the thing that ruled generation out of commercial work. | Same on both Google models. If provenance marking is a compliance requirement rather than a preference, that is a point in Google's favour and worth confirming against your own policy. |
We do not treat image generation as a single vendor decision. The generation call sits behind the same abstraction as everything else, so a catalogue pipeline can run on the cheapest model that passes review while a hero asset routes to the top tier.
v1/images/generations, v1/images/edits, and v1/batch all serve gpt-image-2. One model ID covers the create path, the edit path, and the asynchronous bulk path, which keeps the integration small.
Edit a region rather than regenerating the whole image. This is what makes generation usable in a production asset pipeline, where the job is usually to change one thing about an approved image rather than to roll the dice again.
A quarter of the $8 uncached rate. Editing workflows that reference the same source or style image repeatedly should be structured to hit that cache, because otherwise the reference is the biggest line on the bill.
The batch endpoint runs at 50% of standard rates. Most generation is not interactive, so this is the default we reach for and the exception is a user waiting on a preview.
gpt-image-2-2026-04-21 is the default snapshot. Pin it explicitly in production: image models change their aesthetic between snapshots in ways that are hard to catch in tests and very easy for a brand team to notice.
From 5 images per minute at tier 1 to 250 at tier 5. This is the real constraint on bulk work, and it is worth checking before you scope a catalogue job rather than after.
A small surface with two traps in it. Both are about assuming this model behaves like the text models you already integrate.
GPT-Image-2 generates and edits images. It does not describe them, answer questions about them, extract text from them, or ground a click on a screen. Those jobs go to text models with image input. Teams routinely discover this after choosing the model on the strength of the word vision, so settle which job you actually have first.
output: imageTier 1 is 5 images per minute against 100,000 TPM. A bulk job hits the image ceiling long before the token ceiling, and token headroom does nothing for you. Plan concurrency around IPM and use the batch endpoint for anything large.
tier 1: 100,000 TPM · 5 IPMImage input caches at $2 per million against $8, and text input at $1.25 against $5. Structure editing and style-reference workflows so the repeated image lands in the cache rather than being re-sent cold on every call.
image in: $8 · cached: $2 · text in: $5 · cached: $1.25Send anything asynchronous through v1/batch. Catalogue generation, variant runs, and asset backfills all qualify, and the only workloads that genuinely need the synchronous path are the ones with a person watching a spinner.
v1/batch: 0.5xPin the snapshot. gpt-image-2-2026-04-21 is the current default, and an unpinned model ID means the house style of your generated assets can shift under you without a deploy. That is a class of regression no test suite in this codebase would catch, and the people who notice it first are usually the client.
The limits, the endpoints, and the lines that decide whether this model fits your transport and your budget. Kept here so nobody has to reconstruct it from three vendor pages.
| Model ID | gpt-image-2 |
|---|---|
| Default snapshot | gpt-image-2-2026-04-21 |
| Input | Text and image |
| Output | Image |
| Endpoints | v1/images/generations, v1/images/edits, v1/batch |
| Editing | Inpainting |
| Image output | $30 / MTok |
| Image input | $8 / MTok, cached at $2 / MTok |
| Text input | $5 / MTok, cached at $1.25 / MTok |
| Rate limits, tier 1 | 100,000 TPM, 5 images per minute |
| Rate limits, tier 3 | 800,000 TPM, 50 images per minute |
| Rate limits, tier 5 | 8,000,000 TPM, 250 images per minute |
| Not supported | Chat Completions, Responses, Realtime. It is not a general vision model and does not answer questions about an image |
Per million tokens, standard tier. Set against Google's per-image rates, because that is the comparison that actually decides a build.
| Image output | $30.00 | Scales with resolution and detail. Measure your own average before quoting. |
|---|---|---|
| Image input | $8.00 | Cached at $2.00. Matters most in editing and style-reference flows. |
| Text input | $5.00 | Cached at $1.25. |
| Batch | 0.5x | Half rates on the asynchronous path. The default for anything not interactive. |
| Nano Banana Pro | $0.134 / image | 1K or 2K. $0.24 at 4K. Batch at $0.067 and $0.12. |
| Nano Banana 2 | $0.067 / image | 1K. $0.045 at 512px, $0.101 at 2K, $0.151 at 4K. |
The structural difference matters more than the rates. Token pricing means you cannot quote a client a per-image cost until you have measured your own prompts and resolutions, and it means an increase in requested detail raises the bill without anyone changing a setting. Per-image pricing is legible on day one. We measure a representative sample through both before committing, and on high-volume work the Google models have usually come out cheaper and easier to forecast, while OpenAI stays in the mix where the pipeline is already there.
Google watermarks every generated image with SynthID, and Anthropic now ships C2PA Content Credentials on media its models produce. Disclosure obligations for synthetic media are tightening, particularly under the EU AI Act. If your compliance position needs a provenance marker, confirm what your chosen model actually applies rather than assuming it applies one.
Who owns the output, what the training data was, and whether a generated likeness or a recognisable style creates exposure are all live commercial questions rather than settled ones. We put them on the table at the start of an engagement, because discovering them during a brand review is considerably more expensive.
An unpinned image model can change its default look between snapshots. Nothing fails, no test goes red, and the assets simply stop matching the ones already approved. Pin the snapshot, keep a reference set, and diff new output against it before you roll a version forward.
On most engagements the deciding factor has not been which model draws better, it has been whether the team can quote a number. Per-image pricing lets you write a line in a proposal. Token pricing needs a measurement exercise first, and that is a real cost on a fixed-price build.
Half rates for asynchronous work, and almost all asset generation is asynchronous once you look at it honestly. We treat a synchronous generation call as something that needs justifying rather than as the normal path.
Character consistency and style references are functional requirements for most commercial imagery, and support for them varies more between models than raw quality does. Nano Banana 2 currently has the widest surface, which is a strange result given it is the cheap tier, and worth checking against your actual brief.
Vision means generating pictures and it means reading documents, and those are entirely different models with different vendors leading each. Half the confusion we untangle on vision projects is a team having chosen a generation model for a comprehension job.
This is the cheapest insurance in the whole category and the one most teams skip. An unpinned model means your approved brand assets and next month's output can diverge quietly, and you find out from the client rather than from CI.
Every model we integrate runs through the same operating system. Three pillars, sixteen layers, one Compound Growth Loop. The methodology that keeps AI work from rotting after the first ship.
Read the K-FrameworkDirect API integration with the model. No LangChain, no orchestration vendor, no agent framework built on quicksand. Typed contracts, the same way we wire up Postgres.
An eval suite built from your real tasks gates every prompt and model change. Quality is measured before it ships, not vibed in a demo.
Governance, audit, and oversight wired in from day one. Who called what, with which prompt version, at what cost. Your auditors get answers, not screenshots.
A model in production without observability is roulette. We instrument every integration so engineering and finance can see the same numbers, and so a regression at 3am surfaces before a customer opens a ticket.
Tokens in, tokens out, dollars spent. Sliced by feature, tenant, and route. Budgets enforced where it matters.
Real distributions, not averages. We know which routes are slow, and why.
The same eval suite that gates a release runs continuously in production. A regression on real traffic surfaces fast.
PII scrubbed at the proxy, shipped to your SIEM. Retention controls match your compliance window.
Dashboards your team owns, not ours. At handoff you get the queries, the alerts, and the runbook. We are not in the path to read your metrics.