---
title: Transparent backgrounds — GPT-Image-2.5 Flare | Runware Docs
url: https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds
description: "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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#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 pair of matte sand over-ear headphones with tan leather earpads in three-quarter view, cut out with no background behind them](https://runware.ai/docs/assets/output-hero.DcOHCpj1_ZvWcQK.jpg)

*The page background is showing through the file, not painted into it*

> **Prompt**: 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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#the-request)

`settings.background` takes three values, and one of them changes what else the request must carry.

**TypeScript**:

```typescript
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
})
```

**Python**:

```python
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**:

```bash
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
    }
  ]'
```

**CLI**:

```bash
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
```

**JSON**:

```json
{
  "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
}
```

- `auto` is the default and lets the model decide, which in practice means it paints whatever background the prompt implies.
- `opaque` guarantees a solid background even when the prompt sounds like a cut-out.
- `transparent` returns an alpha channel.

> [!WARNING]
> **`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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#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 side-on delivery van in deep teal, cream and warm orange with no background behind it](https://runware.ai/docs/assets/output-badge-1.C9nG1NEL_ZJ8Bsp.jpg)

*Free delivery*

> **Prompt**: 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 a parcel box in deep teal, cream and warm orange with no background behind it](https://runware.ai/docs/assets/output-badge-2.CPsY7d5P_26RURe.jpg)

*Returns*

> **Prompt**: 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 containing a tick in deep teal, cream and warm orange with no background behind it](https://runware.ai/docs/assets/output-badge-3.ChjYKueQ_Z1pwxG1.jpg)

*Warranty*

> **Prompt**: 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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#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 charcoal cordless handheld vacuum with a copper trim ring, cut out with no background and no shadow](https://runware.ai/docs/assets/output-noshadow.BX-ZTC4k_WhCqM.jpg)

*No shadow, composites anywhere*

> **Prompt**: 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.

![The same charcoal handheld vacuum standing upright with a soft grey contact shadow pooled directly beneath it and no background](https://runware.ai/docs/assets/output-shadow.CQivx5NC_bTjtG.jpg)

*Contact shadow, needs a light layout*

> **Prompt**: 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 matte sand headphones cut-out placed on a plain warm cream background](https://runware.ai/docs/assets/output-composite-light.B-6l7Tw9_10gXm6.jpg)

*On a warm light tile*

![The same headphones cut-out placed on a plain near-black background, its edges still clean against the dark](https://runware.ai/docs/assets/output-composite-dark.D4sfuBwZ_1L6eYV.jpg)

*On a dark tile*

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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#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 clear glass water bottle with a pale green lid, half full of water, cut out with no background, the glass rendered as a pale near-opaque material](https://runware.ai/docs/assets/output-glass.BN2W6pUC_QFlVD.jpg)

*Alpha 0.83 through the empty half, 0.99 through the water*

> **Prompt**: 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.

> [!NOTE]
> 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](https://runware.ai/docs/models/openai-gpt-image-2-5-flare/guides/transparent-backgrounds#tips)

1. **Send `outputFormat` with every transparent request.** `PNG` or `WEBP`, or the call fails validation.
    
2. **Say what is absent.** "No background, no surface, no shadow" is three clauses that stop the model bringing a scene along.
    
3. **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.
    
4. **Leave the shadow out** unless you own the layout it is going onto.
    
5. **Check the result on black.** A halo that is invisible on a white page is obvious against a dark theme.
    
6. **Fall back to `opaque` plus `removeBackground`** for glass, hair and anything else with an edge that has to be exact.