Imagen API を使用すると、テキスト プロンプトと参照画像を使用して被写体やスタイルの生成をガイドし、高品質の画像を数秒で作成できます。
編集とカスタマイズ用 Imagen のモデルカードを表示する
サポートされているモデル
モデル | コード |
---|---|
参照画像を使用したカスタマイズ(少数ショット) | imagen-3.0-capability-001 |
各モデルでサポートされている機能の詳細については、Imagen モデルをご覧ください。
HTTP メソッドと URL
POST https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict
構文の例
テキスト プロンプトと参照画像から画像をカスタマイズするための構文。
構文
画像をカスタマイズする構文。
REST
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": [ { // Use [1] to refer to the reference images with referenceId=1 // [2] to refer to the reference images with referenceId=2, // following the same format for all reference IDs that you provide. "prompt": "${TEXT_PROMPT}", "referenceImages": [ // A list of at most 4 reference image objects. [...] ] } ], "parameters": { [...] } }'
リクエストの本文の例:
このリクエストは、顔メッシュのコントロール画像と 3 つの参照画像を使用して人物をカスタマイズするためのものです。
{ "instances": [ { "prompt": "Create an image about a man with short hair [1] in the pose of control image [2] to match the description: A pencil style sketch of a full-body portrait of a man with short hair [1] with hatch-cross drawing, hatch drawing of portrait with 6B and graphite pencils, white background, pencil drawing, high quality, pencil stroke, looking at camera, natural human eyes", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_CONTROL", "referenceId": 2, "referenceImage": { "bytesBase64Encoded": "${IMAGE_BYTES_1}" }, "controlImageConfig": { "controlType": "CONTROL_TYPE_FACE_MESH", "enableControlImageComputation": true } }, { "referenceType": "REFERENCE_TYPE_SUBJECT", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "${IMAGE_BYTES_2}" }, "subjectImageConfig": { "subjectDescription": "a man with short hair", "subjectType": "SUBJECT_TYPE_PERSON" } }, { "referenceType": "REFERENCE_TYPE_SUBJECT", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "${IMAGE_BYTES_3}" }, "subjectImageConfig": { "subjectDescription": "a man with short hair", "subjectType": "SUBJECT_TYPE_PERSON" } }, { "referenceType": "REFERENCE_TYPE_SUBJECT", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "${IMAGE_BYTES_4}" }, "subjectImageConfig": { "subjectDescription": "a man with short hair", "subjectType": "SUBJECT_TYPE_PERSON" } } ] } ], "parameters": { "negativePrompt": "wrinkles, noise, Low quality, dirty, low res, multi face, rough texture, messy, messy background, color background, photo realistic, photo, super realistic, signature, autograph, sign, text, characters, alphabet, letter", "seed": 1, "language": "en", "sampleCount": 4 } }
パラメータ リスト
実装の詳細については、例をご覧ください。
画像をカスタマイズする
REST
パラメータ | |
---|---|
referenceType |
必須の列挙:
|
referenceId |
必須 integer 参照 ID。この参照 ID をプロンプトで使用します。たとえば、 [1] を使用して参照 ID 1 の参照画像を参照し、[2] を使用して参照 ID 2 の参照画像を参照します。 |
referenceImage.bytesBase64Encoded |
必須 string エンコードされた参照画像の Base64 文字列。 |
maskImageConfig.maskMode |
省略可能な列挙:
referenceType が REFERENCE_TYPE_MASK として設定されている場合に指定します。
|
maskImageConfig.dilation |
省略可能な float 。範囲: [0, 1]このマスクを拡大する画像幅の割合。 referenceType が REFERENCE_TYPE_MASK として設定されている場合に指定します。
|
maskImageConfig.maskClasses |
省略可能な list[Integer] 。MASK_MODE_SEMANTIC モードのクラスをマスクします。referenceType が REFERENCE_TYPE_MASK として設定されている場合に指定します。
|
controlImageConfig.controlType |
必須の列挙:
referenceType が REFERENCE_TYPE_CONTROL として設定されている場合に指定します。
|
controlImageConfig.enableControlImageComputation |
省略可能な bool 。デフォルト: false
referenceType が REFERENCE_TYPE_CONTROL として設定されている場合に指定します。
|
language |
省略可: テキスト プロンプト言語に対応する言語コード。次の値を使用できます。
en : 英語(省略した場合はデフォルト値) |
subjectImageConfig.subjectDescription |
必須の string 。画像内の被写体の簡単な説明。たとえば、茶色のショートヘアの女性などです。 referenceType が REFERENCE_TYPE_SUBJECT として設定されている場合に指定します。
|
subjectImageConfig.subjectType |
必須の列挙:
referenceType が REFERENCE_TYPE_SUBJECT として設定されている場合に指定します。
|
styleImageConfig.styleDescription |
省略可能な string 。スタイルの簡単な説明。 referenceType が REFERENCE_TYPE_STYLE として設定されている場合に指定します。
|
レスポンス
REST リクエストからのレスポンス本文。
パラメータ | |
---|---|
predictions |
|
ビジョン生成モデルの結果オブジェクト
モデルの結果に関する情報。
パラメータ | |
---|---|
bytesBase64Encoded |
生成され base64 でエンコードされた画像。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 |
mimeType |
生成された画像のタイプ。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 |
例
次の例は、Imagen モデルを使用して画像をカスタマイズする方法を示しています。
画像をカスタマイズする
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- LOCATION: プロジェクトのリージョン。たとえば、
us-central1
、europe-west2
、asia-northeast3
です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーションをご覧ください。 - TEXT_PROMPT: 生成する画像をモデルに指示するテキスト プロンプト。Imagen 3 カスタマイズを使用するには、指定する参照画像の
referenceId
を [$referenceId] 形式で配置します。例:- 次のテキスト プロンプトは、
"referenceId": 1
を持つ 2 つの参照画像を含むリクエスト用です。どちらの画像にも、"subjectDescription": "man with short hair"
の説明がオプションとして含まれています。次の説明に沿って、短髪の男性の画像を生成してください。「ハッチクロス描画、6B とグラファイト ペンによるポートレートのハッチ描画、白い背景、鉛筆画、高品質、鉛筆のストローク、カメラを見つめる、自然な人間の目を持つ man with short hair [1] の全身ポートレートの鉛筆画スタイルのスケッチ。」
- 次のテキスト プロンプトは、
"referenceId"
: 参照画像の ID、あるいは同じ被写体またはスタイルに対応する一連の参照画像の ID。この例では、2 つの参照画像は同じ人物でのものであるため、同じreferenceId
(1
)を共有しています。- BASE64_REFERENCE_IMAGE: 画像生成のガイドとなる参照画像。画像は base64 でエンコードされたバイト文字列として指定する必要があります。
- SUBJECT_DESCRIPTION: 省略可。
prompt
フィールドで使用できる参照画像のテキストによる説明。次に例を示します。"prompt": "a full-body portrait of a man with short hair [1] with hatch-cross drawing", [...], "subjectDescription": "man with short hair"
- IMAGE_COUNT: 生成される画像の数。 指定できるのは整数値(1~4)です。デフォルト値: 4。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
リクエストの本文(JSON):
{ "instances": [ { "prompt": "TEXT_PROMPT", "referenceImages": [ { "referenceType": "REFERENCE_TYPE_SUBJECT", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE" }, "subjectImageConfig": { "subjectDescription": "SUBJECT_DESCRIPTION", "subjectType": "SUBJECT_TYPE_PERSON" } }, { "referenceType": "REFERENCE_TYPE_SUBJECT", "referenceId": 1, "referenceImage": { "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE" }, "subjectImageConfig": { "subjectDescription": "SUBJECT_DESCRIPTION", "subjectType": "SUBJECT_TYPE_PERSON" } } ] } ], "parameters": { "sampleCount": IMAGE_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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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_ ) |
オブジェクト |
---|---|
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 | ブラインド |
次のステップ
- 詳細については、Vertex AI の Imagen をご覧ください。