GPT Image 2.5 accepts three output formats — PNG, JPEG and WebP — and you name the one you want on each request. The part most guides leave out is that output_compression applies only to JPEG and WebP, so it does nothing to a PNG. Hold those two facts together and the format question is simple.
One format per request
Format is an API field, chosen once per request. You set it on the call, not in a settings menu, and it applies to that generation. Three formats are available — PNG, JPEG and WebP — and you name one of them on the call.
If you only use the ChatGPT interface, you never see this field. The help centre explains what ChatGPT Images can do, from adding text to making the background transparent, and never names a file format. There is no format selector to find, which is why the setting lives in the developer documentation rather than the chat window.
What each format costs you
Each format trades one property for another: transparency, compression, and typical use.
| Format | Alpha channel | Compression applies | Typical use |
|---|---|---|---|
png | Yes | No | Master copy and transparent artwork |
jpeg | No | Yes | Photographic delivery, small uploads |
webp | Yes | Yes | Web delivery, with or without transparency |
PNG is the faithful one: a full alpha channel and no compression, so the file you get back is the file the model produced. JPEG is the small one, with no transparency and real compression. WebP sits between them, carrying transparency while still compressing, which makes it the natural pick for the web.
Compression sets bytes, not quality
The output_compression field takes a value from 0 to 100 and applies only to JPEG and WebP. It changes how many bytes the encoder spends, not how hard the model worked. Quality is a separate field, measured in effort rather than bytes, and the quality levels guide explains it. Mixing the two is the most common mistake here.
output_format = "webp" # png | jpeg | webp
output_compression = 80 # 0-100, JPEG and WebP only
quality = "high" # separate field: effort, not bytes
Read the three lines as three separate questions: file type, bytes, and detail. Nothing here promises a better image, and nothing here will shrink a PNG.
Transparency decides the format
The background field takes auto, opaque or transparent, and it works with your format choice. Transparent output requires PNG or WebP, because JPEG has no alpha channel. Ask for transparency and export as JPEG, and the opacity data is discarded. The transparent background guide walks through the workflow.
Transparency is also where you inspect the result rather than trust it. Check the alpha channel along hair, glass, soft shadows and object edges, where a cut-out fails visibly. One API note: parameter names move between model generations, so check the reference page for your model.
Two examples: a master and a web copy

Example one: a transparent sticker master
Ask for the artwork once, keep it lossless, and treat it as the original everything else derives from.
A single rounded sticker of a smiling sun, flat vector style,
thick outline, centred on a plain background.
background = "transparent". Export as png so the alpha channel
survives and no compression is applied.
Check three things: the outline is crisp against the checkerboard, no white halo clings to the edges, and the corner radii look even. Save this file untouched; it is the master.
Example two: a compressed web copy
Now make a delivery copy sized for a specific upload slot, and accept some compression.
Take the same smiling sun sticker. Keep the shape and the
transparent background. Export as webp with output_compression = 80
for a web upload, then confirm the transparent area is still empty.
Check the flat areas for blocky patches and the outline for softening; if either appears, lower the compression value and export again. The delivery copy is disposable, so regenerating it costs nothing.
Size and format are separate decisions
Format answers what kind of file you get; size answers how many pixels it holds. The size field accepts auto or a specified resolution, and the documented common values are 1024x1024, 1536x1024 and 1024x1536. Custom sizes have four constraints: each edge at most 3840 pixels, both edges a multiple of 16, a longest-to-shortest ratio of 3:1 or less, and a total between 655,360 and 8,294,400 pixels. The sizes and ratios guide covers them. Format and size never change each other.
Frequently asked questions
Does output_compression shrink a PNG?
No. The field applies only to JPEG and WebP, and a PNG ignores it entirely. An unchanged file size after setting a value is expected, not a bug.
Can I export transparency as JPEG?
No. JPEG has no alpha channel, so transparency cannot survive the export and the formerly transparent area fills in. Use PNG or WebP when the artwork needs an empty background.
Where do I set the format in ChatGPT?
You do not. The interface has no format control, and the help centre names no file format. Format is an API field, set per request in your own code.
Which format should the archive copy use?
Keep the master as PNG. It is lossless and carries the alpha channel, so it is the safest thing to store and to re-export from later. Compressed copies are working files, not archives.
The export habit that saves a rerun
Keep one PNG master and export the delivery copy only once, at the end. Compress early, then need a different size or a transparent version, and you re-export from an already lossy file, where each pass costs a little quality. Doing compression last means one export and no rerun. The official sources publish no per-format price, so any figure for PNG against JPEG comes from a third party, not OpenAI.