# ChatGPT и GPT Image: шахматка вместо прозрачного фона, что делать

> Если шахматка остаётся на цветной подложке, она нарисована в картинке и прозрачности в файле нет. В API её задаёт параметр background, в ChatGPT — только слова.

- URL: https://blog.laozhang.ai/ru/posts/gpt-image-transparent-background-checkerboard
- Published: 2026-10-02
- Updated: 2026-10-02
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ru/about)
- Category: Редактирование изображений
- Tags: GPT Image 2.5, ChatGPT, Прозрачный фон, Альфа-канал, OpenAI API

---
## Шахматка в ChatGPT и GPT Image: прозрачность или рисунок

Серо-белые клетки («шахматка») бывают двух видов, и только один из них означает прозрачный фон. В первом случае клетки рисует программа просмотра или редактор: под картинкой пусто, и сетка лишь показывает это место. Во втором клетки нарисованы в самой картинке, как небо или стена, и стали частью изображения. Отличить одно от другого просто: положите сохранённый файл на яркую цветную подложку. Если под объектом виден цвет подложки, прозрачность настоящая. Если клетки остались, прозрачности в файле нет.

Настоящую прозрачность хранит альфа-канал. Это отдельный слой данных в файле, где для каждого пикселя записано, насколько он видим. Нарисованная шахматка в альфа-канал не попадает: все пиксели такого файла полностью непрозрачны.

Что делать, зависит от того, где сделана картинка:

- **В ChatGPT** переключателя прозрачности нет. Остаётся просить словами, прямо запретить сетку и проверять сохранённый файл.
- **В API** прозрачность включает параметр `background` со значением `transparent` вместе с форматом `png` или `webp`. Слово «прозрачный» в тексте запроса параметр не заменяет.
- **Через сторонний шлюз API** параметр может не дойти до модели. Это видно по полям ответа и по самому файлу.
- **Уже испорченную картинку** можно починить скриптом, если объект яркий, а клетки светлые и ровные. Белый объект, волосы, стекло и мягкие тени так не спасти: нужен исходник или удаление фона.

О поведении ChatGPT и API дальше сказано по документации OpenAI и по сообщениям пользователей, источник указан рядом с каждым утверждением. При подготовке текста изображения в ChatGPT не создавались и платные запросы к API не отправлялись. Запускались только два скрипта на Python из разделов ниже: локально, на синтетических файлах, нарисованных библиотекой Pillow.

## Проверка цветной подложкой: три исхода и что значит каждый

Проверяйте файл, который сохранили на диск, а не то, что видно в окне чата. Откройте любой редактор со слоями или программу для презентаций, залейте фон красным или синим и положите картинку сверху. Скриншот для проверки не годится: это новое непрозрачное изображение того, что было на экране.

| Что видно на цветной подложке | Что это значит | Что делать |
| --- | --- | --- |
| Вокруг объекта цвет подложки | Прозрачность настоящая, клетки рисовала программа просмотра | Проверить края на тёмном фоне и использовать файл |
| Серо-белые клетки остались | Шахматка нарисована в пикселях, альфа-канала нет | Сгенерировать заново или чинить, см. ниже |
| Белый или чёрный прямоугольник | Фон сплошной: его либо не убирали, либо прозрачность пропала при сохранении | Найти исходный файл и шаг, на котором он изменился |

Расширение `.png` ничего не доказывает. PNG может быть полностью непрозрачным, а внутри файла с таким именем может лежать JPEG. Точный ответ даёт скрипт проверки из раздела ниже: он читает настоящий формат и считает прозрачные пиксели.

## Где искать причину: ChatGPT, API, сторонний шлюз или сохранение

Причина зависит от пути, которым картинка к вам попала. Найдите свою строку и переходите к нужному разделу.

| Как получена картинка | Что проверить первым | Вероятная причина |
| --- | --- | --- |
| Создана в приложении или на сайте ChatGPT | Сохранённый файл на цветной подложке | Модель сама выбрала фон и нарисовала сетку |
| Запрос к API OpenAI напрямую | Есть ли в запросе `background` и какой `output_format` | Параметр не задан, действует `auto`, либо формат `jpeg` |
| Запрос через сторонний шлюз | Поля `background` и `output_format` в ответе, документация маршрута | Маршрут не передаёт параметр модели |
| Узел автоматизации или готовая интеграция | Какие поля узел действительно отправляет | Поле `background` в запрос не попадает |
| Файл был прозрачным, потом фон стал белым | Формат файла у получателя | Пересохранение в JPG, скриншот, перекодирование при загрузке |

![Пять путей картинки и вероятная причина потери прозрачности на каждом: ChatGPT, прямой API OpenAI, сторонний шлюз, узел автоматизации, сохранение и пересылка](https://blog.laozhang.ai/posts/ru/gpt-image-transparent-background-checkerboard/img/transparency-loss-path.webp)

Если клетки или сетчатая текстура появились там, где прозрачность никто не просил, это другая неполадка: о ней рассказано в разборе [шума и зерна в GPT Image 2.5](https://blog.laozhang.ai/ru/posts/gpt-image-2-5-noise-grainy).

## В ChatGPT переключателя нет: просьба словами и проверка файла

В ChatGPT прозрачность можно только попросить. В справке OpenAI сказано, что ChatGPT Images умеет по инструкции «make the background transparent», то есть сделать фон прозрачным, и что можно загрузить готовое изображение и описать правки. Ни переключателя прозрачности, ни формата сохраняемого файла, ни того, что предпросмотр показывает под прозрачной картинкой, в [справке об изображениях в ChatGPT](https://help.openai.com/en/articles/11084440-images-in-chatgpt) по состоянию на 2 октября 2026 года нет. Поэтому судить можно только по сохранённому файлу.

То, что сетка иногда оказывается нарисованной, известно из сообщений пользователей. В [обсуждении на форуме разработчиков OpenAI](https://community.openai.com/t/having-trouble-getting-transparent-backgrounds-in-chatgpt-images/1380143) в мае и июне 2026 года автор описал картинку, где шахматка была «baked into the image», то есть стала частью изображения, а другие участники той же ветки получали настоящую или частичную прозрачность. Эти сообщения относятся ко времени до ChatGPT Images 2.5 и показывают, что сбой существует. Как часто он случается сейчас, по ним судить нельзя.

Официального объяснения, почему модель рисует клетки, OpenAI не давала. Распространённая версия такая: на множестве картинок в сети прозрачность изображена именно шахматкой, и модель воспроизводит то, как «прозрачный фон» выглядит, вместо того чтобы оставить пустоту. Это предположение сообщества, а не установленный факт.

Запрос, который снижает риск, состоит из трёх частей: один изолированный объект, требование прозрачности и прямой запрет на сетку и подложку. Такое сочетание OpenAI рекомендует в [руководстве по запросам для изображений](https://developers.openai.com/api/docs/guides/image-prompting), там же прямо сказано: «A drawn checkerboard is not transparency». Рабочий вариант на русском:

```text
Нарисуй стикер: рыжий кот в наушниках, плоская иллюстрация с чёткими краями.
Один объект по центру, с запасом по краям. Без сцены, без пола и без тени под объектом.
Фон полностью прозрачный, с альфа-каналом, файл PNG.
Не рисуй шахматную сетку, белую, серую или цветную подложку и водяные знаки.
```

Гарантии такой текст не даёт: в ChatGPT это просьба, а не настройка. Три правила помогают не усугубить результат:

1. При каждой следующей правке повторяйте: «Сохрани прозрачный фон, не добавляй подложку и сетку». Руководство OpenAI советует повторять требование прозрачности при последующих правках.
2. Не просите нарисовать «шахматный фон, чтобы было видно прозрачность». Такая формулировка описывает именно узор.
3. Если пришла картинка с нарисованными клетками, не правьте её в том же чате десять раз подряд. Вернитесь к исходному изображению или начните новый запрос.

Где в ChatGPT создавать и редактировать изображения и каким моделям API это соответствует, описано в материале [ChatGPT Images 2.5: как пользоваться и где выбрать Sunburst или Flare](https://blog.laozhang.ai/ru/posts/chatgpt-images-2-5).

## В API прозрачность включает background: transparent, а не промпт

В API прозрачный фон задаётся параметром запроса. По [справочнику Images API](https://developers.openai.com/api/reference/resources/images/methods/generate) `background` принимает `transparent`, `opaque` и `auto`. Если его не указать, действует `auto`, и фон выбирает модель. Сколько бы раз слово «прозрачный» ни стояло в тексте запроса, параметр от этого не появится. К значению `transparent` справочник требует формат `png` или `webp`.

Состояние по моделям на 2 октября 2026 года:

| Модель | Прозрачный фон |
| --- | --- |
| `gpt-image-2.5-sunburst`, `gpt-image-2.5-flare` и их снимки от 8 сентября 2026 года | Поддерживается |
| `gpt-image-2`, `gpt-image-2-2026-04-21` | Поддержка в статусе preview |

До августа 2026 года в документации OpenAI значилось, что `gpt-image-2` прозрачный фон не поддерживает. Отсюда материалы с утверждением «GPT Image не умеет прозрачность»: на момент публикации они были верны. Справочник не привязывает прозрачность ни к размеру, ни к качеству, так что совет «выбирайте 1K, в 2K и 4K получится шахматка» документацией не подтверждается.

Тело запроса на `POST https://api.openai.com/v1/images/generations` по справочнику выглядит так. Запрос составлен по документации и при подготовке текста не отправлялся:

```json
{
  "model": "gpt-image-2.5-flare",
  "prompt": "Стикер: рыжий кот в наушниках, плоская иллюстрация. Один изолированный объект, без сцены и тени. Без подложки, шахматной сетки и водяных знаков.",
  "background": "transparent",
  "output_format": "png",
  "size": "1024x1024"
}
```

Три вещи, которые часто упускают:

- **Формат.** `output_format: "jpeg"` несовместим с прозрачностью. Параметр `output_compression` относится только к JPEG и WebP, для PNG его не указывают.
- **Правки.** Для `POST /images/edits` действуют те же `background` и `output_format`. Их нужно передавать в каждом запросе на правку, а в тексте повторять требование сохранить прозрачный фон.
- **Ответ.** Модели GPT Image всегда возвращают картинку в Base64 в поле `data[].b64_json`. Рядом в ответе есть поля `background` (`transparent` или `opaque`) и `output_format`: они показывают, что было применено на самом деле.

Поля ответа дают проверку, для которой не нужно открывать картинку: если там `opaque` или `jpeg`, прозрачным файл быть не может. Если значения `transparent` и `png`, раскодируйте строку из `data[0].b64_json` из Base64, запишите байты в файл с расширением `.png` и проверьте уже его.

Руководство OpenAI советует проверять альфа-канал уже декодированного изображения, особенно волосы, стекло, тени и края объекта. Стоимость одного изображения разобрана отдельно, в материале о [цене API GPT Image 2.5 Sunburst и бюджете генерации](https://blog.laozhang.ai/ru/posts/gpt-image-2-5-api-pricing).

## Сторонний шлюз API: параметр background может не дойти до модели

Сторонний шлюз — это сервис, который принимает ваш запрос по совместимому адресу и сам пересылает его модели. Одно и то же имя модели у разных шлюзов и даже на разных маршрутах одного шлюза может вести себя по-разному: где-то `background` передаётся как есть, где-то молча отбрасывается. Тогда запрос «просил» прозрачность, а пришёл белый фон или нарисованные клетки.

Наглядный пример есть в [документации LaoZhang API](https://docs.laozhang.ai/en/api-capabilities/gpt-image-2-5), платформы, которой принадлежит этот блог. Там три маршрута к GPT Image 2.5, и прозрачность описана для каждого по-своему:

| Маршрут | Что сказано о прозрачном фоне |
| --- | --- |
| `gpt-image-2.5-flare-vip`, `gpt-image-2.5-sunburst-vip` | Прозрачный вывод и удаление фона у загруженной картинки с полями `"background": "transparent"` и `"output_format": "png"` |
| `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst` с официальной пересылкой | Используются параметры OpenAI |
| `gpt-image-2.5-web` | Набор параметров зависит от настроек консоли и фактического результата; на параметры моделей `-vip` рассчитывать не следует |

Модели `-vip` оплачиваются за вызов: $0,03 по публичным ценам на 24 сентября 2026 года. Это описание из документации платформы: платные вызовы для его проверки не выполнялись. Маски (`mask`) эти две модели не поддерживают, прозрачный фон и правка по маске там разные функции.

Для любого шлюза порядок проверки один:

1. Найдите в документации именно вашего маршрута, обещан ли параметр `background`. Упоминание модели на главной странице этого не заменяет.
2. Посмотрите поля `background` и `output_format` в ответе. Передаёт ли конкретный шлюз эти поля без изменений, заранее неизвестно. Если их нет, это не доказательство ни в одну сторону.
3. Проверьте сохранённый файл скриптом из следующего раздела. Он не зависит от того, что шлюз написал в ответе.

То же касается готовых интеграций. Стандартный узел OpenAI в n8n поле `background` не передаёт, поэтому для прозрачного фона нужен узел HTTP Request: подробности в материале [GPT Image 2.5 в n8n: узел OpenAI, HTTP Request и агрегаторы](https://blog.laozhang.ai/ru/posts/gpt-image-2-5-n8n).

## Фон стал белым после сохранения или пересылки: JPG и скриншоты

Если файл был прозрачным, а у получателя фон белый или чёрный, прозрачность потерялась по дороге. Типичных причин три:

- **Сохранение в JPG.** JPEG не хранит альфа-канал. При конвертации прозрачные места заливаются сплошным цветом.
- **Скриншот вместо файла.** Снимок экрана фиксирует то, что нарисовано в окне, вместе с клетками программы просмотра. Так настоящая прозрачность превращается в нарисованную шахматку.
- **Загрузка в мессенджер или на сайт.** Сервис может перекодировать картинку, например в JPEG. Происходит ли это, зависит от площадки и способа отправки, поэтому смотреть нужно на файл, который дошёл до получателя.

Проверка одна и та же: запустите скрипт на том файле, который получил адресат, и сравните с исходным.

## Скрипт проверки: альфа-канал, нарисованная сетка или не тот формат

Скрипт отвечает на вопрос «что на самом деле лежит в файле» и выдаёт один из шести вердиктов. Он читает настоящий формат, а не расширение, считает прозрачные, полупрозрачные и непрозрачные пиксели и, если прозрачных нет, смотрит на рамку по краю картинки: два чередующихся светлых нейтральных тона означают нарисованную сетку. Нужны Python и библиотека Pillow (`pip install pillow`).

```python
"""Отличает настоящую прозрачность от нарисованной шахматки.

Запуск: python check_transparency.py image.png [ещё файлы...]
Нужна библиотека Pillow (pip install pillow).
"""
import sys
from collections import Counter
from pathlib import Path

from PIL import Image


def border_pixels(rgb, ring=0.04):
    """Пиксели узкой рамки по краю картинки: обычно там фон."""
    w, h = rgb.size
    t = max(2, int(min(w, h) * ring))
    px = rgb.load()
    for y in range(h):
        for x in range(w):
            if x < t or x >= w - t or y < t or y >= h - t:
                yield px[x, y]


def painted_checkerboard(rgb):
    """True, если рамка состоит из двух светлых нейтральных тонов, которые чередуются."""
    w, h = rgb.size
    small = rgb.resize((min(w, 256), min(h, 256)), Image.NEAREST)
    tones = Counter()
    total = 0
    for r, g, b in border_pixels(small):
        total += 1
        if max(r, g, b) - min(r, g, b) <= 12 and min(r, g, b) >= 150:
            tones[round((r + g + b) / 3 / 8)] += 1  # серый с шагом в 8 уровней
    if total == 0 or sum(tones.values()) / total < 0.85:
        return False  # рамка в основном не светло-серая и не белая
    buckets = sorted(tones)
    light = [b for b in buckets if tones[b] / total >= 0.15]
    if len(light) < 2 or (max(light) - min(light)) * 8 < 10:
        return False  # один ровный тон: обычный белый или серый фон
    # Два тона должны чередоваться вдоль верхней строки, а не лежать двумя большими блоками.
    mid = (max(light) + min(light)) * 8 / 2
    row = [sum(small.getpixel((x, 1))) / 3 > mid for x in range(small.width)]
    flips = sum(1 for a, b in zip(row, row[1:]) if a != b)
    return flips >= 4


def check(path):
    with Image.open(path) as im:
        real_format, mode = im.format, im.mode
        rgba = im.convert("RGBA")  # прозрачность палитры становится обычным альфа-каналом
    print(f"{path.name}: {real_format}, режим {mode}, {rgba.width}x{rgba.height}")
    if real_format not in ("PNG", "WEBP"):
        print(f"  НЕ ТОТ ФОРМАТ: внутри файла {real_format}, а он не хранит альфа-канал.")
        return "wrong-format"

    hist = rgba.getchannel("A").histogram()
    total = rgba.width * rgba.height
    clear, solid = hist[0], hist[255]
    partial = total - clear - solid
    print(f"  альфа: прозрачных {clear / total:.1%}, полупрозрачных {partial / total:.1%}, непрозрачных {solid / total:.1%}")

    if clear == total:
        print("  ПУСТО: прозрачны все пиксели.")
        return "empty"
    if clear + partial == 0:
        if painted_checkerboard(rgba.convert("RGB")):
            print("  ПОДДЕЛКА: прозрачных пикселей нет, по краю двухцветная серая сетка. Шахматка нарисована.")
            return "painted-checkerboard"
        print("  НЕПРОЗРАЧНО: прозрачных пикселей нет. Фон — обычная часть картинки.")
        return "opaque"
    if clear == 0 and len([v for v in hist if v]) == 1:
        print("  ВЫЦВЕТШЕЕ: везде одно значение альфы. Снижена непрозрачность всей картинки, фон не вырезан.")
        return "faded"
    print("  НАСТОЯЩАЯ: прозрачные пиксели есть. Дальше посмотрите края на тёмной и на цветной подложке.")
    return "real"


if __name__ == "__main__":
    if len(sys.argv) < 2:
        sys.exit(__doc__)
    for name in sys.argv[1:]:
        check(Path(name))
```

Для каждого файла скрипт печатает три строки: настоящий формат, режим и размер; доли прозрачных, полупрозрачных и непрозрачных пикселей; вердикт. «НАСТОЯЩАЯ» означает, что прозрачные пиксели есть. «ПОДДЕЛКА» — что их нет, а по краю идёт двухцветная сетка. «НЕПРОЗРАЧНО» — сплошной фон без сетки. «НЕ ТОТ ФОРМАТ» — внутри не PNG и не WebP. «ВЫЦВЕТШЕЕ» — всей картинке снизили непрозрачность, но фон не вырезали. «ПУСТО» — прозрачно всё, объекта нет.

Скрипт запускался 2 октября 2026 года на десяти синтетических файлах размером 512×512 (Python 3.12.1, Pillow 12.0.0, macOS). Все десять получили ожидаемый вердикт:

| Тестовый файл | Что в нём | Вердикт |
| --- | --- | --- |
| `real-alpha.png` | Красный объект с белой этикеткой, фон прозрачный | `real` |
| `real-alpha.webp` | То же в WebP без потерь | `real` |
| `palette-transparent.png` | PNG с палитрой и прозрачным цветом | `real` |
| `painted-checkerboard.png` | Клетки 16 пикселей, белые и серые, режим RGB | `painted-checkerboard` |
| `painted-checkerboard-rgba.png` | Те же клетки, режим RGBA, но альфа везде 255 | `painted-checkerboard` |
| `painted-checkerboard-noisy.png` | Клетки с размытием, шумом и пересохранением через JPEG | `painted-checkerboard` |
| `white-background.png` | Объект на белом фоне | `opaque` |
| `jpeg-renamed.png` | JPEG с расширением `.png` | `wrong-format` |
| `faded.png` | Картинка с одинаковой альфой 128 по всему полю | `faded` |
| `empty.png` | Полностью прозрачный файл | `empty` |

Пятая строка объясняет, почему режим RGBA сам по себе ничего не доказывает: альфа-канал в файле есть, но все его значения равны 255.

Образцы нарисованы в Pillow и не являются выводом ChatGPT или GPT Image. Клетки, нарисованные моделью, могут быть неровными, идти с перспективой, быть темнее или лежать под тенью. Тогда скрипт не узнает в них сетку и напишет «НЕПРОЗРАЧНО». Главный вывод при этом остаётся верным: прозрачных пикселей в файле нет. Распознавание сетки не сработает и в трёх предсказуемых случаях: клетки темнее уровня 150 из 255, объект занимает больше 15 % рамки по краю, поперёк картинки помещается меньше пяти клеток.

## Как убрать нарисованную шахматку скриптом и где он ошибается

Нарисованную сетку можно превратить в прозрачность заливкой от края: скрипт идёт от границ картинки по светлым нейтральным пикселям и делает их прозрачными, пока не упрётся в цветной объект. Белые участки внутри объекта, которые с краем не соединены, остаются на месте.

```python
"""Превращает нарисованную светлую шахматку в настоящую прозрачность.

Запуск: python remove_painted_checkerboard.py fake.png fixed.png
Нужна библиотека Pillow (pip install pillow).

Заливка идёт от края картинки по светлым нейтральным пикселям. Она достаёт
только до фона, который соединён с краем, поэтому белые участки внутри объекта
(глаза, зубы, этикетка) остаются. Белый или светло-серый край объекта от сетки
она не отличит, а на мягких краях оставит тонкую светлую кайму.
"""
import sys
from collections import deque

from PIL import Image

src, dst = sys.argv[1], sys.argv[2]
im = Image.open(src).convert("RGBA")
w, h = im.size
px = im.load()


def is_grid(p):
    r, g, b, _ = p
    return max(r, g, b) - min(r, g, b) <= 14 and min(r, g, b) >= 170


seen = bytearray(w * h)
queue = deque()
for x in range(w):
    queue.append((x, 0))
    queue.append((x, h - 1))
for y in range(h):
    queue.append((0, y))
    queue.append((w - 1, y))

removed = 0
while queue:
    x, y = queue.popleft()
    i = y * w + x
    if seen[i]:
        continue
    seen[i] = 1
    if not is_grid(px[x, y]):
        continue
    px[x, y] = (0, 0, 0, 0)
    removed += 1
    if x > 0:
        queue.append((x - 1, y))
    if x < w - 1:
        queue.append((x + 1, y))
    if y > 0:
        queue.append((x, y - 1))
    if y < h - 1:
        queue.append((x, y + 1))

im.save(dst)
print(f"Прозрачными стали {removed / (w * h):.1%} пикселей -> {dst}")
```

Результаты на тех же синтетических образцах, в сравнении с исходной маской объекта:

| Образец | Фон стал прозрачным | Потеряно пикселей объекта | Белая этикетка внутри объекта | Повторная проверка |
| --- | --- | --- | --- | --- |
| Чистая сетка, красный объект | 100,0 % | 0 % | сохранена на 100 % | `real` |
| Сетка с размытием, шумом и следами JPEG | 99,63 % | 0 % | сохранена на 100 % | `real` |
| Почти белый объект, касающийся клеток | — | 100 % | — | — |

Третья строка показывает главный предел метода. Объект цвета 250 из 255 по всем каналам для скрипта неотличим от клетки, и заливка съела его целиком. По той же причине пострадает белая кружка, светло-серый корпус техники, белая надпись, выходящая к краю объекта, светлая шерсть.

![Граница применимости заливки от края: яркий объект с белой этикеткой сохраняется на прозрачном фоне, почти белый объект исчезает целиком](https://blog.laozhang.ai/posts/ru/gpt-image-transparent-background-checkerboard/img/flood-fill-limits.webp)

Остальные ограничения следуют из кода:

- **Край получается жёстким.** В восстановленных файлах не оказалось ни одного полупрозрачного пикселя. Волосы, мех, стекло, дым и мягкие тени так не восстановить: сведений о плавном переходе в испорченном файле уже нет.
- **Светлая кайма.** На сглаженной границе объекта могут остаться пиксели, смешанные с цветом клеток. На тёмной подложке они дают тонкий светлый ободок.
- **Тёмные клетки останутся.** Порог светлоты равен 170 из 255, и сетку с более тёмным серым скрипт не тронет.
- **Остатки в шуме.** 99,63 % означает, что отдельные точки фона остались непрозрачными. На цветной подложке их видно как мелкий мусор, после починки файл стоит просмотреть при увеличении.

После починки снова запустите скрипт проверки и посмотрите результат на тёмной и на яркой подложке.

## Когда чинить бесполезно: исходник или удаление фона

Чинить скриптом стоит только плоский, насыщенный по цвету объект на светлой ровной сетке: стикер, значок, яркую иконку. В остальных случаях быстрее и чище выбрать другой путь.

- **Объект можно перерисовать.** Сгенерируйте заново: в API с `background: "transparent"`, в ChatGPT с запретом на сетку и подложку в новом запросе.
- **Объект менять нельзя: товар, логотип, персонаж из утверждённого макета.** Не просите модель «убрать шахматку». Это ещё одна генеративная правка, а руководство OpenAI предупреждает, что повторные правки могут менять детали, которые вы хотели сохранить. Возьмите исходное изображение, сделанное до появления сетки, и уберите фон выделением в редакторе или специальным сервисом.
- **Края сложные: волосы, мех, стекло, тень.** Нужен инструмент удаления фона, который строит полупрозрачную маску, и исходник без клеток.
- **Фон пропал при пересылке.** Чинить нечего: найдите исходный файл и передайте его без перекодирования.

Способы убрать фон у готового фото, логотипа или товара без нейросети и в каком формате отдавать результат, собраны в руководстве [как сделать прозрачный фон PNG и проверить, что он настоящий](https://blog.laozhang.ai/ru/posts/transparent-image-maker).

## Частые вопросы о шахматке и прозрачном фоне

### Серая шахматная доска — это и есть прозрачный фон?

Только если её рисует программа просмотра. Редакторы и просмотрщики показывают клетки под прозрачными пикселями, чтобы пустое место было заметно, и в самом файле этих клеток нет. Если клетки остаются, когда картинку кладут на цветной фон, они записаны в пикселях, и фон непрозрачен.

### Умеет ли ChatGPT делать PNG с прозрачным фоном?

В справке OpenAI сказано, что ChatGPT Images может по инструкции сделать фон прозрачным. Настройки для этого нет, формат сохраняемого файла в справке не описан, а пользователи сообщали и об удачных результатах, и о нарисованной сетке. Поэтому каждую сохранённую картинку нужно проверять.

### Какой формат хранит прозрачность у картинок из GPT Image?

PNG и WebP. Для `background: "transparent"` справочник API требует `output_format` со значением `png` или `webp`. JPEG альфа-канал не хранит.

### Нужно ли по-разному работать с gpt-image-2 и GPT Image 2.5?

Параметры одинаковые, различается статус. Для `gpt-image-2.5-sunburst` и `gpt-image-2.5-flare` прозрачный фон поддерживается, для `gpt-image-2` по состоянию на 2 октября 2026 года поддержка отмечена как preview. Если прозрачность нужна в рабочем процессе, надёжнее выбирать одну из моделей 2.5.

### Почему через сторонний шлюз параметр background не сработал?

Чаще всего потому, что выбранный маршрут его не передаёт модели. Сверьтесь с документацией именно этого маршрута, посмотрите поля `background` и `output_format` в ответе и проверьте файл скриптом. Если маршрут параметр не обещает, смените маршрут или обращайтесь к API напрямую.

### Можно ли попросить ChatGPT убрать шахматку с готовой картинки?

Можно, но это новая генерация по старой картинке: объект при этом может измениться. Для стикера это допустимо, для товара или логотипа нет. Яркий объект на светлой ровной сетке надёжнее починить скриптом заливки, остальное переделать с исходника.
