Skip to main content
POST
Image Editing: Edit an existing image with text instructions
右側のインタラクティブなPlaygroundでは、パラメータをドロップダウン形式で選択できます。AuthorizationフィールドにAPIキー(形式: Bearer sk-xxx)を入力すると、ワンクリックでテストリクエストを送信できます。
対象範囲: このページは画像編集専用です。編集の指示とともに、入力画像(base64エンコード済み)を提供する必要があります。テキストのみから新しい画像を生成する場合は、テキストから画像生成エンドポイントを使用してください。
🖥️ ブラウザPlaygroundの制限事項(重要)このエンドポイントは、レスポンスとしてbase64エンコードされた画像(inlineData.data、通常は数MB)を返します。ブラウザのレンダリング制限により、レスポンス受信後に右側のPlaygroundに请求时发生错误: unable to complete requestと表示される場合がありますが、リクエスト自体は実際には成功しています。単にブラウザがこれほど長いbase64文字列を描画できないだけです。推奨ワークフロー(初心者向け):
  • 以下のPython / Node.js / cURLサンプルをコピーしてローカルで実行してください。コードがレスポンスを自動的にbase64.b64decodeし、画像をファイルに書き込みます。
  • どうしてもブラウザ内のPlaygroundを使用する場合は、非常に小さい参照画像(50KB未満)を使用し、imageSizeを最小レベル(1K)に設定してください。
⚠️ parts 配列構造(重要 — 複数画像の編集時は必ずお読みください)各partは、textまたはinlineDataのいずれか1つである必要があり、両方を含めることはできません。これはGoogle公式のgemini-nano-banana-2.1仕様に準拠しています。正しい例: 1つのtextパート(指示) + N個のinlineDataパート(画像1枚につき1個):
誤った例(各パートにtextとinlineDataの両方が含まれている — 予期しない動作を引き起こします):
🖼️ inlineData.data フィールドについてこのエンドポイントは JSON 形式(マルチパートファイルアップロードではありません)を使用しているため、Playgroundでローカルファイルを直接選択することはできません。まず画像を Base64 文字列に変換し、それを data 入力欄に貼り付ける必要があります。ワンライナーコマンド: 変換してクリップボードにコピー:
実行後、Playgroundの data フィールドに Cmd+V / Ctrl+V で貼り付けるだけです。また、mimeType を一致する image/jpeg または image/png に設定することも忘れないでください。推奨事項: 長いbase64文字列によるブラウザの遅延を避けるため、テストには小さな画像(200KB未満)を使用してください。頻繁に画像編集テストを行う場合は、代わりに以下のコード例を使用してローカルで実行してください。

コード例

Python

Node.js

cURL

複数画像の編集

複数の入力画像を統合または比較する場合、単一の text パート(指示内容)の後に複数の inlineData パート(画像ごとに1つ)を使用します。

Python(複数画像)

cURL(複数画像、Google の公式フォーマットに準拠)

パラメータクイックリファレンス

マルチターンの対話型編集

Nano Banana 2.1(gemini-nano-banana-2.1)は真の対話型マルチターン編集をサポートしています。contentsに各ターンで生成された画像を**role: "model" inlineDataとして追加し、次のユーザー指示を送信します。モデルは完全な会話履歴**に基づいて編集を行い、変更を累積します(例:最初にソファの色を変更し、次に小物を追加した場合でも、以前の変更は保持されます)。
これはリバース画像モデルとは異なります。ネイティブのGeminiフォーマットは、modelロールの履歴ターンから画像を忠実に読み取ります。ターン間の一貫性と段階的な調整を行うには、以下の履歴バックフィルパターンを使用してください。
既存の画像からマルチターンを開始する: 既存の写真を編集するには、最初のユーザーメッセージにinlineData(ご自身の画像)と指示を含め、その後ターンごとにモデル出力をcontentsへバックフィルし続けます。
2つのマルチターンスタイル:
  • 履歴バックフィル(上記、推奨): contentsでユーザーとモデルが交互に続く履歴を保持し、より優れた一貫性でターン間の変更を累積します。
  • 再フィード(よりシンプル): 以前のコンテキストを引き継がずに、各ターンで1ステップの編集用に単一のユーザーメッセージ(text + 前の画像のinlineData)を送信します。

承認

Authorization
string
header
必須

API Key obtained from APIYI Console

ボディ

application/json
contents
object[]
必須

Content array containing edit instructions and the image to edit

generationConfig
object
必須

レスポンス

Successfully edited image

candidates
object[]

Generation results array

usageMetadata
object