Gemini 3.1 Flash Image Preview API — テキスト&画像から画像生成ガイド
APIMaster.ai で gemini-3.1-flash-image-preview を使用し、テキストからの画像生成および画像からの画像生成(最大4K)を行います。
Gemini 3.1 Flash Image Preview
- モデル:
gemini-3.1-flash-image-preview(固定) - 機能: テキスト→画像、画像→画像(最大14枚の参照画像対応)、最大 4K、極端なアスペクト比、オプションで Google Search Grounding
注意: このモデルを
/v1/chat/completions経由で呼び出さないでください — Images API を使用するよう促す 400 エラーが返ります。
エンドポイント
| モード | エンドポイント | 使用するタイミング |
|---|---|---|
| 同期(推奨) | POST https://apimaster.ai/v1/images/generations |
1回のHTTPラウンドトリップで完了。プラットフォームが上流をポーリングし、{ "data": [{ "url" }] } を返却 |
| 非同期 | POST https://apimaster.ai/v1/images/generations/async → GET https://apimaster.ai/v1/tasks/{task_id}?model=gemini-3.1-flash-image-preview |
長時間のジョブやカスタムキュー向け |
クイックスタート(同期)
curl -s "https://apimaster.ai/v1/images/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "Cyberpunk city at night, neon lights",
"size": "16:9",
"resolution": "2K",
"n": 1
}'
成功時
{
"created": 1782633696,
"data": [{ "url": "https://apimaster.ai/imgs/1782633695067198543.jpg" }]
}
2K/4K の場合は HTTP 読み取りタイムアウトを 180秒以上 に設定してください。URL は有効期限があるため、早めにダウンロードまたはミラーリングを行ってください。
非同期フロー
提出
curl -s "https://apimaster.ai/v1/images/generations/async" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "a corgi astronaut on the moon",
"size": "1:1",
"resolution": "1K",
"n": 1
}'
提出レスポンス
{
"code": 200,
"data": [{ "status": "submitted", "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K" }]
}
ポーリング
curl -s "https://apimaster.ai/v1/tasks/TASK_ID?model=gemini-3.1-flash-image-preview" \
-H "Authorization: Bearer YOUR_API_KEY"
成功時は data.result.images[0].url を読み取ります。一般的なポーリングステータス: in_progress → succeeded / completed。
初回ポーリングまで 10~20秒 待機し、その後は 3~5秒 間隔でポーリングしてください。
認証
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
ボディパラメーター
| フィールド | 型 | 必須 | 備考 |
|---|---|---|---|
model |
string | はい | gemini-3.1-flash-image-preview |
prompt |
string | はい | シーンの説明 |
size |
string | いいえ | アスペクト比。下記参照 |
resolution |
string | いいえ | 0.5K / 1K / 2K / 4K。デフォルト 1K。大文字小文字は区別しない |
n |
integer | いいえ | 1 のみサポート(数値、文字列不可) |
image_urls |
array | いいえ | 参照画像(URL または data URI) |
google_search |
boolean | いいえ | Google テキスト検索の Grounding |
google_image_search |
boolean | いいえ | google_search: true が必要 |
解像度と課金段階
| 値 | ピクセル数(目安) | 1K基準との価格差 |
|---|---|---|
0.5K |
約512 | 1Kと同額 |
1K |
約1024 | 基準 |
2K |
約2048 | × 4/3 |
4K |
約4096 | × 2 |
実際の請求額 = チャネル価格 × 解像度倍率 × グループ割合。詳細は マーケットプレイス またはコンソールのログを参照してください。
エラー
| HTTP | 意味 |
|---|---|
| 400 | パラメーター不正、またはエンドポイント誤り(チャット経由) |
| 401 | APIキーが無効 |
| 402 | 残高不足 |
| 408 | 同期ポーリングのタイムアウト — 非同期で再試行するか、解像度を下げてください |
| 500 / 502 | 上流またはプラットフォームのエラー |
無効なアスペクト比は、チャネルが1つしか設定されていない場合に 500 として現れることがあります。
備考
- 利用ログには画像プレビュー用の
result_urlとrequest_data.effective_resolutionが含まれます。 - 料金はチャネルと解像度によって異なります — マーケットプレイス を参照してください。
