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

コード例

Python

Node.js

cURL

複数画像の編集

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

Python(複数画像)

cURL(複数画像、Googleの公式形式に準拠)

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

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

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

承認

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