Как генерировать и редактировать картинки через GPT Image 2.5 API
Вызываем Flare и Sunburst из Python: генерация, сохранение, правки исходной фотографии, прозрачный PNG и ограничения размеров. Где выбрать модель в Responses 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 выбирает языковую модель, управляющую запросом.


