参考
POST /v1/images/generations
用文本提示词生成图片,格式与 OpenAI 相同:SDK 的 images.generate 只需替换 base URL 即可使用。图片在响应中返回,我们不保留副本。
核对于 2026年11月6日
生成一张图片
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.5 倍返回 | 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 | 必填 | 上表中的一个模型 id。 |
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 时,每张图片的 seed 依次加一。 |
negative_prompt | 文本 | 要排除的内容。它不参与硬性限制检查,并且并非每个模型都会考虑它。 |
steps | 1 至 50 | 步数越多耗时越长。并非每个模型都使用它。 |
cfg_scale | 大于 0,最大 20 | 与提示词的贴合程度。并非每个模型都使用它。 |
其他字段(如 quality、style 或 user)会被丢弃,并在 x-nokeep-ignored 响应头中列出。携带图片的字段(如 image)会以 400 unsupported_input 被拒绝:这些模型只支持文本输入。
尺寸
- 边长至少为 256 像素,且较长一边不超过较短一边的三倍。超出范围会返回
400 unsupported_size。 - 超过上限的尺寸会等比缩小,装入 1280 像素边长之内。例如 OpenAI 的 1536x1024 会绘制为 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 作为密钥。它会运行上面的所有检查,并返回一张 1 像素的图片。
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
}'