GPT Image 2

GPT Image 2 — новейшая модель GPT Image от OpenAI для генерации и редактирования изображений. Aiberm предоставляет её через OpenAI-совместимые эндпоинты изображений, поэтому можно использовать OpenAI SDK, сменив base_url / baseURL на https://aiberm.com/v1.

Эндпоинт генерации: POST https://aiberm.com/v1/images/generations

Эндпоинт редактирования: POST https://aiberm.com/v1/images/edits

Модель: gpt-image-2

Выбор API

Используйте Image API, когда нужно одним запросом сгенерировать или отредактировать изображение. Это рекомендуемый путь для большинства интеграций с Aiberm.

OpenAI также описывает генерацию изображений как инструмент в Responses API для диалоговых или многошаговых сценариев. Если интеграция зависит от многоходового редактирования, сначала убедитесь, что ваша модель и эндпоинт Aiberm поддерживают Responses API.

Сгенерировать изображение

Image API возвращает данные изображения в base64 в data[0].b64_json. Декодируйте их и запишите байты в файл.

1from openai import OpenAI
2import base64
3 
4client = OpenAI(
5 api_key="YOUR_API_KEY",
6 base_url="https://aiberm.com/v1",
7)
8 
9result = client.images.generate(
10 model="gpt-image-2",
11 prompt="A clean product photo of a matte black smart desk lamp on a white background",
12 size="1024x1024",
13 quality="medium",
14)
15 
16image_base64 = result.data[0].b64_json
17image_bytes = base64.b64decode(image_base64)
18 
19with open("lamp.png", "wb") as f:
20 f.write(image_bytes)

Проверенный пример результата

Это изображение сгенерировано примером на Python выше и сохранено из data[0].b64_json.

Generated matte black smart desk lamp

Редактирование с опорными изображениями

Передайте одно или несколько изображений в images.edit и опишите желаемый результат. Несколько входных изображений можно использовать как опоры для новой композиции.

1from openai import OpenAI
2import base64
3 
4client = OpenAI(
5 api_key="YOUR_API_KEY",
6 base_url="https://aiberm.com/v1",
7)
8 
9result = client.images.edit(
10 model="gpt-image-2",
11 image=[
12 open("product.png", "rb"),
13 open("background.png", "rb"),
14 ],
15 prompt="Place the product from the first image onto the desk in the second image. Keep realistic lighting.",
16 size="1536x1024",
17 quality="high",
18)
19 
20image_bytes = base64.b64decode(result.data[0].b64_json)
21with open("edited-product.png", "wb") as f:
22 f.write(image_bytes)

Проверенное редактирование по опоре

Пример редактирования объединяет изображение продукта с фоном стола и возвращает новый PNG размером 1536x1024.

Вход: продуктВход: фонРезультат правки
Product reference imageDesk background reference imageEdited product placed on desk

Редактирование с маской

Используйте маску, когда нужно указать, какая область должна измениться. Исходное изображение и маска должны иметь одинаковые размеры и формат, а маска должна содержать альфа-канал.

1from openai import OpenAI
2import base64
3 
4client = OpenAI(
5 api_key="YOUR_API_KEY",
6 base_url="https://aiberm.com/v1",
7)
8 
9result = client.images.edit(
10 model="gpt-image-2",
11 image=open("room.png", "rb"),
12 mask=open("mask.png", "rb"),
13 prompt="Replace the masked area with a modern walnut bookshelf.",
14)
15 
16image_bytes = base64.b64decode(result.data[0].b64_json)
17with open("room-bookshelf.png", "wb") as f:
18 f.write(image_bytes)

Проверенное редактирование с маской

Изображение маски использует альфа-канал, чтобы задать редактируемую область. Возвращаемое изображение — обычный PNG.

Исходное изображениеМаскаРезультат правки
Room source imageAlpha mask imageBookshelf mask edit output

Потоковая передача промежуточных изображений

В исходном API OpenAI задокументированы stream и partial_images для получения промежуточных изображений до финального результата. На Aiberm считайте это зависящим от совместимости: используйте обычный непотоковый сценарий, пока эндпоинт явно не подтвердит поддержку streaming.

Если отправить stream: true и partial_images, ответ всё равно может быть обычным финальным JSON с data[0].b64_json.

Параметры вывода

ПараметрЗначенияПримечания
sizeauto, 1024x1024, 1536x1024, 1024x1536, 2048x2048, 2048x1152, 3840x2160, 2160x3840 или другой допустимый пользовательский размерКаждая сторона должна быть кратна 16 px, максимум стороны — 3840 px, соотношение сторон не больше 3:1, общее число пикселей — от 655 360 до 8 294 400.
qualityauto, low, medium, highlow — для быстрых черновиков, medium или high — для финальных материалов.
output_formatpng, jpeg, webpПо умолчанию png. jpeg обычно быстрее, если прозрачность не нужна.
output_compression0100Применяется к jpeg и webp.
backgroundauto, варианты непрозрачного фонаgpt-image-2 сейчас не поддерживает background: "transparent".
stream, partial_imagesЗависит от совместимостиAiberm может вернуть обычный финальный JSON вместо потоковых событий с промежуточными изображениями.
moderationauto, lowauto — уровень фильтрации по умолчанию.

Замечания и ограничения

  • Сложные промпты обрабатываются дольше; закладывайте в приложение таймауты и фоновую работу.
  • Отрисовка текста улучшена, но точность по-прежнему не гарантируется. Для логотипов, подписей и макетов интерфейса проверяйте результат перед публикацией.
  • Модель может не идеально сохранять повторяющихся персонажей, точную компоновку или детали бренда между отдельными генерациями.
  • При правках не передавайте input_fidelity вместе с gpt-image-2; модель и так обрабатывает входные изображения с высокой точностью.
  • При правках с маской маска служит ориентиром, а не пиксельно точным выделением.