Model Details
GPT Image 2.5 Sunburst Edit takes one or two reference images plus a written instruction and returns an edited image. It is the precision tier of the GPT Image 2.5 editing line: the change stays scoped exactly to the instruction, and subject and composition hold across many rounds of revision rather than drifting each pass. Add a mask to confine the change to one region, or pass a second reference to composite elements from both pictures into one scene.
## Best for - Revision-heavy work where a picture goes through several passes and must not drift - Changing, adding or removing one element — a colour, an object, a line of wording — while the rest stays as shot - Inpainting a marked region: filling or replacing just the area your mask covers - Compositing a subject from one picture into the scene or background of a second
## Choose another model when - You need fast turnaround or a high volume of edits — this tier trades generation time for control; use `openai/gpt-image-2.5/flare/edit` - There is no source image to work from — use `openai/gpt-image-2.5/sunburst/text-to-image` - The edit must land exactly on a mask boundary — masking is prompt-guided and may not follow the shape precisely - You need more than two reference images at once — use an editing model with a larger reference limit
## Tips - Separate the change from the constraints: say "change only X", then list what must stay — identity, layout, lighting, labels - Revising in passes? Feed the previous output back in as `image_urls` and restate the preserve-list each time - With two references, name them by role: "image 1" the scene, "image 2" the subject to insert - Match `image_size` to the source image's aspect ratio, or the frame gets re-composed - Give the mask an alpha channel, sized and formatted like the image it masks
## Limitations - Generation takes longer than the faster tier in this family — the trade for the extra control - Every request runs at the standard high-quality setting; the extra-detail tiers are not selectable - Each request is independent — there is no conversation state, so every pass must restate what to preserve - Content filtering applies to every request and cannot be relaxed
To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";
const result = await modelrunner.subscribe("openai/gpt-image-2.5/sunburst/edit", { input: { prompt: 'Change only the printed word on the mug to read "DECAF"; keep the mug, the backdrop, lighting and framing exactly as they are.', image_urls: ["https://media.modelrunner.ai/U1Itf0AKXBZWtaWnG2B4q.png"], image_size: "landscape_4_3", output_format: "png", }, }); ```



