Qwen-Image 2.1 native RGBA vs Sume's ChatGPT Image 2.5 transparency

Qwen-Image 2.1's card lists native RGBA transparency under a research licence. On Sume, transparent output comes from ChatGPT Image 2.5's background field.

4 min readSume
All posts

Qwen-Image 2.1's Hugging Face card (read 2026-10-05) lists native RGBA transparency, meaning the model outputs an alpha channel itself. Sume does not host Qwen-Image 2.1. Its transparent route today is background: "transparent" on ChatGPT Image 2.5, which the Sume docs say is the only model that accepts the field. The card names the Qwen Research License Agreement, so read it before you use the weights commercially.

Transparency routes

Compare where the alpha comes from.

Transparent PNG routes, read 2026-10-05
RouteHow alpha is madeSource
Qwen-Image 2.1 (self-hosted)Native RGBA output from the modelHugging Face card
Sume, ChatGPT Image 2.5background: transparent in the requestSume docs
Sume, any other modelNot a request field; send it and you get 400 unsupported_parameterSume docs
Sume, after generationsume/rmbg-1.0 background removal, $0.0225 per imageSume catalog

What native alpha changes

A model that outputs RGBA directly skips the cut-out step, so there is no segmentation pass that can trim fine edges like hair or glass. That is a design claim from the card's feature list, not a measured result, so run your own edge test on a hard subject. On Sume, a post-hoc cut-out is a second call with its own cost and its own edge behaviour.

Licence check

The model card names the Qwen Research License Agreement. We did not read the full licence text for this post, so we state no terms. If you plan commercial use, read it or ask the publisher. Hosted rows on Sume are separate models and a separate service; see Qwen-Image 2.1's non-commercial licence against hosted Qwen on Sume.

A transparent request on Sume

Ask for PNG with a transparent background. If the reply is 200, the URL in data[0].url is the image.

import asyncio, os, httpx

async def main():
    body = {
        "model": "openai/gpt-image-2.5",
        "prompt": "a glass perfume bottle, studio product cut-out",
        "background": "transparent",
        "output_format": "png",
    }
    headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
    async with httpx.AsyncClient(timeout=60) as c:
        r = await c.post("https://api.sume.com/v1/images", headers=headers, json=body)
    j = r.json()
    print(r.status_code, j["data"][0]["url"] if r.status_code == 200 else j)

asyncio.run(main())

Practical advice

If you only need transparent stills and no local GPU, the Sume route with background: "transparent" is one call. If you already run the weights and your use is research, native RGBA saves a step. In both cases keep a copy of the alpha-bearing PNG: converting to JPEG removes the transparency, and Sume's output_format allows png, jpeg and webp.

Sources

Related posts

More in Models

All Models posts

Written by Sume