A transparent background matters when an image has to sit on top of something else: a sticker over a chat bubble, a cut-out on a coloured product page, an icon on a dark interface.

There are two routes, and they are not equivalent. In ChatGPT, transparency is an instruction in the prompt. In the API it is a parameter called background, and only the parameter decides whether the file carries an alpha channel.

To confirm it, open the alpha channel, or drop the file onto saturated magenta. New to the model? The getting started walkthrough covers it.

Why a clean look is not a transparent file

Four jobs keep coming up:

  • Stickers — over a chat background you do not control
  • Merchandise — on a coloured garment
  • UI icons — light and dark themes
  • Product cut-outs — onto several layouts

All four need the pixels outside the subject to be absent, not painted. Alpha is a file property, not a preview impression; brand marks ship as vectors for the same reason — see logo design with GPT Image 2.5.

Ask for it in ChatGPT

The help centre lists transparency as one of three instruction types the model can follow:

“ChatGPT Images can follow instructions to add text, add details within the image, or make the background transparent.”

The release page adds: “Images that include real-world information have more accurate content, and the model can handle more complex layouts including transparent backgrounds.”

Can follow instructions is the promise — a request, not a switch.

A single [subject: a ceramic mug with a matte glaze, three-quarter view] centred in the frame.
Fully transparent background. The background must contain no pixels at all — no white fill,
no grey gradient, no drop shadow, no reflection, no checkerboard pattern, no border, no text.
Clean cut-out edge with no fringe or halo around the outline.
Square 1:1 image, subject centred with generous empty margin on all four sides.

Two lines do the work: “no pixels at all” pushes back against the default near-white fill, and “no checkerboard” blocks a painted one.

Set background in the API

In a program the instruction becomes a parameter. background accepts auto, opaque and transparent; transparency needs the explicit value. Pair it with PNG or WebP, the formats that carry alpha, by setting output_format.

import base64
from openai import OpenAI

client = OpenAI()

result = client.images.generate(
    model="gpt-image-2.5-flare",
    prompt=(
        "A single ceramic mug with a matte glaze, three-quarter view, centred. "
        "Fully transparent background, no shadow, no reflection, no border."
    ),
    background="transparent",
    output_format="png",
    size="1024x1024",
)

image_bytes = base64.b64decode(result.data[0].b64_json)
with open("mug.png", "wb") as handle:
    handle.write(image_bytes)

output_compression applies to JPEG and WebP only, not to PNG, so it will not shrink a transparent PNG. Parameter names and values also move between releases: the official reference lists several model generations side by side, so check it for your model instead of assuming the values you saw once.

Four things that look transparent but are not

Rule these four out first: each renders as transparency and ships as an opaque rectangle.

  1. A near-white background. The pixels are opaque; they match the page you were looking at.
  2. A painted checkerboard. Grey squares drawn as picture content survive on any background.
  3. A solid green screen. Good for keying outside the model, but still no alpha channel.
  4. A previewer that renders alpha as white or black. The file did not change; the viewer is guessing.

Only a file that really carries an alpha channel can be placed on top of anything else.

Three checks before you ship the file

Three checks, in this order.

  • Read the alpha channel. A real cut-out shows the subject white on black, no grey wash.
  • Composite on a strong colour. On saturated magenta, a near-white background shows as a rectangle.
  • Zoom to the edges. Hair, fur, glass and thin props fail first. Look at 400 per cent.

If you repaired the edge inside ChatGPT instead of regenerating: OpenAI states the limit plainly: “Highlights are not always precise, and edits may extend beyond the area you selected.” Re-check the pixels around your selection afterwards. Paid products: commercial use and watermarks.

Two examples: a sticker set and a cutout

Both start from the template above and change three lines.

Four everyday objects shown twice: filled on a solid green field, and as bare outlines on an empty ivory field

Example one: a nine-sticker set

A 3x3 grid of nine stickers showing the same cartoon character, a round orange fox with big ears
and a cream muzzle. Same head size and same crop in every cell, consistent thick black outline,
flat colour, no shading. Expressions in reading order: happy, laughing, crying, angry, sleepy,
surprised, thinking, waving, love. One small accent change per cell only.
Fully transparent background: no pixels outside the outlines — no white fill, no drop shadow,
no checkerboard, no border, no text. Square 1:1 image.

Check three things: all nine cells present, the ear and muzzle shape identical across them, and the expressions the ones you listed — see the sticker pack workflow for the finished-set version.

Example two: a product cutout

Replace the character with one physical object, add the view you need — three-quarter view, front elevation — and add no reflection, no cast shadow for glossy objects. Check the silhouette against the alpha channel, not a white page.

When transparency is not the right answer

When detail keeps dissolving at the edges — hair, fur, mesh, smoke — skip transparency and ask for a high-contrast solid green or magenta field instead, one that never appears in the subject. It keys out in an editor, but gives you no alpha on its own.

Two boundaries matter. Layered PSD export is not an OpenAI feature — transparent PNG and WebP are what the model and the API produce. And the chat route can fail to hand you alpha even when the instruction was followed, because the saving step may not carry the channel through. For a guaranteed channel, use the parameter: how the image endpoints are organised.

Frequently asked questions

Is transparency guaranteed?

No. The help centre documents an instruction the model can follow; nothing there promises a per-image result.

How do I get a transparent PNG?

Set background to transparent and output_format to png, then write the decoded base64 bytes to a file.

Why is the background white?

Usually the viewer, not the file: many draw alpha as flat white, or black on a dark theme.

Can it export PSD layers?

No. Layered PSD export is not an OpenAI capability; transparent PNG and WebP output is.

The parameter decides what the file contains; the prompt only decides what the subject looks like. When someone else composites downstream, the parameter is what matters.

Ask in words, set the parameter when you have one, and inspect the alpha channel before the asset leaves your machine.