API Imagen Product Recontext

Com o recurso de recontextualização de produtos da API Imagen na Vertex AI, é possível editar imagens de produtos em diferentes cenas ou planos de fundo. Você fornece uma imagem de um produto e um comando, e o produto Imagen recontext gera imagens do seu produto em novas cenas ou com planos de fundo diferentes.

Para solicitar acesso à recontextualização de produtos do Imagen, preencha o formulário Solicitação de acesso à mídia generativa para marketing da Vertex AI.

Versões de modelo compatíveis

O recontexto de produtos da Imagen é compatível com os seguintes modelos:

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

Para mais informações sobre os recursos compatíveis com o modelo, consulte Modelos do Imagen.

Solicitação 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
    }
  }
}'

Instâncias

Instâncias
prompt

string

Opcional. Um comando de texto para orientar a geração de cenas.

productImages

list[productImages]

Uma lista de até três ProductImages diferentes do mesmo produto. O modelo usa as imagens para recontextualizar o produto em diferentes cenas ou planos de fundo.

Objeto productImages

O objeto productImages descreve os recursos de imagem a serem colocados em diferentes cenas ou planos de fundo.

productImages

Campo de união image.

Imagem do produto imagen-product-recontext-preview-06-30 como entrada para diferentes visualizações do produto. Cada imagem pode ser uma string bytesBase64Encoded que codifica uma imagem ou um URI de string gcsUri para um local de bucket do Cloud Storage.

bytesBase64Encoded

string

Uma string de bytes codificada em base64 de uma imagem ou um arquivo de vídeo.

gcsUri

string

Um URI de string para um local de bucket do Cloud Storage.

Parâmetros

Parâmetros
addWatermark

boolean

Opcional. Adicione uma marca-d'água invisível às imagens geradas.

O valor padrão é true.

enhancePrompt

boolean

Opcional. Um parâmetro opcional para usar um recurso de alteração de comando com base em LLM para gerar imagens de melhor qualidade que reflitam melhor a intenção do comando original. Desativar esse recurso pode afetar a qualidade da imagem e a adesão ao comando.

O valor padrão é true.

personGeneration

string

Opcional. Permite a geração de imagens de pessoas pelo modelo. Os valores a seguir são compatíveis:

  • "dont_allow": desativa a inclusão de pessoas ou rostos em imagens.
  • "allow_adult": permite a geração somente de adultos.
  • "allow_all": permite a geração de pessoas de todas as idades.

O valor padrão é "allow_adult".

safetySetting

string

Opcional. Adiciona um nível de filtro à filtragem de segurança. Os valores a seguir são compatíveis:

  • "block_low_and_above": nível de filtragem mais forte, bloqueio mais rigoroso. Valor descontinuado: "block_most".
  • "block_medium_and_above": bloqueia alguns comandos e respostas problemáticos. Valor descontinuado: "block_some".
  • "block_only_high": reduz o número de solicitações bloqueadas devido aos filtros de segurança. Pode aumentar o conteúdo censurável gerado pelo Imagen. Valor descontinuado: "block_few".
  • "block_none": bloqueia poucos comandos e respostas problemáticos. O acesso a este recurso é restrito. Valor do campo anterior: "block_fewest".

O valor padrão é "block_medium_and_above".

sampleCount

int

O número de imagens a serem geradas.

Um valor inteiro no intervalo de 1 a 4. O valor padrão é 1.

seed

Uint32

Opcional. A semente aleatória para geração de imagens. Essa opção não está disponível quando addWatermark está definido como true.

Se enhancePrompt estiver definido como true, o parâmetro seed não vai funcionar, porque enhancePrompt gera um novo comando, o que resulta em uma imagem nova ou diferente.

storageUri

string

Opcional. Um URI de string para um local de bucket do Cloud Storage usado para armazenar as imagens geradas. Se um bucket do Cloud Storage não for fornecido, os bytes de imagem codificados em base64 serão retornados na resposta.

outputOptions

outputOptions

Opcional. Descreve o formato da imagem de saída em um objeto outputOptions.

Objeto de opções de saída

O objeto outputOptions descreve a saída da imagem.

Parâmetros
outputOptions.mimeType

Opcional: string

O formato de saída da imagem. Os valores a seguir são compatíveis:

  • "image/png": salvar como imagem PNG.
  • "image/jpeg": salve como uma imagem JPEG.

O valor padrão é "image/png".

outputOptions.compressionQuality

Opcional: int

O nível de compactação se o tipo de saída for "image/jpeg". Os valores aceitos são 0- 100. O valor padrão é 75.

Exemplo de solicitação

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • REGION: a região em que o projeto está localizado. Para mais informações sobre as regiões com suporte, consulte Locais da IA generativa na Vertex AI.
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • TEXT_PROMPT: opcional. Um comando de texto para orientar as imagens geradas pelo modelo.
  • BASE64_SUBJECT_IMAGE: uma imagem do assunto codificada em base64.
  • PERSON_SETTING: Opcional: um valor de string que controla o tipo de pessoa ou geração de rostos permitida pelo modelo. É possível usar os seguintes valores para personGeneration:
    • "allow_adult": permite a geração somente de adultos, exceto para celebridades. A geração de celebridades não é permitida em nenhuma configuração. Esta é a configuração padrão.
    • "allow_all": permite a geração de pessoas de todas as idades, exceto para celebridades. A geração de celebridades não é permitida em nenhuma configuração.
    • "dont_allow": não permite a geração de pessoas ou rostos na saída gerada.
  • SAFETY_SETTING: Opcional: um valor de string que controla o limite do filtro de segurança para imagens geradas. Você pode usar os seguintes valores para selecionar sua configuração de segurança:
    • "block_low_and_above": o limite de segurança mais rigoroso. "block_low_and_above" filtra o maior número de imagens geradas.
    • "block_medium_and_above": o limite de segurança médio, que equilibra a filtragem de conteúdo potencialmente nocivo e seguro. "block_medium_and_above" é a configuração de segurança padrão.
    • "block_only_high": o limite de segurança mais baixo, que reduz o número de solicitações bloqueadas devido ao filtro de segurança. Usar o limite de segurança "block_only_high" pode aumentar o número de imagens censuráveis geradas pelo modelo.
  • WATERMARK_SETTING: Opcional: um booleano. Quando esse valor é definido como true, o modelo adiciona uma marca-d'água digital que pode ser usada para verificar a imagem gerada. O valor padrão é true.
  • IMAGE_COUNT: o número de imagens a serem geradas. O intervalo de valores aceito é 1-4.
  • PROMPT_SETTING: Opcional: um booleano. Quando esse valor é definido como true, o modelo usa prmopts aprimorados. O valor padrão é true.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "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
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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
A solicitação retorna objetos de imagem. Neste exemplo, dois objetos de imagem são retornados, com dois objetos de previsão como imagens codificadas em base64.
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    },
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    }
  ]
}