GPT-Image-2.5 Flare

GPT-Image-2.5 Flare is OpenAI's fastest model for high-quality image generation and editing, delivering higher-quality images than GPT Image 2 at 50% lower latency. It improves natural lighting, texture detail, reference-subject preservation, localized editing, and consistency across iterative edits, while handling complex layouts and transparent backgrounds. It is designed for creator content, product experiences, visual search, rapid prototyping, and high-volume generation.

Complete technical specification for integration
Ready-to-use code snippets for common workflows
Step-by-step tutorials for advanced use cases
← All GuidesTransparent backgrounds
How to generate cut-out assets with GPT-Image-2.5 Flare: settings.background, the output format it forces, and prompting for edges that survive compositing.
Introduction
An asset that has to sit on somebody else's layout cannot bring its own background. A product thumbnail drops onto a category tile, a badge goes over a hero image, an icon lands in a UI that has a light theme and a dark one. Generating that asset on white and cutting it out afterwards is a second pipeline stage, a second failure point, and a soft halo around every edge.
settings.background removes the stage. Set it to transparent and the model renders the subject onto nothing, with an alpha channel in the file it returns.

A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.
That image has no white behind it. Whatever this page is painted with is what you can see, which is the same thing a category tile or a dark-theme app will show.
This guide covers the setting, the file format it forces, prompting for a clean cut-out, what to do about shadows, and where the alpha channel gets unreliable.
The request
settings.background takes three values, and one of them changes what else the request must carry.
import { createClient } from '@runware/sdk'
const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()
const [result] = await client.run({
model: 'openai:gpt-image@2.5-flare',
positivePrompt: 'A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.',
settings: {
background: 'transparent'
},
outputFormat: 'PNG',
width: 1024,
height: 1024
})import asyncio
import os
from runware import Runware
async def main():
async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
results = await client.run({
"model": "openai:gpt-image@2.5-flare",
"positivePrompt": "A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.",
"settings": {
"background": "transparent"
},
"outputFormat": "PNG",
"width": 1024,
"height": 1024
})
asyncio.run(main())curl https://api.runware.ai/v1 \
-H "Authorization: Bearer $RUNWARE_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"taskType": "imageInference",
"taskUUID": "3b6d9f2a-7c14-4e58-b09d-1a5e8c3f7b62",
"model": "openai:gpt-image@2.5-flare",
"positivePrompt": "A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.",
"settings": {
"background": "transparent"
},
"outputFormat": "PNG",
"width": 1024,
"height": 1024
}
]'runware run openai:gpt-image@2.5-flare \
positivePrompt="A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting." \
settings.background=transparent \
outputFormat=PNG \
width=1024 \
height=1024{
"taskType": "imageInference",
"taskUUID": "3b6d9f2a-7c14-4e58-b09d-1a5e8c3f7b62",
"model": "openai:gpt-image@2.5-flare",
"positivePrompt": "A single pair of over-ear headphones in matte sand with tan leather earpads, three-quarter view, floating with no background, no surface, no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.",
"settings": {
"background": "transparent"
},
"outputFormat": "PNG",
"width": 1024,
"height": 1024
}Response
[
{
"taskType": "imageInference",
"taskUUID": "3b6d9f2a-7c14-4e58-b09d-1a5e8c3f7b62",
"imageUUID": "9f4c1e7b-2d60-4a83-8517-6c2e0b9d3f48",
"imageURL": "https://im.runware.ai/image/os/a14d18/ws/2/ii/9f4c1e7b-2d60-4a83-8517-6c2e0b9d3f48.png"
}
]autois the default and lets the model decide, which in practice means it paints whatever background the prompt implies.opaqueguarantees a solid background even when the prompt sounds like a cut-out.transparentreturns an alpha channel.
transparent forces the output format. A JPG has no alpha channel to write into, so the request must also carry outputFormat set to PNG or WEBP. Sending transparent without it fails validation rather than silently returning a flattened image, which is the right way round but still a surprise the first time.
Prompting for a clean cut-out
The setting produces the alpha channel. The prompt decides whether the edge is worth having, and the two most common mistakes both come from writing the prompt as if the background were still there.
Say what is absent. "Floating with no background, no surface, no shadow" reads like over-explaining and it is the difference between a clean edge and a subject standing on a faint grey ellipse that came along for the ride.
Do not describe a scene. A prompt that mentions a marble worktop or soft window light gives the model a room to render, and it will render the light from that room onto the subject even when it cannot render the room itself. Describe the object and its lighting, not its surroundings.

A flat vector badge icon of a delivery van seen from the side, bold clean outlines, four flat colours in deep teal, cream and warm orange, no gradients, floating with no background, no surface and no shadow, crisp edges all the way around. Modern app icon style.

A flat vector badge icon of a circular arrow wrapping around a parcel box, bold clean outlines, four flat colours in deep teal, cream and warm orange, no gradients, floating with no background, no surface and no shadow, crisp edges all the way around. Modern app icon style.

A flat vector badge icon of a shield with a tick inside it, bold clean outlines, four flat colours in deep teal, cream and warm orange, no gradients, floating with no background, no surface and no shadow, crisp edges all the way around. Modern app icon style.
Flat illustration is where transparency behaves best, because the edge the model has to find is a hard boundary between a colour and nothing. The three icons above share a palette clause and a style clause word for word, and differ only in the object, which is how a set stays a set.
The shadow question
A contact shadow makes a product look like it is resting on something. On transparency it is a grey smudge that follows the asset onto every layout it is placed in. Both versions below were generated at the same setting.

A single cordless handheld vacuum in charcoal with a copper trim ring, three-quarter view, floating with no background, no surface and no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.

A single cordless handheld vacuum in charcoal with a copper trim ring, standing upright with a soft contact shadow directly beneath it, no background and no visible surface, clean crisp edges. Photoreal product rendering, even soft studio lighting from above.
Generate without the shadow when the asset is going somewhere you do not control. A shadow is a decision about the destination, and adding one in CSS or in the compositing step costs nothing, where removing a baked-in one costs another render.
The same cut-out, dropped onto two layouts:


The dark tile is the honest test. A halo left by a bad cut-out is invisible on white and obvious on black, so check a transparent asset against a dark background before you ship it into a themeable interface.
Where alpha gets unreliable
Transparency is a per-pixel decision, and some subjects do not have a clean answer.
Glass and anything see-through are the hardest case, because the model has to decide whether you can see the background through the object or not, and it tends to answer no.

A single clear glass water bottle with a pale green silicone lid, half full of water, three-quarter view, floating with no background, no surface and no shadow, clean crisp edges all the way around. Photoreal product rendering, even soft studio lighting.
The alpha channel came back correct everywhere except the object itself. The surround is fully transparent, and then the bottle holds 0.83 opacity through its empty upper half and 0.99 through the water, painted a flat pale grey. Composite that onto a dark layout and you get a white ghost of a bottle rather than a dark ground read through glass.
The model was not careless about it, which is the interesting part. It made the air-filled half measurably more transparent than the water-filled half, which is the right direction physically, and then under-committed to both. A see-through subject comes back as a picture of transparency rather than as transparency.
Fine detail at the edge is the other one. Hair, fur, feathered fabric and motion blur all sit between subject and nothing, and a single alpha value per pixel has to round that off somewhere.
Where an edge has to be exact, generate on opaque against a flat colour that is far from anything in the subject, then cut it out with a dedicated removeBackground task. It is two calls instead of one, and it gives you a matte you can inspect and adjust rather than one baked into the render.
Tips
-
Send
outputFormatwith every transparent request.PNGorWEBP, or the call fails validation. -
Say what is absent. "No background, no surface, no shadow" is three clauses that stop the model bringing a scene along.
-
Do not describe surroundings. A worktop mentioned in the prompt shows up as light on the subject even when the worktop itself cannot be rendered.
-
Leave the shadow out unless you own the layout it is going onto.
-
Check the result on black. A halo that is invisible on a white page is obvious against a dark theme.
-
Fall back to
opaqueplusremoveBackgroundfor glass, hair and anything else with an edge that has to be exact.