curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gemini-nano-banana-2.1",
prompt: "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
size: "16:9",
resolution: "2K",
n: 1
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
Nano banana 2.1
Nano banana 2.1 画像生成
テキストからの画像生成と参照画像の編集に対応。1K / 2K / 4K、10 種類のアスペクト比をサポートし、公式版と Ext 版を提供します。
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gemini-nano-banana-2.1",
prompt: "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
size: "16:9",
resolution: "2K",
n: 1
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
モデルの選択
| モデル ID | 課金方式 | 1 リクエストの生成枚数 | 参照画像のサイズ |
|---|---|---|---|
gemini-nano-banana-2.1 | 実際のトークン使用量 | 1–4 枚 | 1 枚あたり最大 20MB |
gemini-nano-banana-2.1-ext | 解像度ごとの画像単位課金 | 1 枚のみ | 1 枚あたり最大 20MB、合計最大 50MB |
この API は非同期です。送信に成功すると
task_id が返ります。タスク照会で状態と画像を取得してください。3–5 秒間隔でポーリングし、全体の待機タイムアウトは 3 分以上に設定することを推奨します。curl --request POST \
--url https://api.apimart.ai/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/images/generations",
headers={"Authorization": "Bearer <token>"},
json={
"model": "gemini-nano-banana-2.1",
"prompt": "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
"size": "16:9",
"resolution": "2K",
"n": 1
}
)
print(response.json())
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "gemini-nano-banana-2.1",
prompt: "木のテーブルに座る茶トラ猫、隣にコーヒー、柔らかな朝の光、写実的な写真",
size: "16:9",
resolution: "2K",
n: 1
})
});
console.log(await response.json());
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01K..."
}
]
}
リクエストヘッダー
string
必須
Bearer 認証。形式は
Bearer <token> で、<token> は APIMart API Key です。リクエストパラメータ
string
必須
モデル ID:
gemini-nano-banana-2.1 または gemini-nano-banana-2.1-ext。string
必須
画像生成または編集のテキスト説明。中国語と英語に対応しています。
string
デフォルト:"auto"
出力アスペクト比。
1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9 に対応し、16x9 形式も使用できます。省略または auto の場合はモデルが決定します。画像から画像を生成する場合は参照画像の比率に従います。1:4、4:1、1:8、8:1 など、その他の比率は非対応です。非対応の比率ではタスクが失敗し、返金されます。string
デフォルト:"1K"
出力解像度:
1K、2K、4K。小文字でも指定でき、課金にも影響します。0.5K と 512 は非対応で、送信時に HTTP 400 が返ります。3K など認識できない他の値は 1K として生成・課金されます。上記の対応値のみを使用してください。integer
デフォルト:"1"
生成枚数。公式版は 1–4 枚、Ext 版は 1 枚のみです。4 を超えると送信時に HTTP 400 が返ります。Ext 版で 2–4 を指定すると実行段階で失敗し、全額返金されます。複数枚が必要な場合は Ext タスクを個別に送信するか、公式版を使用してください。
string[]
参照画像のリスト。省略するとテキストから画像を生成し、指定すると画像からの生成または編集を行います。各要素は次に対応します。
- 公開アクセス可能な HTTP(S) 画像 URL。
data:image/png;base64,...などの Base64 Data URL。
boolean
デフォルト:"false"
gemini-nano-banana-2.1-ext のみに適用されます。有効にすると、Ext 版で失敗した場合に公式版での完了を試みます。実際に公式版を使用した場合、Ext 版の画像単位料金ではなく、公式版の実際のトークン使用量で課金されます。string
タスク終了時のコールバック URL。タスク Webhookをご覧ください。
出力サイズの目安
| アスペクト比 | 1K | 2K | 4K |
|---|---|---|---|
| 1:1 | 1024×1024 | 2048×2048 | 4096×4096 |
| 2:3 | 848×1264 | 1696×2528 | 3392×5056 |
| 3:2 | 1264×848 | 2528×1696 | 5056×3392 |
| 3:4 | 896×1200 | 1792×2400 | 3584×4800 |
| 4:3 | 1200×896 | 2400×1792 | 4800×3584 |
| 4:5 | 928×1152 | 1856×2304 | 3712×4608 |
| 5:4 | 1152×928 | 2304×1856 | 4608×3712 |
| 9:16 | 768×1376 | 1536×2752 | 3072×5504 |
| 16:9 | 1376×768 | 2752×1536 | 5504×3072 |
| 21:9 | 1584×672 | 3168×1344 | 6336×2688 |
参照画像の編集
{
"model": "gemini-nano-banana-2.1-ext",
"prompt": "画像の猫に赤いニット帽をかぶせ、ほかは変更しない",
"image_urls": ["https://example.com/cat.jpg"],
"resolution": "1K"
}
size を省略すると参照画像の比率に従います。
一括生成(公式版のみ)
{
"model": "gemini-nano-banana-2.1",
"prompt": "サイバーパンク風の都市の夜景、ネオン、雨上がりの街路",
"size": "16:9",
"resolution": "2K",
"n": 4
}
送信レスポンス
integer
レスポンスステータスコード。成功時は
200 です。array
タスク送信結果。
status は submitted です。task_id はタスクの状態と結果の照会に使用する ID で、最終画像の URL ではありません。タスク結果の照会
curl --request GET \
--url https://api.apimart.ai/v1/tasks/task_01K... \
--header 'Authorization: Bearer <token>'
{
"code": 200,
"data": {
"id": "task_01K...",
"status": "completed",
"progress": 100,
"result": {
"images": [
{
"url": ["https://example.com/generated-image.png"],
"expires_at": 1791417625
}
]
}
}
}
| タスク状態 | 意味 |
|---|---|
pending | 待機中 |
processing | 生成中 |
completed | 成功。data.result.images[0].url から画像 URL 配列を取得 |
failed | 失敗。原因は data.error.message。全額返金され、data.cost は 0 |
data.result.images[0].url 配列に格納されます。4 枚生成した場合は 4 つのリンクが含まれます。完成画像のみが返され、n=1 は完成画像 1 枚に対応します。
リンクはタスク完了から 24 時間で期限切れになります。expires_at を確認し、早めにダウンロード・保存してください。出力は PNG または JPEG で、実際のファイル内容を基準にしてください。照会結果の data.cost は最終請求額(米ドル)です。
課金について
- 公式版:実際の入力・出力トークン使用量に基づいて課金されます。プロンプトと参照画像は入力に含まれます。送信時に解像度と
nに基づいて仮引き落としし、完了後に実使用量との差額を返金または追加請求します。 - Ext 版:解像度別単価 × 実際の生成枚数で課金します。アスペクト比は解像度区分に影響しません。
official_fallbackが有効で実際に公式版を使用した場合は、公式版のトークン課金に切り替わります。 - 単価はモデル料金をご確認ください。送信段階で拒否されたリクエストはタスクを作成せず、課金されません。失敗したタスクは全額返金されます。
よくあるエラー
| 状況 | 対処方法 |
|---|---|
| HTTP 400 | 0.5K / 512、4 を超える n、参照画像 1 枚あたりのサイズ超過を確認 |
| HTTP 401 | API Key を確認 |
| HTTP 402 | 仮引き落とし額をカバーする残高があるか確認 |
| HTTP 429 | レート制限。間隔を延ばして再試行 |
| タスク失敗:非対応の比率 | 対応する 10 種類の size または auto を使用 |
| タスク失敗:Ext で複数枚を要求 | n を 1 にするか公式版を使用 |
| タスク失敗:安全性チェックによるブロック | プロンプトまたは参照画像を修正して再試行 |
| タスク失敗:参照画像のダウンロード失敗 | 画像 URL が公開アクセス可能か確認 |
Nano banana 2.1 と Gemini 3.1 Flash Image は異なるモデルで、モデル名を相互の別名として使用できません。後者から移行する場合は、解像度
0.5K と 4 種類の極端な比率 1:4、4:1、1:8、8:1 を変更してください。