Как считается цена генерации изображения
Изображение стоит фиксированно за штуку, а не за токены. Разбираем, откуда взять точную цену конкретной модели и как проверить, сколько списалось на самом деле.
4 мин · · Обновлено · изображения · оплата
Обновление, октябрь 2026. Генерация изображений через Zukko временно недоступна. Актуальный список моделей — страница «Модели» или
GET https://api.zukko.pro/v1/models. Ближайшая замена: прямой замены среди доступных моделей нет; для анализа изображений (vision) подойдут модели Claude и GPT, напримерclaude-sonnet-5илиgpt-5.6-sol.
Текстовые модели считают стоимость по токенам на входе и выходе, и итоговую цену запроса заранее оценить можно только приблизительно — она зависит от длины ответа, которую сложно предсказать до генерации. Изображения устроены иначе: в каталоге моделей у них стоит kind=image, и это означает отдельную схему тарификации — фиксированная цена за готовую картинку, а не по токенам и не по длине prompt.
Почему это удобнее для планирования бюджета
Если заранее известно, сколько изображений нужно сгенерировать, итоговую стоимость можно посчитать точно, а не оценочно. Длинный подробный prompt стоит ровно столько же, сколько короткий — цена определяется исключительно выбранной моделью, а не объёмом текста в запросе. Это отличается от текстовых моделей, где расход растёт вместе с длиной диалога и объёмом сгенерированного ответа.
Где смотреть актуальную цену
Каталог моделей развивается, и цены меняются вместе с ним. Хардкодить конкретную цифру в коде или держать её в старой заметке — плохая идея: со временем она разойдётся с реальностью. Правильный источник — расширенный список моделей:
curl https://api.zukko.pro/v1/models/infoЭтот эндпоинт отдаёт не только идентификаторы моделей, но и лимиты с ценами, и не требует ключа — можно свериться с ним в любой момент, не тратя баланс. Обычный GET /v1/models без ключа тоже доступен, но для точной цены нужен именно /v1/models/info — базовый список ограничивается перечнем доступных моделей.
Разные модели каталога стоят по-разному в силу разных архитектур и качества: линейка nano-banana-2-* (базовая, developer- и lite-версии, edit, reference-to-image) и линейка openai-gpt-image-2 / openai-gpt-image-1.5 (text-to-image и edit) — это разные модели с разной ценой, а не варианты одной. Сравнение стоит делать по актуальной выдаче /v1/models/info, а не по предположению, что модели с похожим названием стоят одинаково.
Как узнать, сколько списалось за конкретный запрос
Ориентироваться на общую цену модели полезно для планирования, но точная сумма, списанная за конкретный вызов, приходит прямо в заголовках ответа:
curl -i https://api.zukko.pro/v1/images/generations \
-H "Authorization: Bearer fetch_ваш_ключ" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2-text-to-image",
"prompt": "город на закате, акварель"
}'В ответе будут заголовки X-Zukko-Cost-Micros — стоимость именно этого запроса в микродолларах (1 000 000 = $1) — и X-Fetch-Balance-Cents — остаток баланса на счёте после списания (несмотря на название, тоже в микродолларах; точный баланс в центах — GET /v1/balance). Если генераций много и нужен учёт расходов на своей стороне без похода в кабинет, логировать оба заголовка при каждом запросе — самый прямой способ.
Полная история списаний с курсорной пагинацией доступна отдельным эндпоинтом:
curl https://api.zukko.pro/v1/usage \
-H "Authorization: Bearer fetch_ваш_ключ"Что происходит, если баланс не позволяет сгенерировать изображение
Баланс проверяется до обращения к модели, а не после. Если средств недостаточно даже для одной генерации по текущей цене модели, вернётся 402:
{"error":{"message":"Недостаточно средств на балансе","code":"insufficient_balance"}}Сама генерация в этом случае не запускается вообще, поэтому неудачный запрос не списывает ничего — можно спокойно пополнить баланс и повторить тот же вызов без риска, что часть средств уже потрачена впустую.
Кэш ответов сюда не относится
У шлюза есть кэш повторяющихся запросов — включается заголовком X-Zukko-Cache: true (или temperature: 0 для моделей, которые принимают это значение), для чата хранится до 7 суток и возвращает повтор с полностью совпадающим телом бесплатно. Кэш и Idempotency-Key работают только для POST /v1/chat/completions, /v1/messages и /v1/responses, поэтому для генерации изображений на них рассчитывать нельзя — повторный вызов /v1/images/generations с тем же prompt тарифицируется как отдельная генерация. Чтобы не платить дважды за один и тот же результат, сохраняйте готовые изображения на своей стороне и не перезапускайте уже выполненную задачу.
Разница между режимами не всегда очевидна
Одна и та же модель может стоить по-разному в зависимости не от режима как такового, а от конкретного идентификатора — например, обычная nano-banana-2-text-to-image и её developer- или lite-вариант в каталоге значатся отдельными позициями, и у каждой своя цена в /v1/models/info. Похожие имена не гарантируют похожую цену: суффикс в идентификаторе модели — это не косметическая деталь, а указание на отдельный тариф. Перед тем как закладывать конкретный вариант в продакшн-пайплайн, стоит свериться именно с его собственной строкой в каталоге, а не с ценой модели без суффикса.
Если нужно сравнить несколько моделей заранее
Для разовой прикидки не обязательно делать реальный платный запрос к каждой модели — достаточно один раз вытащить весь список цен из /v1/models/info и сравнить нужные идентификаторы между собой локально. Реальный тестовый запрос имеет смысл делать только для той модели, которая уже выбрана как основной кандидат, чтобы убедиться, что фактическое списание в X-Zukko-Cost-Micros совпадает с ожиданием из каталога.
Практический совет
Перед тем как закладывать генерацию изображений в бюджет проекта — например, при оценке стоимости обработки каталога из тысяч товарных карточек — стоит сгенерировать одно тестовое изображение нужной моделью, посмотреть точную сумму в X-Zukko-Cost-Micros и умножить на плановое количество, а не ориентироваться на приблизительную цифру из старой документации или чужой статьи, включая эту.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- Купить токены нейросети: как устроен баланс в долларах и что на него взять«Токены» в шлюзе — это не пакет, а баланс в долларах. Разбираем, что с него списывается, и считаем, на сколько запросов хватит $5.
- Оплата нейросетей без комиссии: бывает ли так и как посчитать переплатуКомиссия при пополнении есть почти всегда. Показываем, из чего она складывается, считаем её для СБП и карты и даём формулу «сколько рублей нужно на N долларов».
- Оплата нейросетей рублями: СБП, баланс в долларах и курсРубли по СБП превращаются в долларовый баланс по курсу на момент оплаты плюс комиссия платёжной страницы. Показываем формулу, таблицу пополнений и цену запросов в рублях.
- Your card was declined в OpenRouter: почему отклоняется картаРазбираем, из-за чего платёж картой может отклоняться на зарубежном сервисе, что проверить самому и как подключить модели, если оплата не проходит.