---
title: "GPT-Image-2: Pricing, Specs, and How It Compares to Nano Banana"
description: "A senior lab's read on GPT-Image-2: $30 per million output tokens against Google's per-image rates, and why token pricing changes how you quote."
source: "https://www.kensink.com/models/vision/gpt-image-2/"
canonical: "https://www.kensink.com/models/vision/gpt-image-2/"
---
★ FLAGSHIP · TOKEN-PRICED GENERATION OpenAI Model brief

OPENAI · IMAGE GENERATION + EDITING · IMAGES API

# GPT-Image-2. Priced by tokens, not by picture.

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.

Images API gpt-image-2 Inpainting Batch

[Use it on your project →](https://www.kensink.com/contact) [OpenAI documentation ↗](https://developers.openai.com/api/docs/models/gpt-image-2)

Released

Apr 2026

Model ID

gpt-image-2

Image out

$30 / 1M tokens

Image in

$8 / 1M tokens

Modalities

Text + image → image

Endpoints

Generations, edits, batch

Editing

Inpainting

Snapshot

gpt-image-2-2026-04-21

\[TL;DR FOR CEO + CTO\]

## What to know.

-   01
    
    ### Token pricing changes how you have to budget.
    
    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.
    
-   02
    
    ### Image input is cached at a quarter of the rate.
    
    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.
    
-   03
    
    ### Batch halves it, and most generation is not interactive.
    
    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.
    
-   04
    
    ### Images per minute is the limit that will bite, not tokens.
    
    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.
    
-   05
    
    ### It generates. It does not read.
    
    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.
    

\[SOFTWARE DEVELOPMENT IMPACT\]

## What it changes for the team building with it.

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.

\[WHAT IS NEW\]

## The features that ship with it.

01

### 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.

02

### Inpainting

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.

03

### Cached image input at $2 per million

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.

04

### Batch at half price

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.

05

### A pinned snapshot

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.

06

### Image-per-minute limits that scale with tier

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.

\[WHAT CHANGES IN YOUR CODE\]

## The API surface, exactly.

A small surface with two traps in it. Both are about assuming this model behaves like the text models you already integrate.

Watch out

### It is not a vision model

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: image
```

Watch out

### Image-per-minute limits, not just token limits

Tier 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 IPM
```

New

### Cached image and text input

Image 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.25
```

New

### Batch at 50%

Send 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.5x
```

Pin 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 SPEC\]

## Everything an integration depends on.

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.

<table class="w-full min-w-[560px] border-collapse text-left"><tbody><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Model ID</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">gpt-image-2</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Default snapshot</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">gpt-image-2-2026-04-21</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Input</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">Text and image</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Output</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">Image</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Endpoints</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">v1/images/generations, v1/images/edits, v1/batch</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Editing</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">Inpainting</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Image output</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">$30 / MTok</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Image input</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">$8 / MTok, cached at $2 / MTok</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Text input</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">$5 / MTok, cached at $1.25 / MTok</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Rate limits, tier 1</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">100,000 TPM, 5 images per minute</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Rate limits, tier 3</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">800,000 TPM, 50 images per minute</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Rate limits, tier 5</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">8,000,000 TPM, 250 images per minute</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[34%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Not supported</th><td class="p-4 align-top text-[14px] leading-relaxed text-ink-2">Chat Completions, Responses, Realtime. It is not a general vision model and does not answer questions about an image</td></tr></tbody></table>

\[PRICING\]

## What it costs to run.

Per million tokens, standard tier. Set against Google's per-image rates, because that is the comparison that actually decides a build.

<table class="w-full min-w-[560px] border-collapse text-left"><tbody><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Image output</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">$30.00</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">Scales with resolution and detail. Measure your own average before quoting.</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Image input</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">$8.00</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">Cached at $2.00. Matters most in editing and style-reference flows.</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Text input</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">$5.00</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">Cached at $1.25.</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Batch</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">0.5x</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">Half rates on the asynchronous path. The default for anything not interactive.</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Nano Banana Pro</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">$0.134 / image</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">1K or 2K. $0.24 at 4K. Batch at $0.067 and $0.12.</td></tr><tr class="border-b border-rule last:border-b-0"><th scope="row" class="w-[30%] bg-paper-3 p-4 align-top font-mono text-[10.5px] font-normal uppercase tracking-mono-wide text-ink-4">Nano Banana 2</th><td class="w-[22%] p-4 align-top text-[15px] font-bold text-ink">$0.067 / image</td><td class="p-4 align-top text-[13px] leading-relaxed text-ink-4">1K. $0.045 at 512px, $0.101 at 2K, $0.151 at 4K.</td></tr></tbody></table>

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.

\[RISK + GOVERNANCE\]

## What to watch.

### Provenance is a live requirement, not a nice-to-have.

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.

### Generated imagery carries rights questions your client will ask.

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.

### Aesthetic drift is a real production risk.

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.

\[OUR TAKE\]

## How we are using it.

01

### Pick the pricing model before you pick the image model.

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.

02

### Batch is the default and interactive is the exception.

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.

03

### Reference-image support decides brand work.

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.

04

### Do not let one word merge two families.

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.

05

### Pin the snapshot on day one.

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.

\[METHODOLOGY · K-FRAMEWORK\]

## Integrated through the  
K-Framework.

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-Framework](https://www.kensink.com/k-framework)

01

### Foundations

Direct 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.

02

### Amplification

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.

03

### Judgment

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.

\[OBSERVABILITY\]

## Observability your team can read.

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.

Instrumented

### Cost per call

Tokens in, tokens out, dollars spent. Sliced by feature, tenant, and route. Budgets enforced where it matters.

Instrumented

### Latency p50 / p95 / p99

Real distributions, not averages. We know which routes are slow, and why.

Instrumented

### Eval pass rates

The same eval suite that gates a release runs continuously in production. A regression on real traffic surfaces fast.

Instrumented

### Prompt + completion logs

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.

\[COMMON QUESTIONS\]

## Questions we are getting asked.

Can GPT-Image-2 read a document or answer questions about an image?

No. It generates and edits images. Reading documents, extracting tables, interpreting charts, and grounding clicks on a screen all go to text models with image input: Claude Fable 5.1 for dense filings and charts, Gemini 3.1 Pro for volume document processing, GPT-6 Astra for screen grounding. Choosing a generation model for a comprehension job is the most common mistake in this category.

How much does one image actually cost?

There is no single number, which is the honest answer and also the problem. Output bills at $30 per million tokens and token count scales with resolution and detail, so you have to measure a representative sample of your own prompts to get an average. If you need a figure before you build, Google's per-image pricing at $0.134 for 1K or 2K and $0.24 at 4K gives you one immediately.

Which model should we use for brand and character work?

Test Nano Banana 2 first, which is counterintuitive because it is the cheap tier. It supports up to 4 character references for consistency and 3 style references, where Nano Banana Pro takes object references but not character or style ones. For recurring characters and a locked house style that is a capability difference, not a quality one.

What limits will we hit first at scale?

Images per minute, not tokens. Tier 1 allows 5 images per minute and tier 3 allows 50, against token limits in the hundreds of thousands. A bulk catalogue job is constrained by the image ceiling, so plan concurrency around it and push the work through the batch endpoint at half price.

Do generated images carry a watermark?

Google applies SynthID to every image its models generate, and Anthropic ships C2PA Content Credentials on media produced through its code execution tool. Confirm the current position for whichever model you choose rather than assuming, because provenance requirements are tightening and this is exactly the kind of detail that changes between releases.

Should we pin a model snapshot?

Yes, always. gpt-image-2-2026-04-21 is the current default. Image models shift their default aesthetic between snapshots, and nothing in your test suite will catch it. Pin the version, keep a reference set of approved output, and compare before you move forward.

Share[](https://twitter.com/intent/tweet?url=https%3A%2F%2Fwww.kensink.com%2Fmodels%2Fvision%2Fgpt-image-2%2F&text=GPT-Image-2%20brief)[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.kensink.com%2Fmodels%2Fvision%2Fgpt-image-2%2F)

[View .md](https://www.kensink.com/models/vision/gpt-image-2.md)

\[RELATED\]

## Worth a look next.

[

MODEL

Nano Banana Pro (per-image pricing)

Read more

](https://www.kensink.com/models/vision/gemini-3-pro-image/)[

MODEL FAMILY

Vision (overview)

Read more

](https://www.kensink.com/models/vision/)[

MODEL

Claude Fable 5.1 (document vision)

Read more

](https://www.kensink.com/models/claude/fable-5-1/)

DIRECT INTEGRATION · NO FRAMEWORK

## Want GPT-Image-2  
in your product?

Eval suite at handoff, full source ownership. We integrate against the model API the same way we integrate against Postgres, and route by task at runtime. Sized to your scope.

[Start a conversation →](https://www.kensink.com/contact) [All Vision models](https://www.kensink.com/models/vision)
