リファレンス
POST /v1/images/generations
テキストのプロンプトから画像を生成します。OpenAI形式なので、SDKの images.generate はベース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))モデル
| モデル | 向いている用途 | 1枚あたり | サイズ | 最長のプロンプト |
|---|---|---|---|---|
| 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 | 整数 | 同じシードとプロンプトなら、似た画像になります。n を使うと、各画像でシードが1ずつ増えます。 |
negative_prompt | テキスト | 除外したい内容。ハード制限のチェックでは読まれず、すべてのモデルが考慮するわけではありません。 |
steps | 1〜50 | ステップ数を増やすと時間がかかります。すべてのモデルが使うわけではありません。 |
cfg_scale | 0より大きく、20まで | プロンプトにどれだけ忠実に従うか。すべてのモデルが使うわけではありません。 |
quality、style、user など、それ以外の項目は破棄され、x-nokeep-ignored ヘッダーに名前が挙がります。image のように画像を運ぶ項目は、400 unsupported_input で拒否されます。これらのモデルはテキストだけで動くためです。
サイズ
- 一辺は256ピクセル以上で、長い辺は短い辺の3倍までです。外れると
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 はその一つではなく、当社の確認で最も抑えめだったため、依頼どおりより穏やかな画像になることがあります。
4つのハード制限は残ります。未成年者の性的なコンテンツ、実在の人物の性的なコンテンツ、大量殺傷につながる危害、実在の人物への攻撃です。これに当たるプロンプトは 422 hard_limit になり、料金はかかりません。チェックはプロンプトを読みます。詳しくはハード制限を参照してください。モデルのホストがリクエストを拒否したり結果を保留したりすることもあります。その場合は 422 content_refused で、これも無料です。
上限とエラー
1つのキーで毎分60件の画像リクエストができ、全体では120リクエストの上限内に収まります。超えると Retry-After 付きの 429 rate_limited になります。すべてのコードはエラーページにあります。
料金をかけずにコードを確認するには、キーとして 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
}'