Справочник
POST /v1/images/generations
Делайте картинки из текстового промпта в формате OpenAI: метод images.generate из SDK работает, если поменять только базовый URL. Картинки приходят в ответе, а копию мы не храним.
Проверено 6 ноября 2026 г.
Сделайте картинку
import base64
import os
from openai import OpenAI
client = OpenAI(
base_url="https://nokeep.ai/v1",
api_key=os.environ["NOKEEP_API_KEY"],
)
result = client.images.generate(
model="z-image-turbo",
prompt="A lighthouse on a rocky coast at dusk",
size="1024x1024",
)
with open("picture.webp", "wb") as f:
f.write(base64.b64decode(result.data[0].b64_json))Модели
| Модель | Подходит для | За картинку | Размер | Самый длинный промпт |
|---|---|---|---|---|
| chroma | Открытая модель, которая читает длинные подробные промпты. | $0.03 | До 1280 пикселей по стороне, отдаётся в 1,5x | 7 500 символов |
| z-image-turbo | Самая быстрая здесь, для фотографий в большом объёме. | $0.03 | До 1280 пикселей по стороне | 7 500 символов |
| wai-illustrious | Аниме и иллюстрации. | $0.03 | До 1280 пикселей по стороне | 1 500 символов |
| krea-2-turbo | Держит известных персонажей и фирменный стиль, в 1K или 2K. | $0.08 (1K), $0.12 (2K) | 1:1, 3:2, 16:9, 21:9, 9:16, 2:3, 3:4, 4:5 | 5 000 символов |
GET /v1/models показывает те же цены и лимиты.
Запрос
| Поле | Принимает | Что делает |
|---|---|---|
model | Обязательно | Один из идентификаторов моделей выше. |
prompt | Обязательно | Что нарисовать, передаётся модели как написано. Длиннее лимита модели — отказ, промпт никогда не обрезается. |
size | WIDTHxHEIGHT или auto | Размер картинки. По умолчанию 1024x1024. См. Размеры. |
aspect_ratio | 1:1, 3:2, 2:3, 4:3, 3:4, 4:5, 16:9, 9:16, 21:9 | Пропорции вместо size. Если отправлены оба, выигрывает она. |
n | От 1 до 4 | Сколько картинок. Оплачиваете те, что вернулись. |
response_format | b64_json или url | По умолчанию b64_json. url возвращает data:-URL, а не ссылку на сохранённый файл. |
output_format | webp, png или jpeg | По умолчанию webp. |
resolution | 1K или 2K | Только для krea-2-turbo, и цена зависит от него. |
seed | Целое число | Один и тот же seed и промпт дают похожую картинку. При n каждая картинка прибавляет к нему единицу. |
negative_prompt | Текст | Чего не должно быть. Проверкой жёстких ограничений не читается, и не каждая модель его учитывает. |
steps | От 1 до 50 | Больше шагов — дольше. Не каждая модель их использует. |
cfg_scale | Больше 0, до 20 | Насколько точно следовать промпту. Не каждая модель его использует. |
Любое другое поле, например quality, style или user, отбрасывается и называется в заголовке x-nokeep-ignored. Поле, которое несёт картинку, например image, отклоняется с 400 unsupported_input: эти модели работают только с текстом.
Размеры
- Сторона может быть не меньше 256 пикселей, а длинная сторона — не больше чем втрое длиннее короткой. Вне этого диапазона —
400 unsupported_size. - Больший размер вписывается в 1280 пикселей по стороне с сохранением пропорций. Например, 1536x1024 из OpenAI рисуется как 1280x848.
chromaотдаёт в 1,5 раза больше пикселей, чем рисует, без доплаты: 1024x1024 приходит как 1536x1536.krea-2-turboрисует по именованным форматам, поэтомуsizeпревращается в ближайший.sizeилиaspect_ratioв ответе всегда говорит, что вы получили.
Ответ
{
"created": 1793960000,
"data": [
{
"b64_json": "UklGRk…"
}
],
"model": "z-image-turbo",
"output_format": "webp",
"size": "1024x1024",
"usage": {
"images": 1,
"nokeep_credits": 30
}
}Заголовки x-nokeep-credits и x-nokeep-balance говорят, сколько стоил вызов и сколько осталось, как и в чате. Картинка оплачивается, когда она приходит. Неудачная или отказанная ничего не стоит.
Что создают модели
Взрослый контент входит в рамки на моделях, которые хост помечает как без цензуры. z-image-turbo к ним не относится и в наших проверках сдерживал себя сильнее всех, поэтому может вернуть картинку мягче, чем вы просили.
Четыре жёстких ограничения остаются: сексуальный контент с участием несовершеннолетних, сексуальный контент о реальных людях, вред массового поражения и нападение на реального человека. Промпт, который их переступает, получает 422 hard_limit и ничего не стоит. Проверка читает промпт; см. Жёсткие ограничения. Хост модели тоже может отказать в запросе или придержать результат: это 422 content_refused, тоже бесплатно.
Лимиты и ошибки
Ключ может сделать 60 запросов картинок в минуту, в пределах своих 120 запросов в целом. Сверх этого — 429 rate_limited с Retry-After. На странице ошибок перечислены все коды.
Чтобы проверить код, ничего не тратя, отправьте sk-nokeep-test как ключ. Он проходит все проверки выше и отвечает картинкой в один пиксель.
curl https://nokeep.ai/v1/images/generations \
-H "Authorization: Bearer $NOKEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "chroma",
"prompt": "A lighthouse on a rocky coast at dusk",
"n": 2,
"aspect_ratio": "16:9",
"output_format": "png",
"seed": 42
}'