Imagen API を使用すると、テキスト プロンプトを使用して生成をガイドし、高品質の画像を数秒で作成できます。Imagen API を使用して画像をアップスケールすることもできます。
サポートされているモデル
モデル | コード |
---|---|
画像生成 | imagen-3.0-generate-001 imagen-3.0-fast-generate-001 imagegeneration@006 imagegeneration@005 imagegeneration@002 |
各モデルでサポートされている機能の詳細については、モデルのバージョニングをご覧ください。
構文の例
テキスト プロンプトから画像を作成するための構文。
構文
画像を生成するための構文。
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/${MODEL_VERSION}:predict \ -d '{ "instances": [ { "prompt": "..." } ], "parameters": { "sampleCount": ... } }'
Python
generation_model = ImageGenerationModel.from_pretrained("imagen-3.0-generate-001") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
パラメータ リスト
実装の詳細については、例をご覧ください。
画像を生成する
REST
パラメータ | |
---|---|
prompt |
必須: 画像のテキスト プロンプト。
|
sampleCount |
必須: 生成する画像の数。デフォルト値は 4 です。
|
seed |
省略可: 画像生成用の乱数シード。 |
negativePrompt |
省略可: 生成される画像に含まれないようにする内容の説明。
|
aspectRatio |
省略可: 画像のアスペクト比。デフォルト値は「1:1」です。
|
outputOptions |
省略可:
|
sampleImageStyle |
省略可: 生成される画像のスタイルを記述します。次の値を使用できます。
|
personGeneration |
省略可: モデルによって人物の画像が生成されるようにします。次の値を使用できます。
デフォルト値は |
safetySetting |
省略可: 安全フィルタリングにフィルタレベルを追加します。次の値を使用できます。
デフォルト値は |
addWatermark |
省略可: 生成された画像に目に見えない透かしを追加します。デフォルト値は、 |
storageUri |
省略可: 生成された画像を保存する Cloud Storage URI。 |
出力オプション オブジェクト
outputOptions
オブジェクトは画像出力を記述します。
パラメータ | |
---|---|
outputOptions.mimeType |
省略可: 出力を保存する際の画像形式。次の値を使用できます。
デフォルト値は |
outputOptions.compressionQuality |
省略可: 出力タイプが |
レスポンス
REST リクエストからのレスポンス本文。
パラメータ | |
---|---|
predictions |
|
ビジョン生成モデルの結果オブジェクト
モデルの結果に関する情報。
パラメータ | |
---|---|
bytesBase64Encoded |
生成され base64 でエンコードされた画像。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 |
mimeType |
生成された画像のタイプ。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 |
raiFilteredReason |
責任ある AI フィルタの理由。 |
safetyAttributes.categories |
安全性属性の名前。 |
safetyAttributes.scores |
安全性属性スコア。 |
Python
パラメータ | |
---|---|
prompt |
必須: 画像のテキスト プロンプト。
|
number_of_images |
必須: 生成する画像の数。デフォルト値は 1 です。
|
seed |
省略可: 画像生成用の乱数シード。 |
negative_prompt |
省略可: 生成される画像に含まれないようにする内容の説明。
|
aspect_ratio |
省略可: 画像のアスペクト比。デフォルト値は「1:1」です。
|
output_mime_type |
省略可: 出力を保存する際の画像形式。次の値を使用できます。
デフォルト値は |
compression_quality |
省略可: 出力の MIME タイプが |
language |
省略可: 画像のテキスト プロンプトの言語。次の値を使用できます。
デフォルト値は |
output_gcs_uri |
省略可: 生成された画像を保存する Cloud Storage URI。 |
add_watermark |
省略可: 生成された画像に透かしを追加します。デフォルト値は、 |
safety_filter_level |
省略可: 安全フィルタリングにフィルタレベルを追加します。次の値を使用できます。
デフォルト値は |
person_generation |
省略可: モデルによって人物の画像が生成されるようにします。次の値を使用できます。
デフォルト値は |
画像をアップスケール
REST
パラメータ | |
---|---|
mode |
必須: アップスケーリング リクエストの場合は |
upscaleConfig |
必須: |
outputOptions |
省略可:
|
storageUri |
省略可: 生成された画像を保存する Cloud Storage URI。 |
構成オブジェクトをアップスケーリングする
パラメータ | |
---|---|
upscaleConfig.upscaleFactor |
必須: アップスケール係数。サポートされている値は、 |
レスポンス
REST リクエストからのレスポンス本文。
パラメータ | |
---|---|
predictions |
|
例
次の例は、Imagen モデルを使用して画像を生成する方法を示しています。
画像を生成
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクト ID。
- MODEL_VERSION: 使用する
imagegeneration
モデル バージョン。使用可能な値:- Imagen 3:
imagen-3.0-generate-001
imagen-3.0-fast-generate-001
- 低レイテンシ モデルのバージョン。
-
デフォルトのモデル バージョン:
imagegeneration
- デフォルトのモデル バージョン v.006 を使用します。特に本番環境では、モデル バージョンを常に指定することをおすすめします。
モデルのバージョンと機能の詳細については、モデルのバージョンをご覧ください。
- Imagen 3:
- LOCATION: プロジェクトのリージョン。 たとえば、
us-central1
、europe-west2
、またはasia-northeast3
です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーション をご覧ください。 - TEXT_PROMPT: 生成する画像をモデルに指示するテキスト プロンプト。生成と編集のどちらでも必須フィールドです。
- IMAGE_COUNT: 生成される画像の数。指定できる整数値: 1~8(v.002)、1~4(他のすべてのモデル バージョン)。デフォルト値: 4。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict
リクエストの本文(JSON):
{ "instances": [ { "prompt": "TEXT_PROMPT" } ], "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/MODEL_VERSION: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/MODEL_VERSION:predict" | Select-Object -Expand Content
"sampleCount": 2
を含むリクエストに対するものです。レスポンスは、生成された画像のバイトを base64 でエンコードした 2 つの予測オブジェクトを返します。{ "predictions": [ { "bytesBase64Encoded": "BASE64_IMG_BYTES", "mimeType": "image/png" }, { "mimeType": "image/png", "bytesBase64Encoded": "BASE64_IMG_BYTES" } ] }
Python
このサンプルを試す前に、Vertex AI クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。詳細については、Vertex AI Python API のリファレンス ドキュメントをご覧ください。
Vertex AI に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
このサンプルでは、ImageGenerationModel
(@006
バージョン)に対して generate_images
メソッドを呼び出し、生成された画像をローカルに保存します。その後、必要ならノートブックで show()
メソッドを使用して、生成された画像を表示できます。モデルのバージョンと機能の詳細については、モデルのバージョンをご覧ください。
画像をアップスケール
REST
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: プロジェクトのリージョン。 たとえば、
us-central1
、europe-west2
、またはasia-northeast3
です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーション をご覧ください。 - PROJECT_ID: Google Cloud プロジェクト ID。
- B64_BASE_IMAGE: 編集またはアップスケールするベース画像。画像は base64 でエンコードされたバイト文字列として指定する必要があります。サイズ制限: 10 MB。
- IMAGE_SOURCE: 編集またはアップスケールする画像の Cloud Storage ロケーション。例:
gs://output-bucket/source-photos/photo.png
- UPSCALE_FACTOR: 省略可。画像をアップスケールする係数。指定しない場合、アップスケール係数は入力画像の長辺と
sampleImageSize
から決定されます。使用可能な値:x2
またはx4
。
HTTP メソッドと URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict
リクエストの本文(JSON):
{ "instances": [ { "prompt": "", "image": { // use one of the following to specify the image to upscale "bytesBase64Encoded": "B64_BASE_IMAGE" "gcsUri": "IMAGE_SOURCE" // end of base image input options }, } ], "parameters": { "sampleCount": 1, "mode": "upscale", "upscaleConfig": { "upscaleFactor": "UPSCALE_FACTOR" } } }
リクエストを送信するには、次のいずれかのオプションを選択します。
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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{ "predictions": [ { "mimeType": "image/png", "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII=" } ] }
次のステップ
- 詳細については、Vertex AI の Imagen をご覧ください。