GPT Image 2.5 references: OpenAI's page says 4, Sume accepts 16
OpenAI's image guide says up to four input images; Sume's docs allow 16 input_references on ChatGPT Image 2.5. The pages disagree, so test your count.

OpenAI's image-generation guide says 'up to four input images', while Sume's Image API docs say input_references takes a maximum of 16 on ChatGPT Image 2.5. Both statements are on their own pages, and they disagree. I could not reconcile them from the docs, so run your own test at the count you need.
The two numbers
Both numbers are quoted from the pages, not tested.
| Source | Limit | Where |
|---|---|---|
| OpenAI image guide | Up to four input images | Guide text |
| Sume Image API | 16 on ChatGPT Image 2.5, 10 on other models | Request schema and catalog descriptors |
A test that settles it
Do not plan a 12-reference workflow from a doc line alone. Send 4, then 5, then your target count, and look at three things: the HTTP status, whether the output uses the late references, and usage.cost.
- Models:
openai/gpt-image-2.5oropenai/gpt-image-2.5-sunburst. - Read the
input_referencesdescriptor fromGET /v1/images/modelsfirst; it is the source of truth for the catalog. - Reference URLs must be publicly reachable; a bad URL returns a failure, not an output.
- Sume validates references against the catalog descriptor, so read the error body if a count is rejected.
Cost of more references
Sume's Flare and Sunburst rates are the same: $30 per million output image tokens, $8 per million input image tokens and $5 per million input text tokens. More references mean more input image tokens, so a 16-reference call costs more than a 1-reference call.
Sources
Related posts
More in Developers
- GPT Image 2.5 output_compression returns 400 on Sume: use Pillow
OpenAI offers output_compression 0-100 for JPEG and WebP; Sume returns 400 unsupported_parameter for it. Request png, jpeg or webp, then compress with Pillow.
- Graph API rate-limit codes 4, 17, 32, 613: stop, reuse the Sume job
Meta documents error codes 4, 17, 32 and 613 for rate limits. Map each to a pause and publish the stored Sume result later instead of re-rendering.
- Graph API X-App-Usage call_count: pause a Reel publisher early
Meta's X-App-Usage header reports call_count, total_cputime and total_time as percentages. Read it after each call and pause your publisher before the limit.
- Griffin 10 ms audio packets vs Sume TTS: async jobs, no streaming
Tavus Griffin emits speech in packets as small as 10 ms. Sume's TTS Router lists streaming TTS as a non-goal, so audio arrives as a finished file for lip sync.
Written by Sume