API Hop

Документация

Документация API Hop

Генерация изображений GPT-Image-2

Создавайте изображения или редактируйте референсы с gpt-image-2 и получайте результаты в текущем JSON-ответе или SSE-соединении.

POSThttps://api.apihop.ai/openai/v1/images/generations

gpt-image-2 поддерживает генерацию и редактирование изображений-референсов для товарных изображений, черновиков плакатов, иллюстраций, материалов для соцсетей, визуальных материалов высокого разрешения, переноса стиля и объединения нескольких референсов.

text
POST https://api.apihop.ai/openai/v1/images/generations

Аутентификация

http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Быстрый старт

json
{
  "model": "gpt-image-2",
  "prompt": "A minimal black wireless earbud product poster on a white background, clean studio lighting, no text",
  "n": 1,
  "size": "2048x1152",
  "resolution": "2k",
  "quality": "low"
}

Границы сравнения цен

Опубликованные уровни изображений 1K / 2K / 4K RequestBeam — это *продажные цены RequestBeam*, а не официальные фиксированные тарифы OpenAI за изображение. Документация цен OpenAI описывает оплату токенов изображений/текста и уровней обработки; фактическая стоимость зависит от размера, качества, референсов и вывода. Сравнение только потому, что обе стороны упоминают 1k или 2k, не является расчётом скидки на одинаковых условиях.

Чтобы избежать необоснованных заявлений об экономии, прежний агрегированный ориентир провайдеров USD per image и значок скидки намеренно скрыты для GPT Image 2. Цена RequestBeam остаётся видимой, контракт оплаты не меняется. Для обоснованного будущего сравнения фиксируйте точную модель, эндпоинт, качество, размер, условия ввода, официальный URL источника и дату проверки ориентира. Перед платным вызовом проверяйте действующую цену своего аккаунта.

Тело запроса

modelstringобязательноПо умолчанию: gpt-image-2

ID модели изображений. Используйте gpt-image-2.

promptstringобязательно

Запрос для изображения. Опишите объект, сцену, композицию, стиль, материал, освещение, цвета и необходимость текста.

nintegerПо умолчанию: 1

Число генерируемых изображений. Текущий публичный контракт gpt-image-2 поддерживает только 1. Другие значения возвращают 400 до резервирования средств.

sizestringПо умолчанию: auto

Соотношение сторон или размеры вывода в пикселях.

Распространённые значения:

  • 1:1
  • 4:3
  • 16:9
  • 9:16
  • 1024x1024
  • 1536x1024
  • 1024x1536
  • 2048x2048
  • 2048x1152
  • 3840x2160
  • 2160x3840
  • auto
qualitystringПо умолчанию: auto

Качество вывода. Поддерживаются low, medium, high и auto.

resolutionstringПо умолчанию: 1k

Уровень разрешения вывода. Поддерживаются 1k, 2k и 4k.

Можно сочетать с size, например size: "16:9" и resolution: "2k".

image_urlsarray<string>

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

  • До 16 изображений.
  • Каждое изображение — до 20 MB, общий лимит ввода — 256 MB.
  • Поддерживаются общедоступные URL изображений.
  • Поддерживаются URI данных Base64, например data:image/...;base64,....
  • URL и URI данных Base64 можно смешивать в одном массиве.
output_formatstringПо умолчанию: png

Формат вывода. Поддерживаются png, jpeg и webp.

streambooleanПо умолчанию: false

Нужно ли возвращать Server-Sent Events.

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

Редактирование референсных изображений использует тот же JSON-эндпоинт. Добавьте image_urls и опишите в prompt, что сохранить и изменить:

json
{
  "model": "gpt-image-2",
  "prompt": "Keep the product unchanged, replace the background with a dark blue studio, and add soft rim lighting",
  "image_urls": [
    "https://example.com/product.png"
  ],
  "size": "1:1",
  "resolution": "2k"
}

Несколько референсов могут задавать объект, композицию или визуальный стиль:

json
{
  "model": "gpt-image-2",
  "prompt": "Use the product from the first image and the composition from the second image to create a clean ecommerce hero image",
  "image_urls": [
    "https://example.com/product.png",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ],
  "size": "4:3",
  "resolution": "2k"
}

Текущие границы публичного контракта:

  • Редактирование целого изображения, перенос стиля и объединение нескольких референсов поддерживаются через image_urls.
  • Отдельного маршрута POST https://api.apihop.ai/openai/v1/images/edits нет.
  • Загрузки multipart/form-data не принимаются. Сначала преобразуйте локальные изображения в URI данных Base64 или загрузите их по доступным URL.
  • Заполнение по маске не поддерживается. Передача mask, mask_url или maskUrl возвращает 400 до резервирования средств.

Примеры запросов

Товарное изображение 1:1

json
{
  "model": "gpt-image-2",
  "prompt": "A transparent glass cup on a light gray background, commercial product photography, soft shadow, no text",
  "n": 1,
  "size": "1024x1024",
  "resolution": "1k",
  "quality": "low",
  "output_format": "png"
}

Плакат 16:9

json
{
  "model": "gpt-image-2",
  "prompt": "A futuristic city night poster with neon lights, wet streets, cinematic composition, no text",
  "n": 1,
  "size": "2048x1152",
  "resolution": "2k",
  "quality": "medium",
  "output_format": "jpeg"
}

Как возвращаются результаты

Этот совместимый с OpenAI эндпоинт не возвращает сначала ответ о постановке задачи с data.jobId для последующего опроса:

  • При stream: false текущий HTTP-запрос ожидает завершения и возвращает URL изображений в JSON-ответе.
  • При stream: true текущее SSE-соединение остаётся открытым до image_generation.completed и [DONE].

Не используйте GET https://api.apihop.ai/v1/jobs/{id} для получения результатов этого эндпоинта. Используйте Получение асинхронной задачи, только когда асинхронный эндпоинт создания явно возвращает jobId.

Непотоковый ответ

Ответ содержит URL изображений. usage включается, если маршрут провайдера предоставляет данные измерения использования.

json
{
  "created": 1777270000,
  "data": [
    {
      "url": "https://image.example.com/generated/123456789012345678/0.png"
    }
  ],
  "usage": {
    "input_tokens": 20,
    "output_tokens": 1234,
    "total_tokens": 1254
  }
}

Потоковый ответ

text
event: image_generation.completed
data: {"type":"image_generation.completed","data":[{"index":0,"url":"https://image.example.com/generated/123456789012345678/0.png"}],"usage":{"input_tokens":20,"output_tokens":1234,"total_tokens":1254}}

data: [DONE]

Справочник размеров

Целевое соотношениеРекомендация 1KРекомендация 2KРекомендация 4K
1:11024x10242048x2048Не рекомендуется
3:21536x10242048x1360Не рекомендуется
2:31024x15361360x2048Не рекомендуется
4:31024x7682048x1536Не рекомендуется
3:4768x10241536x2048Не рекомендуется
16:91536x8642048x11523840x2160
9:16864x15361152x20482160x3840
21:92016x8642688x11523840x1648
9:21864x20161152x26881648x3840

Ответ с ошибкой

Полный справочник кодов, различия протоколов и этапы диагностики приведены в разделе Коды ошибок и устранение неполадок.

json
{
  "code": 10000,
  "message": "prompt is required",
  "type": "api_error"
}

Типичные ошибки:

  • 400: отсутствуют обязательные параметры или сочетание не поддерживается
  • 401: аутентификация не удалась или ключ API неверен
  • 402: недостаточный баланс
  • 404: модель не существует или не включена
  • 429: превышен лимит частоты
  • 5xx: сервис временно недоступен или генерация изображения не удалась