Imagen Product Recontext API

借助 Vertex AI API 中的 Imagen 商品重新情境化功能,您可以将商品图片修改为不同的场景或背景。您提供产品图片和提示,Imagen 产品重构功能会生成产品在新场景中或采用不同背景的图片。

如需申请访问 Imagen 产品重新情境化功能,请填写 Vertex AI - Generative Media for Marketing Access Request 表单。

支持的模型版本

Imagen 产品重新情境化功能支持以下模型:

  • imagen-product-recontext-preview-06-30

如需详细了解该模型支持的功能,请参阅 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/MODEL_ID:predict \

-d '{
  "instances": [
    {
      "prompt": string,
      "productImages": [
        // The following fields can be repeated up to 3 times for different
        // views of the same product.
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
            // End of list of possible types for union field.
          },
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "enhancePrompt": boolean
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'

实例

实例
prompt

string

可选。用于指导场景生成的文本提示。

productImages

list[productImages]

最多包含 3 个不同 ProductImages 的列表,这些 ProductImages 对应于同一商品的不同视图。该模型会使用这些图片将产品重新置于不同的场景或背景中。

productImages 对象

productImages 对象描述了要放置到不同场景或背景中的图片素材资源。

productImages

联合字段 image

imagen-product-recontext-preview-06-30 的商品图片 作为输入,用于展示商品的不同视图。每张图片可以是bytesBase64Encoded字符串(用于对图片进行编码),也可以是gcsUri字符串 URI(指向 Cloud Storage 存储桶位置)。

bytesBase64Encoded

string

图片或视频文件的字节 base64 编码字符串。

gcsUri

string

指向 Cloud Storage 存储桶位置的字符串 URI。

参数

参数
addWatermark

boolean

可选。向生成的图片添加不可见水印。

默认值为 true

enhancePrompt

boolean

可选。一个可选参数,用于使用基于 LLM 的重写提示功能,以提供更高质量的图片,从而更好地反映原始提示的意图。停用此功能可能会影响图片质量和提示遵循度。

默认值为 true

personGeneration

string

可选。允许模型生成人物。支持以下值:

  • "dont_allow":禁止在图片中包含人物或人脸。
  • "allow_adult":仅允许生成成人。
  • "allow_all":允许生成任何年龄的人。

默认值为 "allow_adult"

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"

sampleCount

int

要生成的图片数量。

一个介于 1-4 之间的整数值。默认值为 1

seed

Uint32

可选。用于生成图片的随机种子。当 addWatermark 设置为 true 时,此参数不可用。

如果 enhancePrompt 设置为 true,则 seed 参数将不起作用,因为 enhancePrompt 会生成新的提示,从而生成新的或不同的图片。

storageUri

string

可选。用于存储生成的图片的 Cloud Storage 存储桶位置的字符串 URI。如果未提供 Cloud Storage 存储桶,则回答中会返回 base64 编码的图片字节。

outputOptions

outputOptions

可选。在 outputOptions 对象中描述输出图片格式。

输出选项对象

outputOptions 对象描述图片输出。

参数
outputOptions.mimeType

可选:string

图片输出格式。支持以下值:

  • "image/png":另存为 PNG 图片。
  • "image/jpeg":另存为 JPEG 图片。

默认值为 "image/png"

outputOptions.compressionQuality

可选:int

如果输出类型为 "image/jpeg",则为压缩级别。接受的值包括 0-100。默认值为 75

示例请求

REST

在使用任何请求数据之前,请先进行以下替换:

  • REGION:项目所在的区域。如需详细了解支持的区域,请参阅 Vertex AI 上的生成式 AI 位置
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • TEXT_PROMPT:可选。用于引导模型生成图片的文本提示。
  • BASE64_SUBJECT_IMAGE:以 base64 编码的正文图片。
  • PERSON_SETTING: 可选:一个字符串值,用于控制模型允许生成的人物或人脸类型。您可以为 personGeneration 使用以下值:
    • "allow_adult":仅允许生成成人(名人除外)。不允许针对任何设置生成名人。这是默认设置。
    • "allow_all":允许生成所有年龄的人(名人除外)。不允许针对任何设置生成名人。
    • "dont_allow":不允许在生成的输出内容中生成人物或人脸。
  • SAFETY_SETTING: 可选:一个字符串值,用于控制生成图片的安全过滤阈值。您可以使用以下值来选择安全设置:
    • "block_low_and_above":最严格的安全阈值。 "block_low_and_above" 过滤的生成图片数量最多。
    • "block_medium_and_above":中等安全阈值,用于平衡潜在有害内容和安全内容的过滤。"block_medium_and_above" 是默认安全设置。
    • "block_only_high":最低安全阈值,可减少因安全过滤器而被屏蔽的请求数量。使用 "block_only_high" 安全阈值可能会增加模型生成的不良图片数量。
  • WATERMARK_SETTING: 可选:布尔值。如果此值设置为 true,模型会添加数字水印,您可以使用该水印来验证生成的图片。默认值为 true
  • IMAGE_COUNT:要生成的图片数量。接受的值范围为 1-4
  • PROMPT_SETTING: 可选:布尔值。如果此值设置为 true,模型将使用增强型 prmopts。默认值为 true

HTTP 方法和网址:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-product-recontext-preview-06-30:predict

请求 JSON 正文:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_SUBJECT_IMAGE"
          },
        }
      ]
    }
  ],
  "parameters": {
    "personGeneration": PERSON_SETTING,
    "safetySetting": SAFETY_SETTING,
    "addWatermark": WATERMARK_SETTING,
    "sampleCount": IMAGE_COUNT,
    "enhancePrompt": PROMPT_SETTING
  }
}

如需发送请求,请选择以下方式之一:

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-product-recontext-preview-06-30: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-product-recontext-preview-06-30:predict" | Select-Object -Expand Content
请求返回图片对象。在此示例中,系统会返回两个图片对象,其中包含两个预测对象(以 base64 编码的图片形式)。
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}