gpt-image-2.5-flare and gpt-image-2.5-sunburst. Both accept the same parameters, enforce the same limits, and return the same response shape. Use whichever you prefer.
Two endpoints cover it:
How to pass parameters
Both endpoints take the same parameter set — only the endpoint and the request encoding change.
The image-to-image endpoint has two interchangeable request shapes. Pick whichever fits what you already have:
- You have the bytes (a local file, or a file from another API) →
multipart/form-datawith a file upload. - You have a URL (object storage such as TOS or R2, a CDN link, or an inline base64 payload) →
application/jsonwithimages[].image_url.
Key capabilities
- Text-to-Image — Generate images from a natural language prompt
- Image-to-Image — Edit an existing image with a prompt, by file upload or by URL
- Multiple input images — Up to 16 reference images per edit
- Masked editing — Restrict the edit to a region by supplying a mask
- Flexible resolution — Any size up to 4K, with the model choosing a resolution when you omit
size - Transparent background —
background: "transparent"for cut-out assets - Batch generation — Up to 10 images per request via
n - Streaming previews — Receive partial images as they render
Output specifications
Text-to-image
Image-to-image
Upload the image as a file
POST to/v1/images/edits as multipart/form-data: the source image goes in the image file field, the instruction in the prompt form field, and every other parameter (size, quality, n, …) as an ordinary form field with a string value.
Reference the image by URL
Sendapplication/json instead, and put the image in images — an array of objects, each with an image_url. This is the form to use when your image already lives somewhere reachable: TOS, R2, a CDN, or an inline data: URL.
image_url accepts:
The upstream schema also accepts a
file_id alternative to image_url, but Upmore does not expose the Files upload API, so only image_url is usable.Edit from multiple reference images
Up to 16 input images per request. Repeat the file field asimage[] in multipart, or add more objects to images in JSON.
usage.input_tokens_details.image_tokens, proportional to its resolution — roughly 1,024 tokens for a 1024×1024 image. A 16-image request is billed for all 16.
Masked editing
Supply a mask to confine the edit to one region. The mask must be a PNG with an alpha channel, the same pixel dimensions as the source image: transparent pixels mark the region the model may repaint, opaque pixels are preserved.Invalid mask image format - mask size does not match image size, and a mask without an alpha channel fails with Invalid mask image format - mask image missing alpha channel.
Streaming
Setstream: true to receive server-sent events. The stream emits up to partial_images preview frames and always ends with a completed event carrying the final image. If you omit partial_images, or the image finishes before the previews are produced, you may receive only the completed event.
Parameters
Text-to-image (/v1/images/generations)
Image-to-image (/v1/images/edits)
All text-to-image parameters apply, plus:
Response
usage.input_tokens_details.image_tokens counts the source images, so the same size and quality cost more than a text-to-image call.
Limits and error codes
Requests that violate a constraint fail fast with HTTP 400 and a specific message:The upstream also runs a safety system over the prompt/image combination. A rejected request returns
Your request was rejected by the safety system… with an Azure request ID; retrying with different input usually resolves it, and the ID is what Azure support needs if it does not.API Reference
View the interactive API playground.