画像
画像の作成
プロンプトを指定して画像を生成します
概要
GET /v1/models?recommended_for=image を使用して現在の画像モデルを取得し、選択した model を明示的に送信してください。
gpt-image-2 はトークン課金制の GPT Image モデルです。TokenLab は、テキスト入力、画像入力、報告されたキャッシュ入力、および画像出力トークンに関して OpenAI 公式の使用量内訳に従っており、画像ごとの固定料金モデルとしては請求されません。
gpt-image-2 の画像生成では、サポートされている公開パラメータは prompt、n、size、quality、response_format、async、background、output_format、output_compression または compression、moderation、および user です。background は auto または opaque を受け付け、transparent はサポートされていません。size または quality を省略すると TokenLab は auto を使用します。カスタムの size 値は、以下に記載されている柔軟な WIDTHxHEIGHT 規約に従う必要があります。
input_fidelity は、現在の TokenLab でサポートされている gpt-image-2 向けフィールドには含まれていません。省略しない場合、リクエストは 400 unsupported_parameter を返します。
モデル動作に関する注意事項
Google Gemini 画像ファミリーモデルは、同一のセレクター規約を共有していません。
gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3-pro-image、nano-banana-2.1、およびnano-banana-proは、公開 Text-to-Image、Image-to-Image、および画像編集オペレーションにおいてaspect_ratioとresolution(1k、2k、4k)をサポートしています。nano-banana-2は、Text-to-Image および Image-to-Image 生成の両方でaspect_ratioとresolution(1k、2k、4k)をサポートしています。gemini-3.1-flash-lite-imageおよびnano-banana-2-liteは、1k解像度でのみ Text-to-Image、Image-to-Image、および画像編集をサポートしています。nano-bananaはaspect_ratioをサポートしていますが、公開のresolution選択は公開されていません。gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3.1-flash-lite-image、またはgemini-3-pro-imageでの Image-to-Image には、このエンドポイントでoperation: "image-to-image"と参照画像を使用してください。これらのモデルの画像編集リクエストは/v1/images/editsに送信してください。- Nano Banana の参照画像リクエストには、このエンドポイント(
/v1/images/generations)でnano-banana-2、nano-banana-2.1、nano-banana-2-lite、またはnano-banana-proを使用し、operation: "image-to-image"とimage_urlsを指定してください。nano-banana-2、nano-banana-2.1、nano-banana-2-lite、およびnano-banana-proの画像編集リクエストも、このエンドポイントでoperation: "image-edit"を指定して使用します。Nano Banana の参照画像リクエストを/v1/images/editsに送信しないでください。 - このエンドポイントでの参照画像は、JSON の
image_url/image_urls、またはマルチパートのimageファイルとして指定できます。/v1/images/generationsではimages[]およびfile_idは受け付けられません。/v1/files参照は、images[].file_idが記載されている/v1/images/editsモデルに対してのみ作成してください。
Google 画像ファミリーでは aspect_ratio を優先し、モデルが明示的にサポートしている場合にのみ resolution を送信してください。
xAI Grok Imagine 画像モデル(grok-imagine-image、grok-imagine-image-quality、およびレガシーの grok-imagine-image-pro)は、aspect_ratio と resolution(1k、2k)をサポートしています。grok-imagine-image-pro は、grok-imagine-image-quality の互換性 ID として維持されています。
リクエストボディ
同期リクエストのタイムアウト: 一部の画像リクエストは最終画像をインラインで返し、生成が完了するまで待機します。高解像度または高品質のリクエストは1分近くまたはそれ以上かかる場合があるため、HTTP クライアントのタイムアウトを少なくとも 120s に設定してください。作成レスポンスに status: "pending"、task_id、または poll_url が含まれている場合は、代わりに返された poll_url に従ってください。
使用するモデル(例: gpt-image-2、flux-pro-1.1、または nano-banana-pro)。現在の推奨リストを取得するには GET /v1/models?recommended_for=image をクエリしてください。
希望する画像の説明テキスト。
Image-to-Image 生成用の公開 HTTPS 参照画像 URL。Nano Banana の参照画像リクエストの場合は、operation を image-to-image に設定してください。nano-banana-pro には resolution を含めることができます。
公開 HTTPS 参照画像 URL の配列。JSON リクエストで1つ以上の参照画像を指定する場合に使用します。このエンドポイントでは file_id および images[] はサポートされていません。
プライマリ入力と参照画像を区別するモデル向けの追加の参照画像 URL の配列。
Image-to-Image 生成用のマルチパート参照画像ファイル。ソース画像が非公開またはヘッダーで保護されている場合に使用します。これは /v1/files の file_id とは異なり、このエンドポイントでは受け付けられません。
1生成する画像の枚数(1〜10、モデルに依存)。
画像サイズ。OpenAI スタイルの画像ファミリーや、正確なピクセルサイズを受け付けるその他のモデルに使用します。
gpt-image-2 の場合、size は auto または WIDTHxHEIGHT を受け付けます。カスタム寸法は両方とも16の倍数である必要があり、長辺は最大 3840px、長辺/短辺の比率は最大 3:1、総ピクセル数は 655,360 から 8,294,400 の間である必要があります。aspect_ratio および resolution は、gpt-image-2 の現在の TokenLab モデル詳細には含まれていません。
解像度ティアを持つ Google 画像モデル(gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3-pro-image、gemini-3.1-flash-lite-image、nano-banana-2、nano-banana-2.1、および nano-banana-pro)の場合、size は 1376x768(1K の 16:9)など、モデルのサイズ表の出力サイズ、または解像度ティア(1K、2K、4K)を受け付けます。TokenLab はティアを resolution として送信するため、リクエストとその料金は resolution を使用した場合と同じになります。モデルがサポートしていないティア(例えば gemini-3.1-flash-lite-image での 2K)、または resolution と異なるティアを指定すると、コード invalid_image_size_contract とモデルの allowed_resolutions を含む 400 エラーが返されます。これらのモデルでは、aspect_ratio と resolution を組み合わせた形式が推奨されます。
モデル依存のアスペクト比セレクター。
一般的な Google 画像ファミリーの値には、1:1、16:9、9:16、3:2、2:3 などがあります。
モデル依存の出力解像度。gemini-3.1-flash-image、gemini-nano-banana-2.1、gemini-3-pro-image、nano-banana-2、nano-banana-2.1、および nano-banana-pro は 1k、2k、4k をサポートしています。Grok Imagine 画像モデルは 1k および 2k をサポートしています。選択したモデルとオペレーションが明示的にサポートしていない限り、このフィールドは省略してください。
画質。gpt-image-2 などの GPT Image モデルでは auto、low、medium、または high を使用します。他のモデルでは異なる値を使用する場合があります。デフォルト以外の値を送信する前にモデルの詳細を確認してください。
画像の返却形式: url または b64_json。
- 省略時: モデルが画像バイトを返す場合、各画像は
data[].b64_jsonに含まれ、TokenLab が保存した場合はdata[].urlにも含まれます。モデルがリンクを返す場合、各画像はdata[].urlに含まれます。 url: 各画像はdata[].urlにのみ含まれます。b64_json: 各画像は Base64 データとしてdata[].b64_jsonにのみ含まれます。
リンクは TokenLab のメディア結果 URL です。30日間有効です。データ保持 を参照してください。
falsegpt-image-2 または公式の FLUX/BFL 画像モデルでタスクを最初に作成するには、true に設定します。完了した非同期画像タスクは、リクエストされた response_format に関わらず URL を返します。b64_json が必要な場合は同期リクエストを使用してください。
オプションのスタイルセレクター。選択したモデルで明示的に記載されている場合にのみ送信してください。モデルのメタデータに記載がない限り、gpt-image-2 では省略してください。
エンドユーザーの一意の識別子。
レスポンス
インラインレスポンス
作成時の Unix タイムスタンプ。
生成された画像の配列。
各オブジェクトの内容:
url(string): 画像の TokenLab メディア結果 URL(30日間有効)。response_formatがb64_jsonの場合は存在しません。response_formatが省略されている場合、TokenLab が画像を保存できなかったときは欠落します。b64_json(string): Base64 画像データ。response_formatがb64_jsonの場合、または省略されていてモデルが画像バイトを返す場合に存在します。revised_prompt(string): 選択したモデルがプロンプト修正を返す場合の、オプションのプロンプト修正。
非同期タスクレスポンス
作成リクエストで最終画像を待機する代わりにタスクを作成するには、gpt-image-2 または公式の FLUX/BFL 画像モデルで async: true を設定します。レスポンスには status: "pending"、task_id、および poll_url が含まれます。タスクが completed または failed になるまで /v1/tasks/{task_id} をポーリングしてください。
非同期画像タスクは最終画像の URL のみを返します。生の b64_json 画像データが必要な場合は、同期リクエストを使用してください。
タスク作成時に見積もり額が請求枠として確保される場合があります。完了したタスクは実際のリソース使用量に基づいて請求され、失敗またはタイムアウトしたタスクは解放または返金されます。
作成時の Unix タイムスタンプ。
ポーリング用の一意のタスク識別子。
初期ステータス: pending。
結果をポーリングするための相対 URL(例: /v1/tasks/{id})。
タスクが保留中(pending)の間は空です。完了した画像タスクは、生成された画像の URL を data[].url に返します。
status: "pending" を受信した場合は、poll_url または GET /v1/tasks/{task_id} を使用して結果を取得してください。
リクエスト
curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3-pro-image",
"prompt": "A cinematic portrait of a white cat sitting on a rainy windowsill",
"aspect_ratio": "16:9",
"resolution": "2k"
}'from openai import OpenAI
client = OpenAI(
api_key="sk-your-api-key",
base_url="https://api.tokenlab.sh/v1"
)
response = client.images.generate(
model="gemini-3-pro-image",
prompt="A cinematic portrait of a white cat sitting on a rainy windowsill",
extra_body={"aspect_ratio": "16:9", "resolution": "2k"}
)
print(response.data[0].url)import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-your-api-key',
baseURL: 'https://api.tokenlab.sh/v1'
});
const response = await client.images.generate({
model: 'gemini-3-pro-image',
prompt: 'A cinematic portrait of a white cat sitting on a rainy windowsill',
aspect_ratio: '16:9',
resolution: '2k'
});
console.log(response.data[0].url);<?php
$ch = curl_init('https://api.tokenlab.sh/v1/images/generations');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Authorization: Bearer sk-your-api-key'
],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gemini-3-pro-image',
'prompt' => 'A cinematic portrait of a white cat sitting on a rainy windowsill',
'aspect_ratio' => '16:9',
'resolution' => '2k'
])
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo $data['data'][0]['url'];アスペクト比のみを指定する画像ファミリーの例: nano-banana の場合、aspect_ratio を送信し、resolution は省略します:
{
"model": "nano-banana",
"prompt": "A clean editorial product shot of a citrus soda can",
"aspect_ratio": "16:9"
}Nano Banana Pro 参照画像の例: リクエストは /v1/images/edits ではなく /v1/images/generations に送信してください。resolution はオプションで、1k、2k、または 4k に設定できます:
{
"model": "nano-banana-pro",
"prompt": "Create a clean cinematic character image based on the reference images",
"operation": "image-to-image",
"image_urls": ["https://example.com/reference-1.png"],
"aspect_ratio": "1:1",
"resolution": "2k"
}非公開またはローカルのソース画像に対する直接マルチパートアップロードの例。/v1/images/generations に file_id を渡さないでください:
curl -X POST "https://api.tokenlab.sh/v1/images/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-F "model=nano-banana-pro" \
-F "prompt=Create a clean cinematic character image based on this reference" \
-F "operation=image-to-image" \
-F "image=@reference.png" \
-F "aspect_ratio=1:1" \
-F "resolution=2k"レスポンス
{
"created": 1706000000,
"data": [
{
"url": "https://...",
"revised_prompt": "A fluffy white cat with bright eyes sitting peacefully on a wooden windowsill, watching raindrops stream down the glass window..."
}
]
}モデルの選択
現在の利用可能性、機能、および料金については、GET /v1/models?recommended_for=image をクエリするか、モデルページ を参照してください。
モデルを常に同期的または常に非同期的としてハードコーディングしないでください。作成レスポンスが status: "pending" を返した場合は、poll_url に従って完了するまでポーリングしてください。
タスクベースのレスポンスの処理
画像モデルの場合、レスポンスに status: "pending" / status: "processing" が含まれているかどうかを常に確認してください:
import requests
import time
def generate_image(prompt, model="gpt-image-2"):
# Create image request
response = requests.post(
"https://api.tokenlab.sh/v1/images/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={"model": model, "prompt": prompt, "async": True},
timeout=120
)
response.raise_for_status()
data = response.json()
# Check if task-based
if data.get("status") in ("pending", "processing"):
task_id = data["task_id"]
poll_url = data.get("poll_url")
print(f"Image task started: {task_id}")
# Poll for result
while True:
status_resp = requests.get(
f"https://api.tokenlab.sh{poll_url}" if poll_url else f"https://api.tokenlab.sh/v1/tasks/{task_id}",
headers={"Authorization": "Bearer sk-your-api-key"},
timeout=30
)
status_resp.raise_for_status()
status_data = status_resp.json()
if status_data["status"] == "completed":
return status_data["data"][0]["url"]
elif status_data["status"] == "failed":
raise Exception(status_data.get("error", "Generation failed"))
time.sleep(3)
else:
# Inline response
return data["data"][0]["url"]
# 使用例
url = generate_image("a beautiful sunset over mountains", model="gpt-image-2")
print(f"Generated image: {url}")Hy Image 3.5 Preview は、テキストから1024ピクセルの正方形画像を生成し、記述された指示に従って参照画像を編集します。ビジュアルのドラフト作成や構図の推敲に役立ちます。
{
"model": "hy-image-v3.5-preview",
"prompt": "A yellow lemon on a white table",
"size": "1024x1024",
"n": 1,
"response_format": "url"
}認証
BearerAuth APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
ヘッダー
リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。
指定できる値
- "auto"
- "verified"
- "official"
レスポンス
application/json
application/json
application/json
application/json
application/json
application/json
application/json