Как генерировать и редактировать картинки через GPT Image 2.5 API

Вызываем Flare и Sunburst из Python: генерация, сохранение, правки исходной фотографии, прозрачный PNG и ограничения размеров. Где выбрать модель в Responses API.

Как генерировать и редактировать картинки через GPT Image 2.5 API

В OpenAI Images API выберите gpt-image-2.5-flare или gpt-image-2.5-sunburst и вызовите client.images.generate() либо client.images.edit(). Изображение можно сохранить, декодировав data[0].b64_json.

Примеры сверены с официальным руководством 9 сентября 2026 года, но не проверялись с помощью платных вызовов API. Они обращаются непосредственно к OpenAI. Для шлюза нужно отдельно проверить ID, поддержку эндпоинтов и цены.

Сначала выберите модель

ID моделиОфициальное описаниеС чего начать проверку
gpt-image-2.5-flareНебольшая модель с упором на скорость и качеством, сопоставимым с GPT Image 2Варианты эскизов и задачи с ограничением задержки
gpt-image-2.5-sunburstБазовая модель с упором на качество и точные правкиДетализированные готовые материалы и сложное редактирование

Это исходные ориентиры, а не гарантии результата. Подробнее — в сравнении Flare и Sunburst. Название семейства не заменяет точный ID в API.

Генерация в Python

Установите актуальный SDK и передайте ключ через переменную окружения OPENAI_API_KEY. Не храните ключ в исходном коде.

python -m pip install --upgrade openai
import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

result = client.images.generate(
    model="gpt-image-2.5-flare",
    prompt=(
        "Create a clean product photograph of a ceramic tea cup on a "
        "warm gray background. Soft natural light, no text or watermark."
    ),
    size="1024x1024",
    quality="medium",
    output_format="png",
)

Path("tea-cup.png").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)
print(result.usage)

Запрос задаёт PNG и сохраняет полученные байты в PNG-файл. Сохраняйте usage для расчёта расходов: сам факт появления картинки ничего не говорит о расходе токенов.

Редактирование исходной фотографии

Передайте файл в images.edit(). Отдельно укажите, что изменить и что сохранить. В примере product.png — существующее локальное изображение.

import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()

with open("product.png", "rb") as reference:
    result = client.images.edit(
        model="gpt-image-2.5-sunburst",
        image=reference,
        prompt=(
            "Remove the background from this product photograph. "
            "Preserve the product shape, colors, and label text. "
            "Use a fully transparent background, with no checkerboard."
        ),
        size="1024x1024",
        quality="high",
        background="transparent",
        output_format="png",
    )

Path("product-cutout.png").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)

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

Явно задайте размер и качество

Обе модели поддерживают auto, low, medium, high, xhigh, max. При сравнении запросов явное значение упрощает контроль условий.

Рекомендуемые размеры включают 1024x1024, 1536x1024 и 1024x1536. Произвольные размеры должны удовлетворять всем ограничениям:

  • Ширина и высота кратны 16.
  • Ни одна сторона не превышает 3 840 пикселей.
  • Соотношение сторон находится между 1:3 и 3:1.
  • Общее число пикселей — от 655 360 до 8 294 400.

OpenAI помечает разрешения выше 2560x1440 как экспериментальные. Упоминание 4K не гарантирует поддержку любых размеров, называемых 4K, или одинаковую надёжность.

Для прозрачности используйте PNG либо WebP. output_compression применяется к JPEG и WebP, но не PNG. Более высокая настройка качества не гарантирует улучшения для каждого промпта; сравнивайте на своих входных данных.

В Responses API модель изображений задаётся внутри инструмента

Images API выбирает модель напрямую. Responses разделяет внешнюю языковую модель и инструмент генерации:

response = client.responses.create(
    model="gpt-6-astra",
    input="Generate a product photo of a ceramic tea cup on a gray background.",
    tools=[{
        "type": "image_generation",
        "model": "gpt-image-2.5-sunburst",
        "output_format": "png",
    }],
)

for index, item in enumerate(response.output):
    if item.type == "image_generation_call":
        Path(f"response-image-{index}.png").write_bytes(
            base64.b64decode(item.result)
        )

Код использует импорты и client из предыдущего примера. Внешний model выбирает языковую модель, а поле внутри инструмента — модель изображений. Такой шаблон приведён в документации OpenAI.

В Responses дополнительно может оплачиваться использование языковой модели. Перед сравнением с прямыми запросами Images изучите разбор цен.

Перед подключением к рабочему приложению

Проверьте доступ к модели для используемого аккаунта и провайдера. Обновление SDK не выдаёт права доступа, а пример OpenAI не доказывает наличие аналогичного маршрута у другого сервиса.

Записывайте модель, промпт, качество, размеры, usage, время ответа и выходной файл. Для правок добавьте проверку текста и непреднамеренных изменений. Если заменяете GPT Image 2, используйте проверки перед миграцией до перевода всего трафика.

Часто задаваемые вопросы

Какой ID у GPT Image 2.5 API?
Выберите gpt-image-2.5-flare или gpt-image-2.5-sunburst. Используйте точный ID из документации провайдера, а не предполагаемое имя семейства.
Можно получить прозрачный PNG?
Да. Задайте background=transparent и output_format=png или webp, затем проверьте альфа-канал сохранённого файла. JPEG не сохраняет прозрачность.
Где выбрать модель изображений в Responses?
В определении инструмента image_generation. Внешнее поле model выбирает языковую модель, управляющую запросом.