Imagen Product Recontext API

借助 Imagen Product Recontext on Vertex AI API,您可以将商品图片修改为不同的场景或背景。您提供产品图片和提示,Imagen Product Recontext 会生成产品在新场景中或采用不同背景的图片。

如需申请访问 Imagen Product Recontext,请填写 Vertex AI - 适用于市场营销的生成式媒体访问申请表单。

支持的模型版本

Imagen Product Recontext 支持以下模型:

  • 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

联合字段 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

可选。一个字符串 URI,指向用于存储生成的图片的 Cloud Storage 存储桶位置。如果未提供 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,模型将使用增强型提示。默认值为 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"
    }
  ]
}