API Virtual Try-On

Com o simulador virtual, você pode gerar imagens de pessoas usando produtos de vestuário. Você fornece uma imagem de uma pessoa e um exemplo de produto de vestuário e usa o provador virtual para gerar imagens da pessoa usando o produto.

Versões de modelo compatíveis

O provador virtual é compatível com os seguintes modelos:

  • virtual-try-on-preview-08-04

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": [
    {
      "personImage": {
        "image": {
          // Union field can be only one of the following:
          "bytesBase64Encoded": string,
          "gcsUri": string,
        }
      },
      "productImages": [
        {
          "image": {
            // Union field can be only one of the following:
            "bytesBase64Encoded": string,
            "gcsUri": string,
          }
        }
      ]
    }
  ],
  "parameters": {
    "addWatermark": boolean,
    "baseSteps": integer,
    "personGeneration": string,
    "safetySetting": string,
    "sampleCount": integer,
    "seed": integer,
    "storageUri": string,
    "outputOptions": {
      "mimeType": string,
      "compressionQuality": integer
    }
  }
}'
Instâncias

personImage

string

Obrigatório. Uma imagem de uma pessoa para testar o produto de vestuário, que pode ser uma das seguintes opções:

  • Uma string bytesBase64Encoded que codifica uma imagem.
  • Um URI de string gcsUri para um local de bucket do Cloud Storage.

productImages

string

Obrigatório. Uma imagem de um produto para provar em uma pessoa, que pode ser qualquer uma das seguintes opções:

  • Uma string bytesBase64Encoded que codifica uma imagem.
  • Um URI de string gcsUri para um local de bucket do Cloud Storage.
Parâmetros
addWatermark

bool

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

O valor padrão é true.

baseSteps

int

Obrigatório. Um número inteiro que controla a geração de imagens. Quanto mais etapas, maior a qualidade, mas também a latência.

Valores inteiros maiores que 0. O padrão é 32.

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

Obrigatório. O número de imagens a serem geradas.

Um número inteiro entre 1 e 4, inclusive. 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.

storageUri

string

Opcional. Um URI de string para um local de bucket do Cloud Storage onde armazenar as imagens geradas.

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": salvar como 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 de 0 a 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 .
  • BASE64_PERSON_IMAGE: a imagem codificada em Base64 da pessoa.
  • BASE64_PRODUCT_IMAGE: a imagem do produto codificada em Base64.
  • IMAGE_COUNT: o número de imagens a serem geradas. O intervalo aceito de valores é de 1 a 4.
  • GCS_OUTPUT_PATH: o caminho do Cloud Storage para armazenar a saída do teste virtual.

Método HTTP e URL:

POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/virtual-try-on-preview-08-04:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "personImage": {
        "image": {
          "bytesBase64Encoded": "BASE64_PERSON_IMAGE"
        }
      },
      "productImages": [
        {
          "image": {
            "bytesBase64Encoded": "BASE64_PRODUCT_IMAGE"
          }
        }
      ]
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "storageUri": "GCS_OUTPUT_PATH"
  }
}

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/virtual-try-on-preview-08-04: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/virtual-try-on-preview-08-04: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"
    }
  ]
}