GPT Image 2.5 API разделяет генерацию по тексту и редактирование исходного изображения. Sunburst и Flare — разные ID; свойства официальной модели и параметры конкретного шлюза нужно рассматривать отдельно.
28 октября 2026 года мы выполнили два запроса Flare через Zenith: создали синюю кружку, затем передали этот PNG в edits и сменили фон на розовый. Оба вызова вернули PNG 1024×1024 и получили по $0,01 начисления в истории. Ниже — точные отправленные параметры, результаты и границы этого опыта; Sunburst мы не запускали.
Что различается у Sunburst и Flare
В руководстве OpenAI Sunburst предназначена прежде всего для точного редактирования, Flare — для быстрой повседневной генерации. Это позиционирование производителя, не наше сравнение скорости или качества.
Ниже — две отдельные группы данных. Первая описывает профиль моделей по официальным карточкам OpenAI, прочитанным 27.10.2026. Вторая показывает, как эти же ID были представлены в историческом ответе каталога Zenith 27.10.2026. Это датированные снимки, а не проверка текущей доступности операций у посредника.
Официальные карточки OpenAI, снимок 27.10.2026
| Параметр официальной модели | Sunburst | Flare |
|---|---|---|
| ID / default snapshot | gpt-image-2.5-sunburst / gpt-image-2.5-sunburst-2026-09-08 | gpt-image-2.5-flare / gpt-image-2.5-flare-2026-09-08 |
| Responses endpoint | Not supported | Not supported |
| Quality официального API | low/medium/high/xhigh/max/auto | low/medium/high/xhigh/max/auto |
| Inpainting | Supported | Supported |
Источники — карточки Sunburst и Flare, прочитанные 27.10.2026. Строка Responses endpoint фиксирует, что карточки помечают этот endpoint как неподдерживаемый для прямого вызова image-модели. В руководстве OpenAI при этом описано, что в Responses API image-ID передаётся не на верхнем уровне, а в поле model инструмента генерации изображений при выборе поддерживаемой основной модели. То есть запись «Responses endpoint: Not supported» и схема вызова через image generation tool — это разные утверждения об одном и том же API. Как именно это устроено у Zenith, официальные карточки OpenAI не определяют.
Исторический каталог Zenith, снимок 27.10.2026
| Наблюдавшееся поле каталога снимка | Sunburst | Flare |
|---|---|---|
| Публикация generation | Публиковалась в снимке | Публиковалась в снимке |
| Публикация edit | Публиковалась для условия edit | Публиковалась для условия edit |
| Каталожная цена за изображение по tiers | 1K/2K/4K: $0,01 / $0,02 / $0,03 | 1K/2K/4K: $0,01 / $0,02 / $0,03 |
Цены Zenith здесь — только чтение исторического каталога, полученное 27.10.2026; сегодняшнюю цену и доступность нужно перечитывать. Из совпадающих строк таблицы не следует равенство результатов. В наших Zenith-запросах quality не передавался: официальные настройки нельзя переносить на посредника автоматически.
Генерация: что именно отправлено
Первый вызов — POST /v1/images/generations на api.zenithmarket.dev с Zenith-ключом. JSON ниже — запись фактически отправленного тела без секрета, а не обещание сегодняшней поддержки этих параметров для любого ключа. Платный автоматический повтор не выполнялся.
{
"model": "gpt-image-2.5-flare",
"prompt": "A product photograph of exactly one matte blue ceramic mug with one handle on a plain warm white background. Soft studio lighting, subtle contact shadow, centered composition, square image. No text, no logo, no other objects.",
"size": "1024x1024",
"output_format": "png",
"n": 1
}
Критерии до просмотра: ровно одна синяя керамическая кружка, одна ручка, светлый фон, без текста, логотипа и посторонних предметов. Сервис вернул HTTP 200, изображение в data[0].b64_json. После декодирования: PNG 1024×1024, 1350514 байт; ожидание нашего клиента — 42,587 секунды. Это время одного вызова, не средняя скорость модели.

При отдельном визуальном просмотре все перечисленные критерии выполнены. Это не проверка сложной композиции или сравнительного качества Sunburst/Flare. SHA-256 PNG: d0c4fb7f382c84c0feea67bc5450b622afd14a64432ce8a3b26c03515f4b0e5c.
Edits: тот же исходник, другой фон
Второй вызов — POST /v1/images/edits. В multipart-поле image передан именно опубликованный PNG кружки; остальные поля ниже. Формат передачи файла и маршруты описаны в справочнике Zenith. Это параметры конкретного успешного вызова 28 октября, не проверка всех возможных размеров, референсов или масок.
{
"multipart_image": "input.png — PNG первой генерации",
"fields": {
"model": "gpt-image-2.5-flare",
"prompt": "Keep exactly one blue ceramic mug and its one handle, preserve the composition. Change the background to pale pink. No text, no logo, no additional objects.",
"size": "1024x1024",
"output_format": "png",
"n": 1
}
}
Критерии: сохранить одну синюю кружку и ручку, заменить фон на розовый, не добавлять текст или логотип. Получен HTTP 200 и data[0].b64_json; PNG 1024×1024, 1443666 байт. Ожидание клиента — 38,254 секунды. При просмотре кружка и ручка сохранились, фон розовый, видимых надписей нет. Это выполнение критериев одного задания; пиксельную неизменность объекта мы не измеряли.

SHA-256 результата: db653246e57c059106841914c9e62b4f1c7159d58ec990a8368102d79fcf670b. Источник и результат можно скачать и сравнить самостоятельно. Повтор такого запроса создал бы новый платный результат, который не обязан побайтно совпасть с нашим.
Как связаны запросы и начисления
В сохранённых материалах requestId записей GET /v1/zenith/key/usage совпали с requestId обоих ответов; отдельного сохранённого HTTP-заголовка x-request-id у нас нет. У обеих записей status=success и costMicrousd=10000. Один доллар равен миллиону microUSD, поэтому каждое начисление составляет $0,01.
| Операция | Точный requestId | Сохранённая стоимость |
|---|---|---|
| generation | gwreq_epwB2jER75JerPRWh7aiXxK1WJYs5e9--RmK4XE3Tzw |
10000 microUSD = $0,01 |
| edit | gwreq_IGIqSEfp3U3grKGxRew-yXtk4UQ6XPXesaO4j0NHCls |
10000 microUSD = $0,01 |
Это сопоставление двух конкретных сохранённых записей, не универсальный тариф или доказательство полноты истории. Нулевые inputTokens/outputTokens в этих записях не сделали изображения бесплатными. Вместе две разные операции дали два изображения и $0,02 начисления; неопределённых повторных отправок не было.
Как прочитать цену перед новым запросом
У image-ID сначала смотрят imageRequestPricing. Если у модели опубликован imageTokenPricing вместо imageRequestPricing, приведённая ниже смета по цене за изображение неприменима: нужен расчёт по фактическому usage. Скрипт сообщает об этом и прекращает вывод цен. tiersByOperation перечисляет тарифные tiers для generation/edit; pricesMicrousdByOperation — соответствующие ставки в microUSD за изображение. Сохраните код как image_prices.py, запустите python image_prices.py. Он выполняет только GET и не генерирует изображение.
import getpass, json, urllib.request
key=getpass.getpass("Zenith API key: ")
if not key: raise SystemExit("Ключ не введён")
req=urllib.request.Request("https://api.zenithmarket.dev/v1/models",
headers={"Authorization":"Bearer "+key,"User-Agent":"Comrad404SourceReview/1.0"})
with urllib.request.urlopen(req,timeout=30) as response: obj=json.load(response)
if not isinstance(obj,dict) or not isinstance(obj.get("data"),list):
raise SystemExit("Неизвестная схема каталога; платный запрос не выполняется")
row=next((r for r in obj["data"] if isinstance(r,dict) and r.get("id")=="gpt-image-2.5-flare"),None)
if row is None: raise SystemExit("Нет Flare у этого ключа")
if "imageTokenPricing" in row and "imageRequestPricing" not in row:
raise SystemExit("Опубликован imageTokenPricing; смета по цене за изображение неприменима, считайте по фактическому usage")
pricing=row.get("imageRequestPricing")
if not isinstance(pricing,dict):
raise SystemExit("Опубликован imageRequestPricing "+str(type(pricing))+"; приведённая смета неприменима")
print("Тарифные tiers:",pricing.get("tiersByOperation"))
for operation in ("generation","edit"):
price=pricing.get("pricesMicrousdByOperation",{}).get(operation,{}).get("1K")
print(operation,"1K:",price,"microUSD; USD:",price/1_000_000 if type(price) is int else "не указано")
# No POST, no generation, no wire-size validation.
Например, 10000 microUSD делятся на 1000000 и дают $0,01. Название tier 1K само по себе не задаёт разрешённое wire-значение size. Код цены не проверяет поддержку size/output_format; перед новым POST нужны параметры, опубликованные сервисом для выбранной операции. Значение 1024×1024 доказано только нашим конкретным успешным вызовом. Из факта его принятия нельзя вывести поддержку любого размера или будущего вызова.
| Исторический снимок Zenith 27.10.2026, за изображение | 1K | 2K | 4K |
|---|---|---|---|
| Flare generation | $0,01 | $0,02 | $0,03 |
| Flare edit | $0,01 | $0,02 | $0,03 |
| Sunburst generation/edit | $0,01 | $0,02 | $0,03 |
Условная смета этого снимка без комиссий и повторов: 100 generation 2K × $0,02 = $2; 100 edit 2K × $0,02 = $2. Это историческая арифметика, не сегодняшняя котировка. Для API и Studio Zenith описывает округление дебета вверх до $0,01; правило документации отдельно от двух фактических начислений. При imageTokenPricing вместо imageRequestPricing понадобится другая смета по фактическому usage.
Что опыт не устанавливает
Мы не сравнивали Sunburst с Flare, не проверяли несколько референсов, маски и все размеры. Один успешный POST не устанавливает постоянную доступность или upstream-модель Zenith. Для Images SDK/HTTP следует проверять актуальный контракт сервиса; здесь нет универсального исполняемого рецепта будущей платной генерации.
Способ передачи модели зависит от API. В Image API image-ID задаётся непосредственно в поле model — gpt-image-2.5-sunburst или gpt-image-2.5-flare. В Responses API на верхнем уровне указывается поддерживаемая основная модель, а image-ID передаётся в поле model инструмента генерации изображений, как описывает руководство OpenAI. Именно поэтому карточки сообщают, что эти image-ID не поддержаны как прямой top-level model Responses; поддержка каждого сочетания моделей не выводится из этих карточек автоматически.
При таймауте исход операции может быть неизвестен: автоматический повтор способен создать ещё один оплаченный результат. Сохраните идентификатор, время, параметры и проверьте запись биллинга сервиса. При отсутствии однозначного совпадения не объявляйте запрос отменённым или бесплатным.



