Imagen API を使用すると、テキスト プロンプトを使用して生成をガイドし、高品質の画像を数秒で生成できます。Imagen API を使用して画像をアップスケールすることもできます。
サポートされているモデル
Imagen API は、次のモデルをサポートしています。
- imagen-4.0-generate-001
- imagen-4.0-fast-generate-001
- imagen-4.0-ultra-generate-001
- imagen-3.0-generate-002
- imagen-3.0-generate-001
- imagen-3.0-fast-generate-001
- imagen-3.0-capability-001
- imagegeneration@006
- imagegeneration@005
- imagegeneration@002
各モデルでサポートされている機能の詳細については、Imagen モデルをご覧ください。
構文の例
テキスト プロンプトから画像を作成するための構文。
構文
画像を生成するための構文。
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("MODEL_VERSION") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
画像を生成する
REST
| パラメータ | |
|---|---|
| prompt | 
 必須。画像のテキスト プロンプト。 | 
| addWatermark | 
 省略可。生成された画像に目に見えない透かしを追加します。 
      デフォルト値は  
 | 
| aspectRatio | 
 省略可。生成された出力画像のアスペクト比。デフォルト値は「1:1」です。このパラメータは、アップスケールされた出力には適用されません。 | 
| enhancePrompt |   省略可。LLM ベースのプロンプト書き換え機能を使用して、元のプロンプトの意図をより反映した高品質の画像を生成するためのオプション パラメータ。この機能を無効にすると、画像の品質やプロンプトへの準拠に影響する可能性があります。 | 
| language | 
 省略可。テキスト プロンプト言語に対応する言語コード。次の値を使用できます。 
 | 
| negativePrompt | 
 省略可。生成される画像に含まれないようにする内容の説明。 
       | 
| outputOptions | 
 
      省略可。 | 
| personGeneration | 
 省略可。モデルによって人物の画像が生成されるようにします。次の値を使用できます。 
 デフォルト値は  | 
| safetySetting | 
 省略可。安全フィルタリングにフィルタレベルを追加します。次の値を使用できます。 
 デフォルト値は  | 
| sampleCount | 
 必須。生成する画像の数。デフォルト値は 4 です。 | 
| sampleImageSize | 
 
      省略可。生成された画像の出力解像度を指定します。指定できる値は  | 
| seed | 
 
      省略可。画像生成用の乱数シード。 
 | 
| storageUri | 省略可:  生成された画像を保存する Cloud Storage URI。 | 
出力オプション オブジェクト
outputOptions オブジェクトは画像出力を記述します。
| パラメータ | |
|---|---|
| outputOptions.mimeType | 省略可:  出力を保存する際の画像形式。次の値を使用できます。 
 デフォルト値は  | 
| outputOptions.compressionQuality | 省略可:  出力タイプが  | 
レスポンス
REST リクエストからのレスポンス本文。
| パラメータ | |
|---|---|
| predictions | VisionGenerativeModelResultオブジェクトの配列。リクエストされたsampleCountごとに 1 つ存在します。画像が責任ある AI によってフィルタされた場合は、includeRaiReasonがtrueに設定されていない限り、対象の画像は含まれません。 | 
ビジョン生成モデルの結果オブジェクト
モデルの結果に関する情報。
| パラメータ | |
|---|---|
| bytesBase64Encoded | 生成され base64 でエンコードされた画像。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 | 
| mimeType | 生成された画像のタイプ。出力画像が責任ある AI フィルタを通過しなかった場合は存在しません。 | 
| raiFilteredReason | 責任ある AI フィルタの理由。 | 
| safetyAttributes.categories | 安全性属性の名前。 | 
| safetyAttributes.scores | 安全性属性スコア。 | 
Python
| パラメータ | |
|---|---|
| prompt | 
 必須。画像のテキスト プロンプト。 | 
| add_watermark | 
 省略可。生成された画像に透かしを追加します。 
      デフォルト値は  
 | 
| aspect_ratio | 
 省略可。生成された出力画像のアスペクト比。デフォルト値は 1:1 です。このパラメータは、アップスケールされた出力には適用されません。 | 
| compression_quality | 
 
      省略可。出力の MIME タイプが  | 
| language | 
 省略可。画像のテキスト プロンプトの言語。次の値を使用できます。 
 デフォルト値は  | 
| negative_prompt | 
 省略可。生成される画像に含まれないようにする内容の説明。 
       | 
| number_of_images | 
 必須。生成する画像の数。デフォルト値は 1 です。 | 
| output_gcs_uri | 
 省略可。生成された画像を保存する Cloud Storage URI。 | 
| output_mime_type | 
 省略可。出力を保存する際の画像形式。次の値を使用できます。 
 デフォルト値は  | 
| person_generation | 
 省略可。モデルによって人物の画像が生成されるようにします。次の値を使用できます。 
 デフォルト値は  | 
| safety_filter_level | 
 省略可。安全フィルタリングにフィルタレベルを追加します。次の値を使用できます。 
 デフォルト値は  | 
| sample_image_size | 
 
      省略可。生成された画像の出力解像度を指定します。指定できる値は  | 
| seed | 
 
      省略可。画像生成用の乱数シード。 
 | 
画像をアップスケールする
REST
| パラメータ | |
|---|---|
| mode | 
 
      必須。アップスケーリング リクエストの場合は  | 
| upscaleConfig | 
 | 
| outputOptions | 
 
      省略可。 | 
| storageUri | 
 省略可。生成された画像を保存する Cloud Storage URI。 | 
構成オブジェクトをアップスケールする
| パラメータ | |
|---|---|
| upscaleConfig.upscaleFactor | 
 
      必須。アップスケール係数。サポートされている値は  | 
レスポンス
REST リクエストからのレスポンス本文。
| パラメータ | |
|---|---|
| predictions | VisionGenerativeModelResultオブジェクトの配列。リクエストされたsampleCountごとに 1 つ存在します。画像が責任ある AI によってフィルタされた場合は、includeRaiReasonがtrueに設定されていない限り、対象の画像は含まれません。 | 
例
次の例は、Imagen モデルを使用して画像を生成する方法を示しています。
画像を生成
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- 
    MODEL_VERSION: 使用する Imagen モデルのバージョン。使用可能なモデルの詳細については、Imagen モデルをご覧ください。 
- LOCATION: プロジェクトのリージョン。たとえば、us-central1、europe-west2、asia-northeast3です。使用可能なリージョンの一覧については、Vertex AI の生成 AI のロケーションをご覧ください。
- TEXT_PROMPT: 生成する画像をモデルに指示するテキスト プロンプト。生成と編集のどちらでも必須フィールドです。
- IMAGE_COUNT: 生成される画像の数。指定できる整数値: 1~8(imagegeneration@002)、1~4(他のすべてのモデル バージョン)。デフォルト値: 4。
- ADD_WATERMARK: ブール値。省略可。生成された画像に透かしを有効にするかどうか。フィールドが trueに設定されているときに生成された画像には、透かし入り画像の検証に使用できるデジタル SynthID が含まれています。このフィールドを省略すると、デフォルト値のtrueが使用されます。この機能を無効にするには、値をfalseに設定する必要があります。seedフィールドを使用して確定的な出力を取得できるのは、このフィールドがfalseに設定されている場合のみです。
- ASPECT_RATIO: 文字列。省略可。アスペクト比を制御する生成モード パラメータ。サポートされている比の値と用途:
- 1:1(デフォルト、スクエア)
- 3:4(広告、ソーシャル メディア)
- 4:3(テレビ、写真)
- 16:9(横向き)
- 9:16(縦向き)
 
- ENABLE_PROMPT_REWRITING: ブール値。省略可。LLM ベースのプロンプト書き換え機能を使用して、元のプロンプトの意図をより反映した高品質の画像を生成するためのパラメータ。この機能を無効にすると、画像の品質やプロンプトへの準拠に影響する可能性があります。デフォルト値: true。
- 
  INCLUDE_RAI_REASON: ブール値。省略可。入力または出力がブロックされているレスポンスで、責任ある AI のフィルタが適用された理由コードを有効にするかどうか。デフォルト値: true。
- INCLUDE_SAFETY_ATTRIBUTES: ブール値。省略可。フィルタリングされていない入力と出力のレスポンスで、安全性属性のリストに対して丸められた責任ある AI スコアを有効にするかどうかを指定します。安全性属性のカテゴリ: "Death, Harm & Tragedy"、"Firearms & Weapons"、"Hate"、"Health"、"Illicit Drugs"、"Politics"、"Porn"、"Religion & Belief"、"Toxic"、"Violence"、"Vulgarity"、"War & Conflict"。デフォルト値:false。
- MIME_TYPE: 文字列。省略可。画像のコンテンツの MIME タイプ。使用可能な値:
- image/jpeg
- image/gif
- image/png
- image/webp
- image/bmp
- image/tiff
- image/vnd.microsoft.icon
 
- COMPRESSION_QUALITY: 整数。省略可。JPEG 出力ファイルにのみ適用されます。JPEG ファイル形式で生成された画像に対してモデルが保持する詳細レベル。値: 0~100。値が大きいほど圧縮率が高くなります。デフォルト:75。
- PERSON_SETTING: 文字列。省略可。モデルで許可される人物や顔の生成の種類を制御する安全性設定。使用可能な値:
- allow_adult(デフォルト): 有名人の生成を除き、成人のみの生成を許可します。どの設定でも、有名人の生成は許可されません。
- dont_allow: 生成された画像に人物や顔が含まれないようにします。
 
- SAFETY_SETTING: 文字列。省略可。生成される画像の安全フィルタのしきい値を制御する設定。使用可能な値:
- block_low_and_above: 最も高い安全性のしきい値。これにより、フィルタされる生成画像が最も多くなります。以前の値:- block_most。
- block_medium_and_above(デフォルト): 有害となる可能性のあるコンテンツと安全なコンテンツのフィルタをバランスよく行う中程度の安全性のしきい値です。以前の値:- block_some。
- block_only_high: 安全フィルタによってブロックされるリクエストの数を減らす安全性のしきい値。この設定により、Imagen によって生成される不適切なコンテンツが増加する可能性があります。以前の値:- block_few。
 
- SEED_NUMBER: 整数。省略可。出力画像を確定するために指定する非負整数。同じシード番号を指定すると、常に同じ出力画像が得られます。使用しているモデルが電子透かしをサポートしている場合、このフィールドを使用するには "addWatermark": falseを設定する必要があります。指定できる整数値:1~2147483647。
- OUTPUT_STORAGE_URI: 文字列。省略可。出力画像を保存する Cloud Storage バケット。指定しない場合、Base64 エンコードされた画像バイトがレスポンスで返されます。値のサンプル: gs://image-bucket/output/。
その他のオプション パラメータ
ユースケースに応じて、次のオプションの変数を使用します。"parameters": {} オブジェクトに次のパラメータの一部またはすべてを追加します。このリストは一般的なオプション パラメータを示しており、網羅的なものではありません。オプション パラメータの詳細については、Imagen API リファレンス: 画像を生成するをご覧ください。
"parameters": {
  "sampleCount": IMAGE_COUNT,
  "addWatermark": ADD_WATERMARK,
  "aspectRatio": "ASPECT_RATIO",
  "enhancePrompt": ENABLE_PROMPT_REWRITING,
  "includeRaiReason": INCLUDE_RAI_REASON,
  "includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
  "outputOptions": {
    "mimeType": "MIME_TYPE",
    "compressionQuality": COMPRESSION_QUALITY
  },
  "personGeneration": "PERSON_SETTING",
  "safetySetting": "SAFETY_SETTING",
  "seed": SEED_NUMBER,
  "storageUri": "OUTPUT_STORAGE_URI"
}
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" } ] }
プロンプトの機能強化をサポートするモデルを使用する場合、レスポンスには、生成に使用された強化されたプロンプトを含む追加の prompt フィールドが含まれます。
{
  "predictions": [
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_1",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_1"
    },
    {
      "mimeType": "MIME_TYPE",
      "prompt": "ENHANCED_PROMPT_2",
      "bytesBase64Encoded": "BASE64_IMG_BYTES_2"
    }
  ]
}
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 の概要とテキスト プロンプトを使用して画像を生成するをご覧ください。