openai / openai/codex

ChatGPT Work: background-removal edits return opaque PNGs with baked-in checkerboards

Open
#45,645 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug codex-web imagen
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Summary

In ChatGPT Work on the web, two background-removal edits of an existing illustrated PNG returned opaque RGB PNGs with a painted gray/white checkerboard instead of real alpha transparency.

This reproduction is being filed separately to identify the ChatGPT Work web surface and existing-image editing workflow. Related desktop report: #18905. The reproduction was first added there: https://github.com/openai/codex/issues/18905#issuecomment-5676735818. A shared underlying cause has not been established; please consolidate if appropriate.

Environment

  • Reproduction date: September 15, 2026.
  • Product surface: ChatGPT Work in a web browser.
  • Image editing: built-in image-generation tool, using the original uploaded image as the reference/edit target.
  • Exact product build and underlying image model: not exposed in the session.
  • API: not tested.

Steps to reproduce

  1. Upload an existing square illustration whose background contains a painted gray/white checkerboard. In the tested input, the PNG was RGBA, but every alpha value was 255.
  2. Use the built-in image editing tool with that image as the edit target.
  3. Request removal of only the checkerboard background, preserving the foreground, and output as a PNG with actual alpha transparency. Explicitly prohibit a replacement color or simulated checkerboard.
  4. Inspect the returned PNG with Pillow/NumPy.
  5. Retry against the same original input with a shorter background-removal instruction.

Both attempts failed. The first used a detailed instruction requiring alpha=0 outside the foreground. The second used this prompt:

Quita el fondo de esta imagen y entrega el PNG con fondo transparente real. Mantén intactos a la chica, su cabello, sus lentes 3D, su ropa y todas las butacas rojas. El fondo que debes eliminar es toda la zona gris y blanca detrás de ellos. Deja esa zona completamente vacía y transparente, sin dibujar ningún patrón ni rellenarla con otro color. Conserva el encuadre y el diseño original. Devuelve la imagen con transparencia alfa.

Actual behavior

Both edited outputs contain a visible checkerboard and no transparent pixels. This was confirmed by file inspection, not inferred from the image preview.

File Dimensions Native mode Fully transparent pixels
Original input 1254 × 1254 RGBA, all alpha values 255 0
First edit 1254 × 1254 RGB 0
Second edit 1254 × 1254 RGB 0

A minimal read-only inspection:

from PIL import Image
import numpy as np

im = Image.open("output.png")
alpha = np.asarray(im.convert("RGBA").getchannel("A"))
print("Native mode:", im.mode)
print("Dimensions:", im.size)
print("Alpha range:", int(alpha.min()), int(alpha.max()))
print("Transparent pixels:", int((alpha == 0).sum()))
print("Partially transparent pixels:", int(((alpha > 0) & (alpha < 255)).sum()))

Expected behavior

The returned PNG has genuinely transparent pixels outside the requested foreground, with clean antialiased edges and preserved artwork. A painted checkerboard should not substitute for transparency.

Control and scope

A separate new-image generation without a reference image, in the same session, returned an RGBA PNG with 480,429 fully transparent pixels. This shows that real alpha output was possible in that session. It does not establish that all new generations work or that all edits fail.

The observed failure is two existing-image background-removal edits against one original image.

The exposed built-in tool accepts a prompt and image references, but provides no explicit background, output_format, or model-selection parameter. Whether the issue occurs in model output, tool configuration, or output processing is unknown.

Impact

Blocks a workflow that extracts transparent illustration layers for animated Twitch emotes. A preview can look transparent while the downloaded file is fully opaque, so downstream compositing fails.

Please investigate existing-image edit transparency in ChatGPT Work and whether the integration can explicitly request and preserve alpha output.

No private artwork, account identifiers, local file paths, or session logs are attached.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No repository file, test, or implementation entry point is identified. Start by reproducing the ChatGPT Work existing-image edit workflow and inspecting the returned PNG as described; the work is done when edited images preserve genuine alpha transparency without a baked-in checkerboard, or the responsible model, configuration, or output-processing boundary is identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
numpy, python
Domain
ai
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.