gemini-3-pro-image)は、テキストの指示で細部を変えたり、写真のスタイルを変えたり、複数の画像から新しい1枚を作ったりできます。このページではLaoZhang APIの2つのリクエスト形式を扱い、編集はどのサイズでも1回の固定料金です。
テキストだけから画像を作る場合は、Nano Banana Proの画像生成のページを参照してください。
始める前に
1
APIキーを作成する
トークン管理でトークン作成のダイアログ(创建令牌)を開き、課金方式(计费模式)を従量優先(按量优先、推奨)または回数課金(按次计费)にして、作成(创建)をクリックします。Nano Banana Proには回数課金の料金しかないため、従量課金(按量计费)のキーでは呼び出せません。リクエストが課金される条件は、Nano Bananaの概要の「課金」で説明しています。

2
キーを設定し、依存パッケージをインストールする
3
cURL用の保存関数を追加する
cURLの例には レスポンスに画像がないときは、代わりに、エラー、
jq が必要です。次のシェル関数は、Geminiネイティブのレスポンスにある最後の画像を、mimeType に合った拡張子で保存します。途中経過の画像が一緒に返った場合も、最後の画像が最終結果です。promptFeedback、finishReason の各フィールドが出力されます。ローカルの画像を編集する
リクエストはPOST https://api.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent に送ります。parts には、最初に指示、そのあとに画像を入れます。ローカルのファイルは、それぞれ mimeType をファイルに合わせた inlineData パートとして送ります。
- Python
- cURL
次のスクリプトを 猫の写真に帽子を加え、2Kで出力します。
nano_banana_pro_edit.py として保存します。指示と1〜14枚のローカルの画像を送り、レスポンスのすべての画像を保存します。aspectRatio を省略しているため、結果は、入力画像のサイズに合わせるというGoogleの既定どおりになります。形を変えたいときは aspectRatio(または --ratio)を加えてください。比率とサイズごとのピクセル数は、Nano Banana Proの「出力サイズ」にあります。
4Kの編集は1Kより時間がかかるため、クライアントのタイムアウトには余裕を持たせてください。例では300秒を許容しています。
参照画像を合成する
指示の後ろに、プロンプトで参照する順に最大14枚のファイルを並べ、それぞれの画像の役割をプロンプトで示します。- オブジェクト画像6枚:商品や小道具など、結果に忠実に再現したいもの
- 人物画像5枚:シリーズを通して人物を一貫させるためのもの
- スタイル画像3枚:配色や筆づかいなど、見た目を決めるもの
公開URLの画像を編集する
Geminiネイティブのルートでは、Base64の代わりにfileData パートでURLから画像を渡すこともできます。
fileUri は自分の画像の公開HTTPSアドレスに置き換え、mimeType もそれに合わせます。画像はリクエストの処理中にそのアドレスから取得されるため、ログイン、Cookie、ボット対策なしで読み込める必要があります。取得できない場合は、ファイルをダウンロードして inlineData として送ってください。
- リクエストが20 MBを超えそうなときはURLを使います。 リクエスト本文全体は20 MB以内に収めてください。
inlineDataで送る画像は合計約15 MB以下にとどめ、それより大きいものはfileDataで渡すか、先に縮小します。 - サイトの
robots.txtが画像のパスへのクローラーをブロックしていないことが必要です。署名付きURLは、待ち時間やリトライに備えて少なくとも30分間有効にしてください。 fileDataとinlineDataのパートは、参照する順に同じparts配列に混在させられます。詳しい条件は、Nano Bananaの概要の「大きな画像と画像URL」を参照してください。
OpenAI互換ルートを使う
すでにOpenAI SDKを使っているアプリでは、chat completionsで編集を送れます。指示と画像を1つのユーザーメッセージにimage_url パートとして入れます。ローカルのファイルはデータURLとして、公開された画像はHTTPSのURLのまま渡します。
このルートには比率とサイズの設定がありません。2K、4K、固定の比率が必要な場合は、Geminiネイティブのルートを使ってください。画像は、message.content の中のBase64のデータURLとして返ります。次のスクリプトを nano_banana_pro_chat_edit.py として保存します。
レスポンスを処理する
- Geminiネイティブ:各画像は
candidates[].content.parts[]の中のinlineDataパートで、mimeTypeとBase64のdataを持ちます。thought: trueが付いたパートは読み飛ばします。Proは描画の前に思考するため、複雑な編集では結果と一緒に途中経過の画像が返ることがあります。最後の画像が最終結果です。- ファイルは
mimeTypeに合った拡張子で保存します。
- chat completions:画像は、
choices[0].message.contentのテキストの中にdata:image/png;base64,...のようなデータURLとして入っています。接頭辞から形式を読み取って取り除き、長さが4の倍数でなければ=のパディングを補ってからデコードします。 - 画像がない:ネイティブのレスポンスでは各候補の
finishReasonと、あればpromptFeedbackを、chatのレスポンスでは返答のテキストを確認します。よくある原因は、安全チェックによるブロックか、モデルが指示にテキストだけで答えたことです。
編集のプロンプトのコツ
- 顔、商品のラベル、レイアウトなど、変えてはいけない部分を書きます。マスクのパラメーターはないため、変えたい範囲は言葉で説明します。
- 「2枚目の画像のジャケット」のように、各画像を順番と役割で指します。
- 顔やロゴをそのまま残したいときは、それを詳しく描写し、変えてはいけないと明記します。
- 画像内の文字は、正確な文言をかぎかっこで囲み、書体のスタイルを指定します。
- 複雑な編集は段階に分け、保存した結果を次のリクエストの入力にします。
エラーと課金
Proが受け付ける値を送ってください。- リクエストがHTTP 200で画像を返さないことがあります。たとえば、安全チェックで出力がブロックされた場合です。
- 編集は生成と同じく課金されるため、この呼び出しも課金されます。
finishReason(あればpromptFeedbackも)を確認し、指示や参照画像を変えてから再送してください。- 詳しくは、Nano Bananaの概要の「空のレスポンスで課金されないようにする」を参照してください。
- HTTP 401は、キーか
Authorization: Bearerヘッダーが間違っていることを示します。Geminiネイティブのルートは、x-goog-api-keyのキーも受け付けます。 - 429と5xxのレスポンスは、バックオフを入れて再試行します。タイムアウトしたリクエストは、再送する前に呼び出しログを確認してください。
fileDataのURLを取得できない場合は、ログインなしで読み込めるか、robots.txtが許可しているかを確認するか、画像をinlineDataとして送ってください。- HTTP 413は、リクエスト本文が大きすぎることを示します。大きな画像はURLで渡すか、リクエスト全体が20 MB以内に収まるよう縮小してください。
- Base64にするとファイルは約3分の1大きくなるため、非常に大きな写真はエンコードの前に縮小してください。
よくある質問
/v1/images/editsで編集できる?
できません。Nano Banana Proの編集は、GeminiネイティブのgenerateContent エンドポイントか、OpenAI互換の /v1/chat/completions を使います。Images APIの編集エンドポイントは使えません。
画像の一部だけを編集できる?
できます。マスクのフィールドはないため、範囲は言葉で指定します。Googleはこれをセマンティックマスキングと呼んでいます。変える要素を名指しし、それ以外はすべてそのままにするよう、たとえば次のように書きます。青いソファだけを茶色の革のソファに変えてください。部屋のほかの部分、レイアウト、照明はそのままにしてください。ほかのコツは、前述の「編集のプロンプトのコツ」を参照してください。
aspectRatioを省略すると結果はどんな形?
Googleの既定では出力が入力画像のサイズに合わせられるため、aspectRatio を省略すると元の形が保たれます。前述の「ローカルの画像を編集する」の例は、この動作です。形を変えたいときだけ aspectRatio を指定し、1K、2K、4Kの選択には imageSize を使ってください。
関連ページと参考資料
- Nano Banana Pro — テキストからの画像生成、比率ごとの出力サイズ、Google検索グラウンディング
- Nano Banana 2 — 4Kまでの低コストの生成と編集
- Nano Bananaの概要 — 5モデル、2つのリクエスト形式、課金ルールの比較
- Standardの編集 —
gemini-2.5-flash-imageでの編集と移行の方法 - 呼び出しログ — リクエストのステータスと課金額の確認
- Google: Nano Banana image generation — 編集のプロンプト、参照画像の上限、思考
- Google: generateContent reference —
imageConfigのフィールド - Google: file input methods — インラインデータと公開URLの入力