Imagen API 可讓你使用文字提示引導生成作業,在幾秒內生成高品質圖片。您也可以使用 Imagen API 提高圖片畫質。
查看 Imagen for Generation 模型資訊卡
支援的機型
Imagen API 支援下列模型:
imagen-4.0-generate-001imagen-4.0-fast-generate-001imagen-4.0-ultra-generate-001imagen-3.0-generate-002imagen-3.0-generate-001imagen-3.0-fast-generate-001imagen-3.0-capability-001imagegeneration@006imagegeneration@005imagegeneration@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 各有一個。如果圖片遭到負責任的 AI 篩除,就不會納入其中,除非 includeRaiReason 設為 true。 | 
Vision 生成模型結果物件
模型結果的相關資訊。
| 參數 | |
|---|---|
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 各有一個。如果圖片遭到負責任的 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。只有在將這個欄位設為false時,才能使用seed欄位取得確定性輸出內容。 - 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/jpegimage/gifimage/pngimage/webpimage/bmpimage/tiffimage/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 bucket。如果未提供,回應中會傳回 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 方法和網址:
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 編碼產生的圖片位元組。
{ "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
在試用這個範例之前,請先按照Python使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 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 方法和網址:
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 總覽和使用文字提示生成圖像。