画像を編集する

Imagen を使用すると、テキスト プロンプト、マスク、既存の画像を使用して編集をガイドし、画像を数秒で編集できます。

編集とカスタマイズ用 Imagen のモデルカードを表示する

サポートされているモデル バージョン

Imagen API は、次のモデルをサポートしています。

  • imagen-3.0-capability-001

モデルでサポートされている機能の詳細については、Imagen モデルをご覧ください。

HTTP リクエスト

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict \

-d '{
  "instances": [
    {
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": string
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceId": 2,
          "referenceImage": {
            "bytesBase64Encoded": string
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED"
          }
        }
      ],
      "prompt": string
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "editMode": string,
    "guidanceScale": integer,
    "includeRaiReason": boolean,
    "includeSafetyAttributes": boolean,
    "language": string,
    "negativePrompt": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    },
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string
  }
}'

インスタンス

インスタンス
prompt

string

省略可。画像のテキスト プロンプト。prompt が指定されていない場合、モデルは画像コンテキストからコンテンツを補完します。

referenceImages

ReferenceImage オブジェクトのリストを返します。

必須。マスク編集では、REFERENCE_TYPE_RAWREFERENCE_TYPE_MASK の 2 つの参照画像を正確に指定する必要があります。

referenceImages オブジェクト

referenceImages オブジェクトは、編集する Imagen の画像アセットを記述します。

パラメータ
referenceType

string

必須。参照画像のタイプ。次のいずれかになります。

  • REFERENCE_TYPE_RAW: 編集対象となるベース画像。
  • REFERENCE_TYPE_MASK: マスク画像。ゼロ以外の値は、ベース画像の編集対象領域を示します。
referenceId

integer

必須。参照画像の固有識別子。マスク編集には使用されません。

referenceImage.bytesBase64Encoded

string

必須。Base64 でエンコードされた画像のバイト数。PNG、JPEG、GIF、BMP の各ファイルを使用できます。PNG にコード変換した後の最大サイズは 20 MB です。マスク画像を提供する場合は、ベース画像と同じサイズにする必要があります。

maskImageConfig.maskMode

string

referenceTypeREFERENCE_TYPE_MASK の場合は必須。次のいずれかの値を設定する必要があります。

  • MASK_MODE_USER_PROVIDED: referenceImage.bytesBase64Encoded のマスクを使用します。
  • MASK_MODE_BACKGROUND: バックグラウンド セグメンテーションから自動生成されたマスクを使用します。
  • MASK_MODE_FOREGROUND: フォアグラウンド セグメンテーションから自動生成されたマスクを使用します。
  • MASK_MODE_SEMANTIC: 指定されたマスククラスでセマンティック セグメンテーションから自動生成されたマスクを使用します。
maskImageConfig.dilation

float

省略可。範囲: [0, 1]。マスクを拡張(拡大)する画像幅の割合。これにより、不正確なマスクを補正できます。最良の結果を得るには、次の maskImageConfig.maskMode 設定をおすすめします。次の値を使用することをおすすめします。

  • EDIT_MODE_INPAINT_INSERTION: 0.01
  • EDIT_MODE_INPAINT_REMOVAL: 0.01
  • EDIT_MODE_BGSWAP: 0.0
  • EDIT_MODE_OUTPAINT: 0.010.03
maskImageConfig.maskClasses

list[integer]

省略可。MASK_MODE_SEMANTIC モードのマスククラス

パラメータ

パラメータ
addWatermark

bool

省略可。生成された画像に目に見えない透かしを追加します。

デフォルト値は true です。

baseSteps

integer

省略可。サンプリング ステップ数。値が大きくなるほど画質は向上しますが、値が小さくなるほどレイテンシは短縮されます。デフォルトは 75 です。

マスク領域が小さい場合や、削除モードまたは挿入モードの場合、1635 ステップを使用すると、同様の品質レベルでレイテンシが短縮されます。

editMode

string

マスク編集で必須です。

次のいずれかの値を持つ列挙型です。

  • EDIT_MODE_INPAINT_REMOVAL: マスク領域のオブジェクトを削除し、画像の背景を塗りつぶします。
  • EDIT_MODE_INPAINT_INSERTION: 指定されたプロンプトからオブジェクトを追加します。
  • EDIT_MODE_BGSWAP: マスク領域に背景コンテンツを追加します。マスクされていない領域のオブジェクト コンテンツは保持します。商品の編集に便利です。
  • EDIT_MODE_OUTPAINT: マスク領域に画像を拡張します。EDIT_MODE_BGSWAP とは異なり、画像の境界にある部分的なオブジェクトのオブジェクト補完を生成します。
guidanceScale

integer

省略可。モデルのテキスト プロンプトに対する適合度を制御します。 値を大きくすると出力とプロンプトの適合性が向上しますが、画質が低下する可能性があります。

許容範囲: 0500

デフォルト: 挿入モードでは 60、削除、bgswap、outpaint では 75

includeRaiReason

boolean

省略可。フィルタされた画像の安全上の理由をレスポンスに含めるかどうかを指定します。デフォルト値は false です。

includeSafetyAttributes

boolean

省略可。各画像の安全スコアをレスポンスで報告するかどうかを指定します。デフォルト値は false です。

language

string

省略可。テキスト プロンプト言語に対応する言語コード。 次の値を使用できます。

  • "auto": 自動検出。Imagen がサポートされている言語を検出すると、プロンプトと必要に応じて否定的なプロンプトが英語に翻訳されます。検出された言語がサポートされていない場合、Imagen は入力テキストをそのまま使用するため、予期しない出力になる可能性があります。エラーコードは返されません。
  • "en": 英語(省略した場合はデフォルト値)
  • "zh" または "zh-CN": 中国語(簡体字)
  • "zh-TW": 中国語(繁体字)
  • "hi": ヒンディー語
  • "ja": 日本語
  • "ko": 韓国語
  • "pt": ポルトガル語
  • "es": スペイン語

languageimagen-3.0-capability-001 でのみサポートされています。

negativePrompt

string

省略可。生成される画像に含まれないようにする内容の説明。

outputOptions

outputOptions

省略可。outputOptions オブジェクトで出力画像形式を記述します。

personGeneration

string

省略可。モデルによって人物の画像が生成されるようにします。次の値を使用できます。

  • "dont_allow": 画像に人物や顔が含まれないようにします。
  • "allow_adult": 成人の画像のみが生成されるようにします。
  • "allow_all": 年齢制限なく人物の画像が生成されるようにします。

マスクベースの編集の場合、personGeneration のデフォルトは allow_adult です。マスクなしの編集の場合、personGeneration のデフォルトは allow_adult です。

sampleCount

integer

省略可。生成する画像の数。デフォルト値は 4 です。

seed

Uint32

省略可。画像生成用の乱数シード。addWatermarktrue に設定されている場合は使用できません。

safetySetting

string

省略可。安全フィルタリングにフィルタレベルを追加します。次の値を使用できます。

  • "block_low_and_above": 最も強力なフィルタリング レベル。最も厳格なブロックを実施します。非推奨の値: "block_most"
  • "block_medium_and_above": 問題のある一部のプロンプトとレスポンスをブロックします。非推奨の値: "block_some"
  • "block_only_high": 安全フィルタによってブロックされるリクエストの数が少なくなります。Imagen によって生成される不適切なコンテンツが増加する可能性があります。非推奨の値: "block_few"
  • "block_none": ごく少数の問題のあるプロンプトとレスポンスをブロックします。この機能へのアクセスは制限されています。前のフィールド値: "block_fewest"

デフォルト値は "block_medium_and_above" です。

safetySettingimagen-3.0-capability-001 でのみサポートされています。

storageUri

string

省略可。生成された画像を保存する Cloud Storage URI。

出力オプション オブジェクト

outputOptions オブジェクトは画像出力を記述します。

パラメータ
outputOptions.mimeType

string

省略可。出力を保存する際の画像形式。次の値を使用できます。

  • "image/png": PNG 画像として保存
  • "image/jpeg": JPEG 画像として保存

デフォルト値は "image/png" です。

outputOptions.compressionQuality

integer

省略可。出力タイプが "image/jpeg" である場合の圧縮レベル。指定できる値は 0100 です。デフォルト値は 75 です。

リクエストの例

REST

リクエストのデータを使用する前に、次のように置き換えます。

  • REGION: プロジェクトが配置されているリージョン。サポートされているリージョンの詳細については、Vertex AI の生成 AI のロケーションをご覧ください。
  • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
  • TEXT_PROMPT: 省略可。モデルが生成する画像をガイドするテキスト プロンプト。最適な結果を得るには、マスクされた領域の説明を使用し、単語によるプロンプトは避けてください。たとえば、「コーギー」ではなく「かわいいコーギー」を使用します。
  • B64_BASE_IMAGE: 編集対象の画像を base64 でエンコードした画像で、サイズは 10 MB 以下です。Base64 エンコードの詳細については、ファイルを Base64 でエンコードおよびデコードするをご覧ください。
  • B64_MASK_IMAGE: サイズが 10 MB 以下で Base64 でエンコードされた白黒マスク画像。
  • MASK_DILATION: 省略可。マスクを拡大する画像幅の割合を表す 0~1 の浮動小数点値(両端を含む)。dilation を使用すると、不正確なマスクを補正できます。0.01 の値をおすすめします。
  • EDIT_STEPS: 省略可。サンプリング ステップ数を表す整数。値が大きくなるほど画質は向上しますが、値が小さくなるほどレイテンシは短縮されます。

    初期値として 35 ステップをお試しください。画質が要件を満たしていない場合は、上限値 75 まで値を増加させていくことをおすすめします。

  • SAMPLE_COUNT: 省略可。生成する画像の数を指定する整数。指定できる値の範囲は 14 で、デフォルト値は 4 です。

HTTP メソッドと URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict

リクエストの本文(JSON):

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "referenceImages": [
        {
          "referenceType": "REFERENCE_TYPE_RAW",
          "referenceId": 1,
          "referenceImage": {
            "bytesBase64Encoded": "B64_BASE_IMAGE"
          }
        },
        {
          "referenceType": "REFERENCE_TYPE_MASK",
          "referenceImage": {
            "bytesBase64Encoded": "B64_MASK_IMAGE"
          },
          "maskImageConfig": {
            "maskMode": "MASK_MODE_USER_PROVIDED",
            "dilation": MASK_DILATION
          }
        }
      ]
    }
  ],
  "parameters": {
    "editConfig": {
      "baseSteps": EDIT_STEPS
    },
    "editMode": "EDIT_MODE_INPAINT_INSERTION",
    "sampleCount": SAMPLE_COUNT
  }
}

リクエストを送信するには、次のいずれかのオプションを選択します。

curl

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict"

PowerShell

リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
次のサンプル レスポンスは、"sampleCount": 2 を含むリクエストに対するものです。レスポンスは、生成された画像のバイトを base64 でエンコードした 2 つの予測オブジェクトを返します。
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

クラス ID

次のオブジェクト クラス ID を使用して、特定のオブジェクトに基づいて画像マスクを自動的に作成します。

クラス ID(class_id オブジェクト
0 リュックサック
1
2 バッグ
3 ネクタイ
4 スーツケース
5 ケース
6
7
8
9
10 ヒツジ
11
12 ゾウ
13 クマ
14 シマウマ
15 キリン
16 動物(その他)
17 電子レンジ
18 ラジエーター
19 オーブン
20 トースター
21 貯蔵タンク
22 コンベヤー ベルト
23 シンク
24 冷蔵庫
25 洗濯乾燥機
26 扇風機
27 食洗機
28 トイレ
29 バスタブ
30 シャワー
31 トンネル
32 ブリッジ
33 桟橋
34 テント
35 ビルディング
36 天井
37 ノートパソコン
38 キーボード
39 ネズミ
40 リモート
41 携帯電話
42 テレビ
43 フロア
44 ステージ
45 バナナ
46 リンゴ
47 サンドイッチ
48 オレンジ
49 ブロッコリー
50 ニンジン
51 ホットドッグ
52 ピザ
53 ドーナツ
54 ケーキ
55 果物(その他)
56 食品(その他)
57 椅子(その他)
58 アームチェア
59 回転椅子
60 スツール
61 シート
62 ソファ
63 ゴミ箱
64 鉢植えの植物
65 ナイトスタンド
66 ベッド
67 テーブル
68 ビリヤード
69
70 デスク
71 オットマン
72 洋服だんす
73 ベビーベッド
74 かご
75 整理ダンス
76 本棚
77 カウンタ(その他)
78 バスルーム カウンタ
79 キッチン アイランド
80 ドア
81 ライト(その他)
82 ランプ
83 壁掛け照明
84 シャンデリア
85 ミラー
86 ホワイトボード
87
88 階段
89 エスカレーター
90 キャビネット
91 暖炉
92 ガスコンロ
93 アーケード マシン
94 砂利
95 プラットフォーム
96 プレイフィールド
97 レール
98 道路
99
100 歩道
101 ランウェイ
102 地形
103 書籍
104 ボックス
105 時計
106 花瓶
107 はさみ
108 玩具(その他)
109 テディベア
110 ヘアドライヤー
111 歯ブラシ
112 絵画
113 ポスター
114 掲示板
115 ボトル
116 コップ
117 ワイングラス
118 ナイフ
119 フォーク
120 スプーン
121 ボウル
122 トレイ
123 レンジフード
124
125 人物
126 ライダー(その他)
127 サイクリスト
128 ライダー
129 ホワイトペーパー
130 街灯
131 道路の障害物
132 郵便受け
133 CCTV カメラ
134 ジャンクション ボックス
135 交通標識
136 信号
137 消火栓
138 パーキング メーター
139 ベンチ
140 自転車置き場
141 広告板
142
143 ポール
144 フェンス
145 手すり
146 ガードレール
147
148
149 フリスビー
150 スキー
151 スノーボード
152 ボール
153
154 野球のバット
155 野球のグローブ
156 スケートボード
157 サーフボード
158 テニスラケット
159 ネット
160 ベース
161 彫刻
162
163 噴水
164 日よけ
165 アパレル
166 バナー
167
168 ブランケット
169 カーテン(その他)
170 シャワーカーテン
171
172 タオル
173 ラグマット
174 樹木
175 自転車
176
177 自動三輪タクシー
178 オートバイ
179 飛行機
180 バス
181 電車
182 トラック
183 トレーラー
184 ボート、船
185 ゆっくりと動く車輪付きの物体
186 川湖
187
188 水(その他)
189 プール
190 ウォーターフォール
191
192
193 ブラインド

次のステップ