Gerar imagens deterministas

Testar a geração de imagens (Vertex AI Studio)

Testar o Imagen em um Colab

Nesta página, descrevemos como usar um número de semente na Imagen na Vertex AI para gerar imagens deterministas.

Um número de semente é aquele que você adiciona a uma solicitação para tornar as imagens geradas não determinísticas determinísticas. Determinístico significa que, sempre que você gerar uma imagem com o Imagen, vai receber a mesma saída.

Por exemplo, é possível fornecer uma solicitação, definir o número de resultados como 1 e usar um número de sugestão para ter a mesma imagem sempre que usar os mesmos valores de entrada. Se você enviar a mesma solicitação com o número de resultados definido como 8, receberá as mesmas oito imagens.

Usar uma semente para gerar imagens

Faça o seguinte:

REST

O número original é um campo opcional no objeto parameters do corpo de uma solicitação JSON.

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

  • PROJECT_ID: o ID do projeto do Google Cloud .
  • MODEL_VERSION: a versão do modelo do Imagen a ser usada. Para mais informações sobre os modelos disponíveis, consulte Modelos do Imagen.

  • LOCATION: a região do seu projeto. Por exemplo, us-central1, europe-west2 ou asia-northeast3. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI.
  • TEXT_PROMPT: o comando de texto que orienta quais imagens o modelo gera. Este campo é obrigatório para geração e edição.
  • IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceitos: 1 a 8 (imagegeneration@002), 1 a 4 (todas as outras versões de modelo). Valor padrão: 4.
  • Outros parâmetros opcionais

    Use as seguintes variáveis opcionais, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros a seguir no objeto "parameters": {}. Esta lista mostra parâmetros opcionais comuns e não está completa. Para mais informações sobre parâmetros opcionais, consulte Referência da API Imagen: gerar imagens.

    "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"
    }
    
    • ADD_WATERMARK: booleano. Opcional. Se uma marca-d'água deve ser ativada para imagens geradas. Qualquer imagem gerada quando o campo está definido como true contém um SynthID digital que você pode usar para verificar uma imagem de marca d'água. Se você omitir esse campo, o valor padrão de true será usado. Defina o valor como false para desativar esse recurso. Só é possível usar o campo seed para receber uma saída determinística quando ele estiver definido como false.
    • ASPECT_RATIO: string. Opcional. Um parâmetro do modo de geração que controla a proporção. Valores de proporção aceitos e o uso pretendido:
      • 1:1 (padrão, quadrado)
      • 3:4 (anúncios, mídias sociais)
      • 4:3 (TV, fotografia)
      • 16:9 (paisagem)
      • 9:16 (retrato)
    • ENABLE_PROMPT_REWRITING: booleano. Opcional. Um parâmetro para usar um recurso de alteração de comando baseado 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. Valor padrão: true
    • INCLUDE_RAI_REASON: booleano. Opcional. Define se o código de motivo filtrado da IA responsável será ativado em respostas com entrada ou saída bloqueada. Valor padrão: true.
    • INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Define se as pontuações de IA responsável arredondadas serão ativadas para uma lista de atributos de segurança nas respostas de entrada e saída não filtradas. Categorias de atributos de segurança: "Death, Harm & Tragedy", "Firearms & Weapons", "Hate", "Health", "Illicit Drugs", "Politics", "Porn", "Religion & Belief", "Toxic", "Violence", "Vulgarity", "War & Conflict". Valor padrão: false.
    • MIME_TYPE: string. Opcional. O tipo MIME do conteúdo da imagem. Valores disponíveis:
      • image/jpeg
      • image/gif
      • image/png
      • image/webp
      • image/bmp
      • image/tiff
      • image/vnd.microsoft.icon
    • COMPRESSION_QUALITY: número inteiro. Opcional. Aplicável apenas a arquivos de saída JPEG. O nível de detalhes que o modelo preserva para imagens geradas no formato de arquivo JPEG. Valores: 0 a 100, em que um número maior significa mais compactação. Padrão: 75.
    • PERSON_SETTING: string. Opcional. A configuração de segurança que controla o tipo de pessoas ou geração de rostos permitida pelo modelo. Valores disponíveis:
      • allow_adult (padrão): permite a geração somente de adultos, exceto para celebridades. A geração de celebridades não é permitida em nenhuma configuração.
      • dont_allow: desativa a inclusão de pessoas ou rostos nas imagens geradas.
    • SAFETY_SETTING: string. Opcional. Uma configuração que controla os limites de filtro de segurança para as imagens geradas. Valores disponíveis:
      • block_low_and_above: o limite de segurança mais alto, resultando na maior quantidade de imagens geradas que são filtradas. Valor anterior: block_most.
      • block_medium_and_above (padrão): um limite de segurança médio que equilibra a filtragem de conteúdo potencialmente nocivo e seguro. Valor anterior: block_some.
      • block_only_high: um limite de segurança que reduz o número de solicitações bloqueadas devido a filtros de segurança. Essa configuração pode aumentar o conteúdo censurável gerado pelo Imagen. Valor anterior: block_few.
    • SEED_NUMBER: número inteiro. Opcional. Qualquer número inteiro não negativo fornecido para tornar as imagens de saída determinísticas. Fornecer o mesmo número de origem sempre resulta nas mesmas imagens de saída. Se o modelo que você está usando for compatível com marca d'água digital, defina "addWatermark": false para usar esse campo. Valores inteiros aceitos: 1 a 2147483647.
    • OUTPUT_STORAGE_URI: string. Opcional. O bucket do Cloud Storage para armazenar as imagens de saída. Se não for fornecido, os bytes de imagem codificados em base64 serão retornados na resposta. Exemplo de valor: gs://image-bucket/output/.

Método HTTP e URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT
  }
}

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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION: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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION:predict" | Select-Object -Expand Content
O exemplo de resposta a seguir é para uma solicitação com "sampleCount": 2. A resposta retorna dois objetos de previsão, com os bytes de imagem gerados codificados em base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Se você usar um modelo que ofereça suporte ao aprimoramento de comandos, a resposta vai incluir um campo prompt adicional com o comando aprimorado usado para geração:

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

  1. Substitua:

    • SEED_NUMBER: número inteiro. Opcional. Qualquer número inteiro não negativo fornecido para tornar as imagens de saída determinísticas. Fornecer o mesmo número de origem sempre resulta nas mesmas imagens de saída. Se o modelo que você está usando for compatível com marca d'água digital, defina "addWatermark": false para usar esse campo. Valores inteiros aceitos: 1 a 2147483647.
{
  "instances": [
    ...
  ],
  "parameters": {
    "sampleCount": IMAGE_COUNT,
    "seed": SEED_NUMBER,
    // required for model version 006 and greater only when using a seed number
    "addWatermark": false
  }
}

A seguir