# GPT Image 2 and 2.5: zero cached image inputs despite reusing reference images

**URL:** <https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063>\
**Category:** API\
**Tags:** image-generation, prompt-caching, gpt-image-2\
**Created:** [September 9, 2026, 1:17pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063 "2026-09-09T13:17:02Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![spartaz0rd](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/spartaz0rd/32/735745_2.png) [@spartaz0rd](https://community.openai.com/u/spartaz0rd)\
**Post date:** [September 9, 2026, 1:17pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/1 "2026-09-09T13:17:02Z")

</div>

I’m using `gpt-image-2` and `gpt-image-2.5` to generate illustrated stories, and I’m seeing no cached image-input usage despite repeatedly reusing the same character reference image.

Our setup:

- We call `/v1/images/edits`, uploading the reference image through multipart `image[]`.
- Each request uses the same reference image bytes but a different scene prompt.
- Some requests run concurrently, but others happen sequentially: we generate a cover and first-page preview, then generate the remaining pages later using the same reference image.

Both models list cached input pricing, but my usage dashboard shows zero cached image inputs. For example, filtering to `gpt-image-2` and our development API key shows approximately **75.2K uncached input tokens and zero cache-read tokens**.

I understand concurrent requests might arrive before a cache is populated. However, that doesn’t fully explain the absence of cache hits when we reuse the reference image in later requests.

Does image-input caching actually work on `/v1/images/edits` for these models? Does changing the text prompt prevent the reference image from being cached, even when its bytes are identical? Are there specific timing, input-order, or request-format requirements?

Has anyone confirmed successful caching through their usage dashboard or billing? A minimal working example would be very helpful.

---

<div class="post-metadata">

**Author:** ![EricGT](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/ericgt/32/20571_2.png) [@EricGT](https://community.openai.com/u/EricGT)\
**Post date:** [September 9, 2026, 1:27pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/2 "2026-09-09T13:27:26Z")

</div>

This topic has been raised before.

Below this topic, you’ll find a **Related topics** section. You may want to check those discussions to see what others have reported and whether any solutions or workarounds have been found.

* * *

Side note: I did try using Discourse AI search to find more relevant topics, the search result needs work.

> **[Search better in your community with Ask AI](https://meta.discourse.org/t/search-better-in-your-community-with-ask-ai/411346/32?u=ericgt)**
>
> Sometimes I wonder why you let met test these things. A user posted a new topic and asked a few questions in the topic. I looked at Related topics but did not see one that looked of value. The next item on this list was to have Discourse...

---

<div class="post-metadata">

**Author:** ![spartaz0rd](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/spartaz0rd/32/735745_2.png) [@spartaz0rd](https://community.openai.com/u/spartaz0rd)\
**Post date:** [September 9, 2026, 1:41pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/3 "2026-09-09T13:41:54Z")

</div>

I could not find any official response from the OpenAI team or any user that stated that could get the discounted rate for cached input images. Considering that we got a usage graph for this on the OpenAI Billing section, I expect that this is not the desired behavior.

---

<div class="post-metadata">

**Author:** ![\_j](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/_j/32/766292_2.png) [@\_j](https://community.openai.com/u/_j)\
**Post date:** [September 9, 2026, 2:11pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/4 "2026-09-09T14:11:06Z")

</div>

Same as it ever was: list a discount; do not deliver the discount.

Made easier when they also don’t deliver the pricing the thing costs?

> [@GPT-Image-1.5 rolling out in the API and ChatGPT](https://community.openai.com/t/gpt-image-1-5-rolling-out-in-the-api-and-chatgpt/1369443/48):
>
> - There is no usage report of cached, nor API shape for it in yaml spec, yet cached input is in the price list. Despite extensive repeated API calls in app development, I’ve not once received a single cached input token, with assurance I’m looking in the right place:

---

<div class="post-metadata">

**Author:** ![OpenAI\_Support](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/openai_support/32/561845_2.png) [@OpenAI\_Support](https://community.openai.com/u/OpenAI_Support)\
**Post date:** [September 21, 2026, 10:33pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/5 "2026-09-21T22:33:22Z")

</div>

Hi! `/v1/images/edits` doesn’t currently apply cached-input pricing when you reuse a reference image. Cached-image billing applies to the image-generation tool in Responses. I also tested sequential edits on GPT Image 2 with the same image; the Images API response didn’t report cache reads. Let me know if you have any questions!

-V

---

<div class="post-metadata">

**Author:** ![\_j](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/_j/32/766292_2.png) [@\_j](https://community.openai.com/u/_j)\
**Post date:** [September 22, 2026, 4:48am UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/6 "2026-09-22T04:48:34Z")

</div>

This needs a huge asterisk in the pricing table.

API users of image models are developers with applications that can target and expect to exploit a context window cache. They would not offer a “chat that can make images” on Responses that would only be a worse and more expensive ChatGPT with arbitrary re-billing of input images.

This is the pricing page. It gives a clear message: construct a sequence of model calls with large enough repeated input, you will receive a discount. Nothing about the endpoint.

 ![image](https://us1.discourse-cdn.com/openai1/original/4X/6/1/d/61dcb56e20dcd8a3093a6b425d58cdfdfb481767.png)

The discount is never delivered and the over-charge is 400%.  
The technology is there but is not working in the place with the most cleanly repeated partial input?

Then you have to document if edit images or mask are placed first or last around prompt text in the context sequence.

---

<div class="post-metadata">

**Author:** ![OpenAI\_Support](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/openai_support/32/561845_2.png) [@OpenAI\_Support](https://community.openai.com/u/OpenAI_Support)\
**Post date:** [September 22, 2026, 5:23pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/7 "2026-09-22T17:23:10Z")

</div>

On the ordering question: the images come before the text prompt, and a mask applies to the first image.

For ordinary /v1/images/edits calls, reusing the image doesn’t get cached-input pricing, regardless of changing the scene text or waiting between runs.

The pricing table should make this clearer! I've asked internally for confirmation of the wording and a working Responses example that shows cached-image pricing. Responses adds language-model costs too, so I'm not sure if it'll end up being the cheaper option.

Will reply here once I know more.

-V

---

<div class="post-metadata">

**Author:** ![OpenAI\_Support](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/openai_support/32/561845_2.png) [@OpenAI\_Support](https://community.openai.com/u/OpenAI_Support)\
**Post date:** [September 24, 2026, 9:04pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/8 "2026-09-24T21:04:57Z")

</div>

I confirmed with the image team that cached-input pricing is limited to the Responses image-generation tool. It doesn't currently apply to /v1/images/edits.

For anyone testing through Responses: image-tool cache hits count toward billing discounts, but /v1/responses doesn't return those cached-input counts. You can't verify an image-cache hit from the response JSON alone.

Let me know if there are any outstanding questions here!

---

<div class="post-metadata">

**Author:** ![spartaz0rd](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/spartaz0rd/32/735745_2.png) [@spartaz0rd](https://community.openai.com/u/spartaz0rd)\
**Post date:** [September 25, 2026, 7:50am UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/9 "2026-09-25T07:50:35Z")

</div>

Is there any plan to make cached-input also be applied for /v1/images/edits? It definitely feels more like a bug than an intended behavior, also considering it is not written anywhere in the documentation.

---

<div class="post-metadata">

**Author:** ![\_j](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/_j/32/766292_2.png) [@\_j](https://community.openai.com/u/_j)\
**Post date:** [September 25, 2026, 8:06am UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/10 "2026-09-25T08:06:02Z")

</div>

The edits API fails to deliver a discount on even identical requests. Not even changing a single output parameter (which might have internal context placement informing the AI that is undocumented).

Moreso: the API can accept n\>1 image outputs in one API request with the same prompt, receiving many variations from the same input. This seems like it should be an instant delivery of the remainder of the images at a cached or even free input pricing - as with Chat Completions.

This is certainly an area where OpenAI technology could have them internally enjoying the computation reduction and not sharing the win.

* * *

It seems the “responses” cache hits would be because the entirety of a growing chat is ran back into a parallel image model, an image model that is hitting you with a bill for observing the entire conversation. There, it is not even documented what breakpoint increments of token granularity or inside message content parts for “write” or “match” happen on this obfuscated second chat input that is going on to a multimodal image-output model that observes chats.

Is anything going to change from feedback?

**Expectation** : Documentation saying the cache pricing is untrue and, where actually plausible, still made unverifiable and unaccountable.

---

<div class="post-metadata">

**Author:** ![aprendendo.next](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aprendendo.next/32/721758_2.png) [@aprendendo.next](https://community.openai.com/u/aprendendo.next)\
**Post date:** [September 25, 2026, 11:51pm UTC](https://community.openai.com/t/gpt-image-2-and-2-5-zero-cached-image-inputs-despite-reusing-reference-images/1396063/11 "2026-09-25T23:51:02Z")

</div>

It looks like the documentation was just updated:

> **[Cached input pricing - Image generation | OpenAI API](https://developers.openai.com/api/docs/guides/image-generation#cached-input-pricing)**
>
> The API lets you generate and edit images from text prompts using gpt-image-2.5-sunburst and gpt-image-2.5-flare. Choose Sunburst for workflows where editing precision matters most, and Flare for fast, high-quality everyday image generation. You can...

 ![image](https://us1.discourse-cdn.com/openai1/original/4X/b/3/8/b386a12d2083eb6eff1fe5d4690cd8161b3c121a.png)
