Перейти к навигации

GPT Image 2.6 Sunburst

Создавайте или редактируйте изображение по тексту и с использованием до 16 референсных изображений: в 1K, 2K, 4K либо с точным размером в пикселях, — или короткую GIF-анимацию по промпту. Оплата по токенам, которые фактически ушли на генерацию; параметр quality задаёт число выходных токенов.

  • Оплата по токенам: текстовый ввод, ввод изображений и выходные токены по тарифам за 1 млн токенов. Цены за изображение ниже — оценка при качестве medium.
  • quality определяет, сколько выходных токенов уйдёт на генерацию, а значит и цену: чем ниже значение, тем дешевле. Без поля используется medium.
  • Только асинхронно: создайте задачу через POST /v1/images/tasks, затем опрашивайте GET /v1/tasks/{task_id}. Генерация идёт на стороне BeatAPI, поэтому даже долгая генерация не держит ваше соединение. Синхронный POST /v1/images/generations для этой модели недоступен.
  • Одна задача создаёт одно изображение. Для нескольких изображений создайте несколько задач.
  • Генерация по тексту либо редактирование и объединение до 16 референсных изображений по общедоступным HTTPS-ссылкам.
  • Задайте кадр через resolution и aspect_ratio либо одним точным size, например 1536x1024. Сочетать эти способы нельзя.
  • output_format: "gif" делает по одному промпту анимацию из 9 кадров по 200 мс; size задаёт кадр (512–960 px). Оплата за токены, как у обычного изображения.

GPT Image 2.6 Sunburst — базовая модель OpenAI GPT Image 2.6, с большей детализацией, чем у Flare, выпущена 2026-11-04. Оплата идёт за токены, которые использовала каждая генерация, по 90% от прайса OpenAI; доступен параметр quality. Запрос такой же, как у GPT Image 2.5 Sunburst, но без background, плюс output_format, который умеет делать и короткую GIF-анимацию. gpt-image-2.6-sunburst-beta — линия той же модели с фиксированной ценой. Для более быстрой и дешёвой генерации используйте gpt-image-2.6-flare. Цены.

POST/v1/images/tasksПопробовать

Открывает модель в API Explorer. Введите свой API-ключ BeatAPI, чтобы создать задачу. Это настоящий запрос: его стоимость спишется с вашего баланса.

Идентификаторы моделей

Модель с фиксированной ценой (-beta) и эта принимают один и тот же запрос, кроме quality и параметра size кадра GIF; отличается только способ расчёта цены. Значения ниже взяты прямо из контракта шлюза.

ID моделиresolutionqualityМаксимум imagesЦена
gpt-image-2.6-sunburst-beta1K, 2K, 4K—16Одна фиксированная цена за изображение по классу размера и одна цена за GIF. quality отклоняется.
gpt-image-2.6-sunburst1K, 2K, 4Klow, medium, high, xhigh, max16Токены, ушедшие на генерацию, по тарифам за 1 млн токенов. quality задаёт число выходных токенов.

Адрес API и авторизация

POST https://api.beatapi.io/v1/images/tasks

Authorization string Обязательно

Передавайте API-ключ BeatAPI как Bearer <BEATAPI_API_KEY>. Создать ключ можно в панели управления. Храните ключи на сервере, а не в коде браузерного или мобильного приложения.

Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.

Как выполняется запрос

1

Создайте задачу

Отправьте перечисленные ниже параметры методом POST на указанный адрес. Ответ 201 означает, что задача принята, а её стоимость зарезервирована на балансе. Обработка идёт в фоновом режиме. Сохраните data.id.

2

Дождитесь завершения

Вызывайте GET /v1/tasks/{task_id}, выдерживая между вызовами data.poll_after_seconds (5 с для изображений, 8 с для видео), пока status не станет succeeded или failed. Можно также настроить вебхук для событий task.succeeded и task.failed. Сохраняйте опрос как резервный способ проверки: задача, остановленная по тайм-ауту обработки, не отправляет событие.

3

Сохраните результат

При succeeded скачайте файлы по всем ссылкам data.output.media[].url и сохраните нужные результаты у себя. BeatAPI не гарантирует срок доступности этих ссылок. При failed прочитайте data.error_code и data.error_message: зарезервированная сумма возвращена на баланс, а data.retryable показывает, может ли повтор того же запроса завершиться успешно.

Режимы ввода

РежимОбязательные данныеПримечания
Изображение по текстуmodel, promptНе передавайте images.
Редактирование или объединение изображенийmodel, prompt, imagesОт 1 до 16 общедоступных HTTPS-ссылок на изображения. В prompt опишите, что изменить, сохранить или объединить.
GIF-анимацияmodel, prompt, output_formatОтправьте "output_format": "gif" и не передавайте images, resolution и aspect_ratio. Передайте size, чтобы задать кадр, или опустите его — тогда кадр выберет модель.

Параметры запроса

model string Обязательно

Модель, которую нужно вызвать.

Значение: gpt-image-2.6-sunburst

Если значение неверно

  • Поле отсутствует: "model" is required
  • Неизвестный ID модели: "model" gpt-image-9 is not catalogued
  • На этот адрес API отправлена видеомодель: "model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint

prompt string Обязательно

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

Длина: 1–5000 символов

  • Длина измеряется в символах. Иероглиф CJK считается одним символом.
  • При передаче images укажите назначение каждого изображения, например «Используй первое изображение для товара, а второе — для фона».
  • Для GIF промпт — единственный вход: опишите объект и движение.

Если значение неверно

  • Поле отсутствует: "prompt" is required
  • Пустое значение или превышена допустимая длина: "prompt" has an unsupported length
  • Значение не является строкой: "prompt" must be a string

images string[] Необязательно

Референсные изображения для редактирования или объединения. Это поле переключает запрос с генерации по тексту на редактирование изображений.

Число элементов: 1–16
Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.

  • Каждая ссылка должна возвращать сам файл PNG, JPEG или WebP по общедоступному HTTPS, не более 50 MB. До создания задачи шлюз скачивает первые байты по каждой ссылке и определяет тип по ним, а не имени файла или Content-Type.
  • Ссылки на веб-страницы, страницы входа, просроченные подписанные ссылки или серверы с защитой от прямого скачивания отклоняются, поскольку не возвращают изображение.
  • Индексы в сообщениях об ошибках начинаются с 0: images[0] — первая ссылка.
  • Нельзя сочетать с output_format: "gif": GIF создаётся только по промпту.

Если значение неверно

  • Превышено максимальное число элементов: "images" accepts at most 16 items
  • Пустой массив: "images" requires at least 1 item
  • Ссылка не начинается с https://: "images[0]" must be a public HTTPS URL
  • Закрытый или небезопасный адрес: "images[0]" must be a publicly reachable HTTPS image URL
  • Сервер возвращает ошибку 4xx: "images[0]" could not be downloaded: the URL returned HTTP 404
  • Ссылка возвращает не PNG, JPEG или WebP: "images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html
  • Размер больше 50 MB: "images[2]" is 63.4 MB; images must be 50 MB or smaller
  • Передано вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images"

Пример

"images": [
"https://cdn.beatapi.io/samples/smart-bottle.png",
"https://cdn.beatapi.io/samples/neon-singer.png"
]

aspect_ratio string НеобязательноПо умолчанию: auto

Соотношение ширины и высоты изображения. Передайте вместе с resolution либо не задавайте оба поля и используйте size.

Допустимые значения: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21
По умолчанию: auto

  • По умолчанию используется auto, поэтому без этого поля результат также будет квадратным.
  • Поддерживаются панорамные пропорции 2:1, 1:2, 3:1, 1:3, 21:9, 9:21. Максимальное отношение длинной стороны к короткой — 3:1.
  • Нельзя сочетать с size.
  • Не передавайте при output_format: "gif": кадр GIF задаёт size. В этом случае принимается только значение по умолчанию auto.

auto не означает «сохранить пропорции референса». Оно запрашивает квадратный кадр выбранного resolution, независимо от наличия images. Чтобы изменить пропорции при редактировании, укажите соотношение сторон либо size.

Если значение неверно

  • Значение отсутствует в списке допустимых: "aspect_ratio" must be one of: [auto 1:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 3:1 1:3 21:9 9:21]
  • Передано вместе с size: "size" already fixes the output; do not send "aspect_ratio" with it
  • Значение, отличное от auto, вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "aspect_ratio"

resolution string НеобязательноПо умолчанию: 1K

Класс размера изображения. Чем он выше, тем больше изображение и цена. Точный размер в пикселях зависит от aspect_ratio и определяется моделью.

Допустимые значения: 1K, 2K, 4K
По умолчанию: 1K

  • Используйте заглавную K: 2k отклоняется.
  • Для размерного класса точные размеры в пикселях не гарантируются. Если нужен точный кадр, передайте size.
  • Нельзя сочетать с size: оно уже задаёт размер.
  • Не передавайте при output_format: "gif": кадр GIF задаёт size. В этом случае принимается только значение по умолчанию 1K.

Если значение неверно

  • Значение отсутствует в списке допустимых: "resolution" must be one of: [1K 2K 4K]
  • Передано вместе с size: "size" already fixes the output; do not send "resolution" with it
  • Значение, отличное от 1K, вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "resolution"

size string Необязательно

Точный размер результата в пикселях в формате WIDTHxHEIGHT, например 1536x1024. Заменяет resolution и aspect_ratio.

  • Обе стороны должны быть кратны 16 и находиться в пределах 16–3840 пикселей.
  • Общее число пикселей — от 655 360 до 8 294 400; длинная сторона — не более чем втрое больше короткой.
  • Разделитель — x, X или ×; пробелы вокруг него игнорируются.
  • Число пикселей меняет число выходных токенов, а значит и цену. До расчёта задачи резервируется оценка класса, в который попадает число пикселей: до 2 097 152 — 1K, до 5 898 240 — 2K, выше — 4K.
  • Не передавайте вместе с ним resolution или aspect_ratio, даже со значениями по умолчанию.
  • При output_format: "gif" параметр size — это размер одного кадра: обе стороны кратны 16 и лежат в пределах от 512 до 960 px. Ограничения на число пикселей выше относятся только к обычным изображениям.

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

Если значение неверно

  • Значение не является строкой: "size" must be a string
  • Не в формате WIDTHxHEIGHT: одно число, auto или разделение запятой: "size" must be WIDTHxHEIGHT in pixels, for example 1536x1024
  • Сторона не кратна 16: "size" width and height must be multiples of 16
  • Сторона меньше 16 или больше 3840: "size" edges must be between 16 and 3840 pixels
  • Слишком мало или слишком много пикселей: "size" must have between 655,360 and 8,294,400 pixels; 512x512 has 262,144
  • Отношение ширины к высоте или высоты к ширине превышает 3:1: "size" must not be wider or taller than 3:1
  • Передано вместе с resolution: "size" already fixes the output; do not send "resolution" with it
  • Передано вместе с aspect_ratio: "size" already fixes the output; do not send "aspect_ratio" with it
  • При output_format: "gif" сторона меньше 512 или больше 960: a gif frame's "size" edges must be between 512 and 960 pixels: its nine frames are rendered as one 3x3 sheet

Пример

"size": "1536x1024"

quality string НеобязательноПо умолчанию: medium

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

Допустимые значения: low, medium, high, xhigh, max
По умолчанию: medium

  • Без поля используется medium — именно для этого качества на странице оценены цены за изображение.
  • Модель с фиксированной ценой gpt-image-2.6-sunburst-beta это поле не принимает и отклоняет.

Если значение неверно

  • Значение отсутствует в списке допустимых: "quality" must be one of: [low medium high xhigh max]

Пример

"quality": "low"

output_format string НеобязательноПо умолчанию: png

Тип создаваемого файла: png — статичное изображение, gif — короткая анимация.

Допустимые значения: png, gif
По умолчанию: png

  • png (по умолчанию) рисует обычное изображение с выбранными resolution, aspect_ratio или size; оплата за токены, которые использовала генерация.
  • gif делает анимацию из 9 кадров по 200 мс. size задаёт один кадр (каждая сторона 512–960 px); без него кадр выбирает модель. Не передавайте вместе с ним resolution и aspect_ratio.
  • GIF создаётся только по промпту: images не принимаются, frame_count и frame_duration_ms не поддерживаются.
  • GIF оплачивается за токены, как обычное изображение, — по токенам, которые использовал его лист кадров 3x3; см. таблицу цен.
  • Эта страница не гарантирует, что анимация зациклена.

Если значение неверно

  • Значение отсутствует в списке допустимых: "output_format" must be one of: [png gif]
  • gif вместе с images: gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images"

Пример

"output_format": "gif"

Перед созданием задачи шлюз также проверяет следующие сочетания параметров:

  • size задаётся как WIDTHxHEIGHT и заменяет resolution и aspect_ratio. Обе стороны кратны 16 и находятся в диапазоне 16–3840 пикселей; общее число пикселей — 655 360–8 294 400, отношение длинной стороны к короткой — не более 3:1.
  • Размер оплачивается по токенам, которые расходует генерация, а не по уровню разрешения.
  • quality задаёт число выходных токенов, а значит и цену; по умолчанию medium.
  • Оплата по токенам по прейскурантным тарифам за токены, которые расходует каждая генерация (текстовый ввод, ввод изображений, вывод); указанные цены за изображение — оценка при качестве medium.
  • output_format: gif создаёт анимацию из 9 кадров по 200 мс; size задаёт каждый кадр: обе стороны кратны 16 и лежат в пределах 512–960 px (девять кадров рисуются как один лист 3x3); без size кадр выбирает модель; resolution и aspect_ratio с ним не передавайте.
  • GIF создаётся только по промпту: images не принимаются, frame_count и frame_duration_ms не поддерживаются.
  • GIF оплачивается за токены, как обычное изображение, — по токенам, которые использовал его лист кадров 3x3.
  • Это официальная версия с оплатой по токенам: принимает quality low, medium, high, xhigh, max и GIF произвольного размера; gpt-image-2.6-sunburst-beta (фиксированная цена за изображение) такого не поддерживает.

Ограничения входных материалов

До создания задачи шлюз проверяет каждый входной материал. Если ограничение нарушено, возвращается 400 bad_request с указанием материала. Средства не списываются.

  • Референсные изображения: PNG, JPEG или WebP с определением формата по содержимому; до 50 MB каждый (десятичные мегабайты; проверяется, если сервер сообщает размер), от 1 до 16 ссылок. GIF, HEIC и SVG отклоняются.
  • Для самих референсных изображений ограничения числа пикселей и соотношения сторон не проверяются.
  • Если сервер не ответил вовремя, ссылка не отклоняется при создании. Шлюз скачивает её повторно при запуске обработки. Если скачать по-прежнему нельзя, задача завершается ошибкой с возвратом средств.
  • Файл находится на вашем устройстве? Загрузите его через POST /v1/files и передайте полученный data.url.
  • GIF (output_format: "gif") не принимает референсные изображения.

Размер кадра: resolution и aspect_ratio либо size

Размер и пропорции изображения можно задать двумя взаимоисключающими способами:

  • Класс и пропорции. Передайте resolution (1K, 2K или 4K) и при необходимости aspect_ratio. Без обоих полей используются 1K и auto, то есть квадратный кадр.
  • Точный размер. Передайте только size, например 1536x1024. Число пикселей меняет число выходных токенов; до расчёта резервируется оценка класса, в который попадает размер (см. правила сочетания выше).

Передача size вместе с resolution или aspect_ratio отклоняется с сообщением "size" already fixes the output; do not send "resolution" with it (либо "aspect_ratio"). Проверка действует даже для значения по умолчанию другого поля.

GIF не использует ни то, ни другое: у него нет resolution и aspect_ratio, а его size — это размер одного кадра (от 512 до 960 px).

Создание GIF-анимации

Отправьте "output_format": "gif" и опишите в prompt объект и движение. Результат — короткая GIF-анимация из 9 кадров по 200 мс:

  • Только по промпту. images отклоняется с ошибкой gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images".
  • Кадр можно задать. size — размер одного кадра: обе стороны кратны 16 и лежат в пределах от 512 до 960 px, например 768x768. Девять кадров рисуются как один лист 3x3, поэтому кадр меньше обычного изображения. Без size кадр выбирает модель. size вне диапазона отклоняется с ошибкой a gif frame's "size" edges must be between 512 and 960 pixels: its nine frames are rendered as one 3x3 sheet.
  • Без разрешения и соотношения сторон. Не передавайте resolution и aspect_ratio: resolution, отличное от 1K, или aspect_ratio, отличное от auto, отклоняется с ошибкой gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "resolution" (с названием переданного поля).
  • Без управления кадрами. frame_count и frame_duration_ms не поддерживаются: unknown field: frame_count.
  • Оплата за токены. GIF оплачивается как обычное изображение — по токенам, которые использовал его лист кадров 3x3 (ставки в таблице ниже).

Страница не обещает, что анимация зациклена. У сохранённого файла mime_type равен image/gif.

Создать задачу и опрашивать

Эта модель работает только как задача. POST /v1/images/tasks отвечает сразу, идентификатор задачи — в data.id; затем вызывайте GET /v1/tasks/{task_id} каждые data.poll_after_seconds, пока data.status не станет succeeded или failed. Генерация идёт на стороне BeatAPI, поэтому даже долгая генерация не держит ваше соединение и не упирается в тайм-аут клиента. Синхронный POST /v1/images/generations для этой модели недоступен.

Submit, then poll
# 1. Create the task. The call returns at once; the task ID is in data.id.
TASK_ID=$(curl -sS -X POST https://api.beatapi.io/v1/images/tasks \
-H "Authorization: Bearer $BEATAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.6-sunburst","prompt":"A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field","resolution":"2K","quality":"medium"}' | jq -r '.data.id')
# 2. Poll until the task is final. The render runs on BeatAPI, not on this connection.
while true; do
TASK=$(curl -sS "https://api.beatapi.io/v1/tasks/$TASK_ID" -H "Authorization: Bearer $BEATAPI_API_KEY")
STATUS=$(echo "$TASK" | jq -r '.data.status')
if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then break; fi
sleep 5
done
echo "$TASK" | jq '.data.output.media[].url, .data.usage'

Через Capabilities API это та же задача: запустите её через POST /v1/capabilities/run, затем отправляйте запрос статуса с полученным идентификатором задачи, пока не будет succeeded или failed.

POST /v1/capabilities/run
{"reference":"model:gpt-image-2.6-sunburst","input":{"model":"gpt-image-2.6-sunburst","prompt":"A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field","resolution":"2K","quality":"medium"}}
POST /v1/capabilities/run (status)
{"reference":"model:gpt-image-2.6-sunburst","operation":"status","task_id":"<task_id>"}

Оплата по токенам и фиксированная цена

gpt-image-2.6-sunburstgpt-image-2.6-sunburst-beta
ЦенаТокены, ушедшие на генерацию, по тарифам за 1 млн токенов нижеФиксированная цена за изображение по размерному классу
Резерв при создании задачиОценка цены изображения для классаЦена изображения
Списание при успехеРасчёт по фактическим токенам; data.usage может отличаться от резерваЗарезервированная цена
qualityПринимается, по умолчанию mediumОтклоняется
Поля, разрешения, пропорции, референсные изображенияТе жеТе же
GIFОплата за токены, как у обычного изображения; size задаёт кадр (512–960 px)Одна цена за GIF; кадр выбирает модель, а size отклоняется
Неудачная задачаБесплатноБесплатно

Параметры, которые модель не принимает

Эндпоинт изображений знает несколько полей, которые используют другие модели изображений или другие API. Если передать одно из них здесь, оно будет отклонено, а не проигнорировано, — так вы не платите за настройку, которая ни на что не повлияла:

  • background, seed, enhance_prompt → field "background" is not supported by model gpt-image-2.6-sunburst (с переданным полем и названием вызванной модели). В GPT Image 2.6 нет поля background, поэтому прозрачный фон запросить нельзя.
  • Любое другое неизвестное поле, например n, moderation или frame_count → unknown field: n. Поля n нет: одна задача создаёт одно изображение или один GIF.

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

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field",
"aspect_ratio": "3:2",
"resolution": "2K",
"quality": "medium"
}'

Изображение по тексту

Горизонтальное изображение в 2K по промпту, с указанием класса и пропорций.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field",
"aspect_ratio": "3:2",
"resolution": "2K",
"quality": "medium"
}'

Черновик в низком качестве

Первый запрос с quality: "low" и 1K: выходных токенов меньше, цена ниже. Подходит для черновиков и предпросмотра.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field",
"aspect_ratio": "3:2",
"resolution": "1K",
"quality": "low"
}'

Редактирование одного изображения

Изменение фона с сохранением товара. Пропорции заданы явно, поскольку auto создаёт квадрат.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "Keep the bottle exactly as it is. Replace the background with a sunlit kitchen counter and add a soft reflection under the bottle.",
"images": [
"https://cdn.beatapi.io/samples/smart-bottle.png"
],
"aspect_ratio": "1:1",
"resolution": "1K"
}'

Объединение нескольких изображений

Укажите каждый референс в промпте по его порядку.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "Place the bottle from the first image on a neon-lit stage like the one in the second image. Keep the bottle label readable.",
"images": [
"https://cdn.beatapi.io/samples/smart-bottle.png",
"https://cdn.beatapi.io/samples/neon-singer.png"
],
"aspect_ratio": "16:9",
"resolution": "2K"
}'

Точный размер

Кадр 1536x1024. Передаётся только size, без resolution и aspect_ratio. Резервируется оценка для 1K.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A flat illustration of a lighthouse on a cliff at dawn, pastel colours, clean shapes",
"size": "1536x1024"
}'

GIF-анимация

Анимация из 9 кадров только по промпту: без images, resolution и aspect_ratio. size задаёт каждый кадр. Оплата за токены.

curl --request POST \
--url https://api.beatapi.io/v1/images/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-image-2.6-sunburst",
"prompt": "A paper boat drifting on gentle blue waves, flat illustration, soft morning light",
"output_format": "gif",
"size": "768x768"
}'

Ответы

Создание задачи (201)

Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "image",
"capability_id": "gpt-image-2.6-sunburst",
"capability_version": 1,
"media_type": "image",
"model": "gpt-image-2.6-sunburst",
"status": "queued",
"stage": "queued",
"created_at": 1791993600,
"updated_at": 1791993600,
"completed_at": null,
"poll_after_seconds": 5,
"output": null,
"usage": {
"credits_reserved": 0.077328,
"credits_settled": 0,
"credits_refunded": 0,
"credits_charged": 0.077328
},
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": null,
"error_message": null
}
}
ПолеТипОписание
data.idstringID задачи: префикс task_ и 32 буквы или цифры. Используется для опроса и сопоставления событий вебхука.
data.objectstringВсегда task.
data.task_kindstringimage или video.
data.capability_idstringID модели из вашего запроса.
data.capability_versionintegerВерсия контракта модели, сейчас 1.
data.media_typestringimage или video.
data.modelstringID модели из запроса, совпадает с capability_id.
data.statusstringqueued, processing, succeeded или failed. Только последние два состояния являются конечными.
data.stagestringПовторяет status; сохранено для совместимости со старыми клиентами.
data.created_atintegerВремя создания задачи, в секундах Unix.
data.updated_atintegerВремя последнего изменения, в секундах Unix.
data.completed_atinteger | nullВремя завершения, в секундах Unix. Во время выполнения равно null.
data.poll_after_secondsintegerВо время выполнения: сколько секунд ждать перед следующей проверкой (5 для изображений, 8 для видео).
data.typical_secondsobjectВо время выполнения, при достаточном числе недавних задач: время завершения p50 и p90 в секундах за последний период window, рассчитанное по samples задачам.
data.outputobject | nullРезультат. Равно null, пока status не станет succeeded. Поля результата описаны ниже.
data.usage.credits_reservednumberСумма USD, зарезервированная на балансе при создании задачи.
data.usage.credits_chargednumberСтоимость задачи в USD; 0, если задача завершилась ошибкой.
data.usage.credits_settlednumberОкончательно списанная сумма USD. Устанавливается после успешного завершения, иначе 0.
data.usage.credits_refundednumberСумма USD, возвращённая на баланс. После регистрации возврата по неудачной задаче равна зарезервированной сумме.
data.usage.billable_duration_secondsintegerТолько для видео: длительность в секундах, по которой рассчитана цена. Отсутствует, если модель не сообщает длительность.
data.request_idstringID запроса. Укажите его при обращении в поддержку.
data.error_codestring | nullКод ошибки; null, если задача не завершилась ошибкой.
data.error_messagestring | nullОписание проблемы и способа её исправить; null, если задача не завершилась ошибкой.

Успешно завершённая задача

GET /v1/tasks/{task_id} возвращает HTTP 200 со status: "succeeded" и результатом в data.output.

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "image",
"capability_id": "gpt-image-2.6-sunburst",
"capability_version": 1,
"media_type": "image",
"model": "gpt-image-2.6-sunburst",
"status": "succeeded",
"stage": "succeeded",
"created_at": 1791993600,
"updated_at": 1791993690,
"completed_at": 1791993690,
"output": {
"media": [
{
"type": "image",
"url": "https://media.beatapi.io/outputs/task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ/0.png",
"mime_type": "image/png"
}
],
"r2_url": "https://media.beatapi.io/outputs/task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ/0.png"
},
"usage": {
"credits_reserved": 0.077328,
"credits_settled": 0.077328,
"credits_refunded": 0,
"credits_charged": 0.077328
},
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": null,
"error_message": null
}
}

Поля результата

ПолеТипОписание
output.mediaobject[]Созданные файлы. Для этой модели — один элемент.
output.media[].typestringВсегда image.
output.media[].urlstringHTTPS-ссылка на сохранённое изображение. Скачайте его и храните у себя: срок доступности ссылки не гарантируется.
output.media[].mime_typestringТип сохранённого файла: image/png для png, image/gif для GIF. Проверяйте это значение, а не предполагаемый формат.
output.r2_urlstringПовтор первой ссылки на материал для старых клиентов. Вместо этого используйте media.

Задача, завершившаяся ошибкой

Если задача завершилась ошибкой, GET /v1/tasks/{task_id} всё равно возвращает HTTP 200: сведения об ошибке находятся в теле ответа. Зарезервированная сумма возвращается полностью, поэтому списания нет.

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "image",
"capability_id": "gpt-image-2.6-sunburst",
"capability_version": 1,
"media_type": "image",
"model": "gpt-image-2.6-sunburst",
"status": "failed",
"stage": "failed",
"created_at": 1791993600,
"updated_at": 1791993690,
"completed_at": 1791993690,
"output": null,
"usage": {
"credits_reserved": 0.077328,
"credits_settled": 0,
"credits_refunded": 0.077328,
"credits_charged": 0
},
"retryable": true,
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": "processing_failed",
"error_message": "The task failed during processing on our side. Retry; a failed task is refunded."
}
}
ПолеТипОписание
data.error_codestringbad_request или content_policy_violation означают, что запрос нужно изменить. При processing_unavailable, processing_timeout, processing_failed или result_transfer_failed можно повторить позже. См. ошибки.
data.error_messagestringСообщение с причиной ошибки и рекомендацией по исправлению.
data.retryablebooleanПрисутствует только у неудачной задачи. Значение true означает, что повтор того же запроса может завершиться успешно.
data.usageobjectПосле регистрации возврата (обычно сразу при ошибке): credits_charged и credits_settled равны 0, а credits_refunded равно credits_reserved.

Полный пример

Создайте задачу, дождитесь её завершения с интервалом опроса, указанным сервером, и выведите ссылки на результаты. Задайте BEATAPI_API_KEY в переменной окружения и установите requests.

import os
import time
import uuid
import requests
API = "https://api.beatapi.io"
HEADERS = {"Authorization": f"Bearer {os.environ['BEATAPI_API_KEY']}"}
def create_task(body: dict) -> dict:
# One Idempotency-Key per logical request: a retry with the same key cannot create a second task.
headers = {**HEADERS, "Idempotency-Key": str(uuid.uuid4())}
for attempt in range(3):
response = requests.post(f"{API}/v1/images/tasks", headers=headers, json=body, timeout=60)
if response.status_code in (429, 503) and attempt < 2:
time.sleep(int(response.headers.get("Retry-After", 10)))
continue
break
try:
payload = response.json()
except ValueError: # an edge error page is not JSON
response.raise_for_status()
raise
if not response.ok:
error = payload["error"]
raise RuntimeError(f"{response.status_code} {error['code']}: {error['message']} (request_id={error.get('request_id')})")
return payload["data"]
def wait_for_task(task_id: str, timeout_seconds: int = 1800) -> dict:
deadline = time.monotonic() + timeout_seconds
while time.monotonic() < deadline:
response = requests.get(f"{API}/v1/tasks/{task_id}", headers=HEADERS, timeout=30)
if response.status_code == 429 or response.status_code >= 500:
time.sleep(int(response.headers.get("Retry-After", 10)))
continue
response.raise_for_status()
task = response.json()["data"]
if task["status"] in ("succeeded", "failed"):
return task
time.sleep(task.get("poll_after_seconds", 5))
raise TimeoutError(f"task {task_id} is still running; keep polling later")
task = create_task({
"model": "gpt-image-2.6-sunburst",
"prompt": "A minimalist product photo of a glass water bottle on wet black stone, soft rim light, shallow depth of field",
"aspect_ratio": "3:2",
"resolution": "2K",
"quality": "medium"
})
print("created", task["id"])
task = wait_for_task(task["id"])
if task["status"] == "failed":
raise SystemExit(f"{task['error_code']}: {task['error_message']}")
for item in task["output"]["media"]:
print(item["url"])

Оплата

  • Оплата по токенам по тарифам за 1 млн токенов из таблицы ниже: текстовый ввод (промпт), ввод изображений (референсы в images) и вывод (само изображение). Токены считает модель; quality, кадр и референсные изображения меняют их число.
  • Цены за изображение — оценка одной генерации при качестве medium в квадратном кадре каждого класса без референсных изображений. low расходует меньше выходных токенов, более высокие значения — больше.
  • При создании задачи с баланса (и с квоты ключа, если она задана) резервируется оценка для её класса. При успехе списание пересчитывается по токенам, которые фактически ушли на генерацию, поэтому итоговый data.usage может отличаться от резерва. Запрос, отклонённый до создания задачи, бесплатен.
  • Неудачная задача возвращается полностью.
  • GIF оплачивается за токены, как обычное изображение, — по токенам, которые использовал его лист кадров 3x3.
  • Линия с фиксированной ценой gpt-image-2.6-sunburst-beta продаёт GPT Image 2.6 по одной цене за изображение по классу размера и одной цене за GIF, независимо от того, сколько использовала генерация.

Текущие базовые цены совпадают с указанными на странице цен. Если для аккаунта согласована скидка, стоимость будет ниже. Фактически списанная сумма всегда указана в data.usage задачи.

ВариантБазовая цена (USD)
1 изображение · 1K · оценка при качестве medium$0.03807
1 изображение · 2K · оценка при качестве medium$0.077328
1 изображение · 4K · оценка при качестве medium$0.128493
Ввод · за 1 миллион токенов$4.5
Ввод изображений · за 1 млн токенов$7.2
Выход · на 1 млн токенов$27

Частые ошибки

Ошибка или признак проблемыПричинаЧто делать
400 "size" already fixes the output; do not send "resolution" with itsize передано вместе с resolution или aspect_ratio, даже со значением по умолчанию.Передайте только size либо resolution и aspect_ratio без size.
400 "size" width and height must be multiples of 16Передан размер вроде 1000x1000 или 1920x1080; 1080 не кратно 16.Округлите обе стороны до кратного 16, например 1920x1088.
400 "size" must have between 655,360 and 8,294,400 pixels; 512x512 has 262,144Кадр слишком мал или велик. 4096x4096 отклоняется раньше из-за ограничения стороны в 3840 пикселей.Стороны должны быть не больше 3840 пикселей, общее число пикселей — от 655 360 до 8 294 400.
400 "resolution" must be one of: [1K 2K 4K]В resolution передано строчное 2k, 8K или размер в пикселях вроде 2048x2048.Передайте 1K, 2K или 4K; для размеров в пикселях используйте size.
400 gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images"GIF запрошен вместе с референсными изображениями.Удалите images либо не передавайте output_format, чтобы отредактировать изображения в статичное изображение.
400 gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "resolution"Для GIF передано resolution, отличное от 1K, или aspect_ratio, отличное от auto; в сообщении названо поле.Не передавайте resolution и aspect_ratio; кадр GIF задайте через size.
400 a gif frame's "size" edges must be between 512 and 960 pixels: its nine frames are rendered as one 3x3 sheetУ size для GIF сторона меньше 512 или больше 960 px, например передан размер обычного изображения вроде 1536x1024.Берите стороны от 512 до 960 px, кратные 16, например 768x768.
400 unknown field: frame_countПередан параметр кадров GIF (frame_count или frame_duration_ms).Удалите его: кадры выбирает модель.
400 "quality" must be one of: [low medium high xhigh max]Значение не из списка или с заглавной буквы, например High.Передайте одно из значений списка или не передавайте поле, чтобы использовать medium.
400 field "seed" is not supported by model gpt-image-2.6-sunburstПоле другой модели изображений (seed, enhance_prompt).Удалите этот параметр.
400 unknown field: nЗапрошено несколько изображений в одной задаче.Удалите n и создайте отдельную задачу на каждое изображение.
400 "images[0]" must be a public HTTPS URLПередана ссылка http://, URI data: или локальный путь.Разместите файл по HTTPS либо загрузите через POST /v1/files и используйте data.url.
400 "images[1]" is not a PNG, JPEG or WebP image: the URL returned text/htmlВместо файла ссылка открывает веб-страницу, страницу входа или просроченный подписанный URL.Укажите прямую ссылку на файл изображения.
400 "images[0]" could not be downloaded: the URL returned HTTP 403Сервер блокирует скачивание с других серверов: защита от прямых ссылок или закрытое хранилище.Откройте публичный доступ к файлу либо загрузите его через POST /v1/files.
Отредактированное изображение получилось квадратнымaspect_ratio не задано или равно auto, что создаёт квадратный кадр.Задайте нужное соотношение сторон либо size.
Задача failed с content_policy_violationПромпт, референсное или созданное изображение отклонены модерацией.Измените промпт или изображение. Повтор без изменений снова завершится ошибкой; средства не списаны.
Задача failed с processing_timeoutГенерация изображения не завершилась за отведённое время.Повторите запрос: за неудачную задачу средства возвращены.
404 POST /v1/images/generationsЭта модель доступна только как асинхронная задача; синхронный эндпоинт недоступен.Создайте задачу через POST /v1/images/tasks и опрашивайте GET /v1/tasks/{task_id}.
Списание отличается от цены за изображениеСписание рассчитывается по токенам, ушедшим на генерацию; цена за изображение — лишь оценка.Смотрите data.usage завершённой задачи. Чтобы расходовать меньше выходных токенов, передайте quality: "low".

Краткий справочник HTTP-ошибок

Ошибки до создания задачи возвращаются с HTTP-статусом, отличным от 2xx, без списания средств. Обрабатывайте error.code или error.retryable; причина указана в message. Полный список и правила повторов приведены в разделе ошибок.

{
"error": {
"code": "bad_request",
"message": "\"prompt\" is required",
"retryable": false,
"request_id": "req_5f0c2a9e4b7d4e31"
}
}
HTTP-статусerror.codeЧто делать
400bad_request, content_policy_violationИсправьте запрос: поле указано в сообщении. Не повторяйте запрос без изменений.
401missing_api_key, invalid_api_key (старые клиенты могут показывать unauthorized)Передайте действующий ключ в Authorization: Bearer <key>.
402insufficient_creditsПополните баланс или увеличьте лимит ключа, затем повторите запрос.
403forbiddenМодель недоступна для ключа или аккаунта; например, бонус можно использовать только с некоторыми моделями. Не повторяйте запрос без изменений.
404not_foundДля GET /v1/tasks/{task_id}: у аккаунта этого ключа нет такой задачи. Проверьте ID.
409idempotency_conflictИспользуйте новый Idempotency-Key или дождитесь завершения первого запроса с этим ключом.
429rate_limit_exceededПодождите число секунд из Retry-After (оно также указано в error.retry_after_seconds), затем повторите запрос.
500internal_errorПовторите запрос с увеличивающейся задержкой. Если ошибка сохраняется, обратитесь в поддержку и укажите request_id.
503processing_unavailable, processing_timeout, processing_failed, result_transfer_failedСредства не списаны. Повторите запрос с экспоненциальным увеличением задержки.

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

AuthorizationBearer

Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.

Заголовки

Idempotency-KeystringОпциональный<=255 characters

Передавайте тело запроса в JSON с заголовком Content-Type: application/json. Idempotency-Key необязателен. Для каждого логического запроса используйте уникальное значение длиной не более 255 символов и повторно используйте его только для отправки точно такого же тела. В течение 24 часов повтор с тем же ключом и телом возвращает первый ответ с заголовком Idempotent-Replayed: true. Тот же ключ с другим телом возвращает 409 idempotency_conflict. Ответы, отличные от 2xx, не сохраняются, поэтому повтор после 400 или 402 выполняется заново.

Запрос

This endpoint expects an object.
modelenumОбязательный

Модель, которую нужно вызвать.

Значение: gpt-image-2.6-sunburst

Если значение неверно

  • Поле отсутствует: "model" is required
  • Неизвестный ID модели: "model" gpt-image-9 is not catalogued
  • На этот адрес API отправлена видеомодель: "model" seedance-2.5 is served by POST /v1/videos/tasks, not this endpoint
Допустимые значения:
promptstringОбязательный1-5000 characters

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

Длина: 1–5000 символов

  • Длина измеряется в символах. Иероглиф CJK считается одним символом.
  • При передаче images укажите назначение каждого изображения, например «Используй первое изображение для товара, а второе — для фона».
  • Для GIF промпт — единственный вход: опишите объект и движение.

Если значение неверно

  • Поле отсутствует: "prompt" is required
  • Пустое значение или превышена допустимая длина: "prompt" has an unsupported length
  • Значение не является строкой: "prompt" must be a string
aspect_ratioenumОпциональныйПо умолчанию auto

Соотношение ширины и высоты изображения. Передайте вместе с resolution либо не задавайте оба поля и используйте size.

Допустимые значения: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21

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

  • По умолчанию используется auto, поэтому без этого поля результат также будет квадратным.
  • Поддерживаются панорамные пропорции 2:1, 1:2, 3:1, 1:3, 21:9, 9:21. Максимальное отношение длинной стороны к короткой — 3:1.
  • Нельзя сочетать с size.
  • Не передавайте при output_format: "gif": кадр GIF задаёт size. В этом случае принимается только значение по умолчанию auto.

Примечания: auto не означает «сохранить пропорции референса». Оно запрашивает квадратный кадр выбранного resolution, независимо от наличия images. Чтобы изменить пропорции при редактировании, укажите соотношение сторон либо size.

Если значение неверно

  • Значение отсутствует в списке допустимых: "aspect_ratio" must be one of: [auto 1:1 3:2 2:3 4:3 3:4 5:4 4:5 16:9 9:16 2:1 1:2 3:1 1:3 21:9 9:21]
  • Передано вместе с size: "size" already fixes the output; do not send "aspect_ratio" with it
  • Значение, отличное от auto, вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "aspect_ratio"
imageslist of stringsОпциональный

Референсные изображения для редактирования или объединения. Это поле переключает запрос с генерации по тексту на редактирование изображений.

Число элементов: 1–16

Каждый элемент — общедоступная ссылка https://. Если файл находится на вашем устройстве, сначала загрузите его через POST /v1/files, затем передайте полученный data.url.

  • Каждая ссылка должна возвращать сам файл PNG, JPEG или WebP по общедоступному HTTPS, не более 50 MB. До создания задачи шлюз скачивает первые байты по каждой ссылке и определяет тип по ним, а не имени файла или Content-Type.
  • Ссылки на веб-страницы, страницы входа, просроченные подписанные ссылки или серверы с защитой от прямого скачивания отклоняются, поскольку не возвращают изображение.
  • Индексы в сообщениях об ошибках начинаются с 0: images[0] — первая ссылка.
  • Нельзя сочетать с output_format: "gif": GIF создаётся только по промпту.

Если значение неверно

  • Превышено максимальное число элементов: "images" accepts at most 16 items
  • Пустой массив: "images" requires at least 1 item
  • Ссылка не начинается с https://: "images[0]" must be a public HTTPS URL
  • Закрытый или небезопасный адрес: "images[0]" must be a publicly reachable HTTPS image URL
  • Сервер возвращает ошибку 4xx: "images[0]" could not be downloaded: the URL returned HTTP 404
  • Ссылка возвращает не PNG, JPEG или WebP: "images[0]" is not a PNG, JPEG or WebP image: the URL returned text/html
  • Размер больше 50 MB: "images[2]" is 63.4 MB; images must be 50 MB or smaller
  • Передано вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images"

Пример

"images": [
  "https://cdn.beatapi.io/samples/smart-bottle.png",
  "https://cdn.beatapi.io/samples/neon-singer.png"
]
output_formatenumОпциональныйПо умолчанию png

Тип создаваемого файла: png — статичное изображение, gif — короткая анимация.

Допустимые значения: png, gif

По умолчанию: png

  • png (по умолчанию) рисует обычное изображение с выбранными resolution, aspect_ratio или size; оплата за токены, которые использовала генерация.
  • gif делает анимацию из 9 кадров по 200 мс. size задаёт один кадр (каждая сторона 512–960 px); без него кадр выбирает модель. Не передавайте вместе с ним resolution и aspect_ratio.
  • GIF создаётся только по промпту: images не принимаются, frame_count и frame_duration_ms не поддерживаются.
  • GIF оплачивается за токены, как обычное изображение, — по токенам, которые использовал его лист кадров 3x3; см. таблицу цен.
  • Эта страница не гарантирует, что анимация зациклена.

Если значение неверно

  • Значение отсутствует в списке допустимых: "output_format" must be one of: [png gif]
  • gif вместе с images: gpt-image-2.6-sunburst output_format "gif" is made from the prompt alone: leave out "images"

Пример

"output_format": "gif"
Допустимые значения:
qualityenumОпциональныйПо умолчанию medium

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

Допустимые значения: low, medium, high, xhigh, max

По умолчанию: medium

  • Без поля используется medium — именно для этого качества на странице оценены цены за изображение.
  • Модель с фиксированной ценой gpt-image-2.6-sunburst-beta это поле не принимает и отклоняет.

Если значение неверно

  • Значение отсутствует в списке допустимых: "quality" must be one of: [low medium high xhigh max]

Пример

"quality": "low"
Допустимые значения:
resolutionenumОпциональныйПо умолчанию 1K

Класс размера изображения. Чем он выше, тем больше изображение и цена. Точный размер в пикселях зависит от aspect_ratio и определяется моделью.

Допустимые значения: 1K, 2K, 4K

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

  • Используйте заглавную K: 2k отклоняется.
  • Для размерного класса точные размеры в пикселях не гарантируются. Если нужен точный кадр, передайте size.
  • Нельзя сочетать с size: оно уже задаёт размер.
  • Не передавайте при output_format: "gif": кадр GIF задаёт size. В этом случае принимается только значение по умолчанию 1K.

Если значение неверно

  • Значение отсутствует в списке допустимых: "resolution" must be one of: [1K 2K 4K]
  • Передано вместе с size: "size" already fixes the output; do not send "resolution" with it
  • Значение, отличное от 1K, вместе с output_format: "gif": gpt-image-2.6-sunburst output_format "gif" has a fixed size: leave out "resolution"
Допустимые значения:
sizestringОпциональныйformat: "image-size"

Точный размер результата в пикселях в формате WIDTHxHEIGHT, например 1536x1024. Заменяет resolution и aspect_ratio.

  • Обе стороны должны быть кратны 16 и находиться в пределах 16–3840 пикселей.
  • Общее число пикселей — от 655 360 до 8 294 400; длинная сторона — не более чем втрое больше короткой.
  • Разделитель — x, X или ×; пробелы вокруг него игнорируются.
  • Число пикселей меняет число выходных токенов, а значит и цену. До расчёта задачи резервируется оценка класса, в который попадает число пикселей: до 2 097 152 — 1K, до 5 898 240 — 2K, выше — 4K.
  • Не передавайте вместе с ним resolution или aspect_ratio, даже со значениями по умолчанию.
  • При output_format: "gif" параметр size — это размер одного кадра: обе стороны кратны 16 и лежат в пределах от 512 до 960 px. Ограничения на число пикселей выше относятся только к обычным изображениям.

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

Если значение неверно

  • Значение не является строкой: "size" must be a string
  • Не в формате WIDTHxHEIGHT: одно число, auto или разделение запятой: "size" must be WIDTHxHEIGHT in pixels, for example 1536x1024
  • Сторона не кратна 16: "size" width and height must be multiples of 16
  • Сторона меньше 16 или больше 3840: "size" edges must be between 16 and 3840 pixels
  • Слишком мало или слишком много пикселей: "size" must have between 655,360 and 8,294,400 pixels; 512x512 has 262,144
  • Отношение ширины к высоте или высоты к ширине превышает 3:1: "size" must not be wider or taller than 3:1
  • Передано вместе с resolution: "size" already fixes the output; do not send "resolution" with it
  • Передано вместе с aspect_ratio: "size" already fixes the output; do not send "aspect_ratio" with it
  • При output_format: "gif" сторона меньше 512 или больше 960: a gif frame's "size" edges must be between 512 and 960 pixels: its nine frames are rendered as one 3x3 sheet

Пример

"size": "1536x1024"

Ответ

Объект задачи. Поле output равно null, пока задача не завершится успешно. Поля с пометкой «во время выполнения» исчезают после завершения задачи.

Ошибки

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error