Omita conteúdo com um comando negativo

Experimente o Imagen num Colab

Esta página descreve como omitir conteúdo de imagens geradas pelo Imagen on Vertex AI.

Um comando negativo é uma descrição do que quer omitir nas imagens geradas. Por exemplo, considere o comando "uma rua chuvosa da cidade à noite sem pessoas". O modelo pode interpretar "pessoas" como uma diretiva do que incluir em vez de omitir. Para gerar melhores resultados, pode usar o comando "uma rua chuvosa da cidade à noite" com um comando negativo "pessoas".

O Imagen gera estas imagens com e sem um comando negativo:

Apenas comando de texto

  • Comando de texto: "uma pizza"

três imagens de exemplo de pizzas

Comando de texto e comando negativo

  • Comando de texto: "uma pizza"
  • Comando negativo: "pepperoni"

três imagens de amostra de pizzas sem pepperoni

Os seguintes modelos suportam comandos negativos:

  • imagen-3.0-capability-001
  • imagen-3.0-fast-generate-001
  • imagen-3.0-generate-001

Use um comando negativo

Para omitir conteúdo de imagens geradas, faça o seguinte:

Consola

  1. Na Google Cloud consola, aceda à página Vertex AI > Media Studio.

    Aceda ao Media Studio

  2. Clique em Imagen. A página de geração de imagens do Imagen Media Studio é apresentada.

  3. No painel Definições, ajuste as seguintes opções:

    • Modelo: escolha um modelo entre as opções disponíveis.

      Para mais informações sobre os modelos disponíveis, consulte os modelos Imagen

    • Número de resultados: ajuste o controlo de deslize ou introduza um valor entre 1 e 4.

    • Na caixa Comando negativo, introduza um comando que descreva o que não quer que seja gerado na imagem.

  4. Na caixa Escreva o seu comando, introduza o comando de texto que descreve as imagens a gerar. Por exemplo, pequeno barco na água na ilustração de aguarela da manhã.

    Para mais detalhes sobre como escrever comandos eficazes, consulte o guia de atributos de comandos e imagens.

  5. Clique em Gerar.

REST

O comando negativo é um campo opcional no objeto parameters de um corpo do pedido JSON.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

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

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

    Use as seguintes variáveis opcionais consoante o seu exemplo de utilização. Adicione alguns ou todos os seguintes parâmetros no objeto "parameters": {}. Esta lista mostra parâmetros opcionais comuns e não se destina a ser exaustiva. Para mais informações sobre parâmetros opcionais, consulte a 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 deve ativar uma marca de água para imagens geradas. Qualquer imagem gerada quando o campo está definido como true contém um SynthID digital que pode usar para validar uma imagem com marca de água. Se omitir este campo, é usado o valor predefinido de true. Tem de definir o valor como false para desativar esta funcionalidade. Pode usar o campo seed para obter um resultado determinístico apenas quando este campo estiver definido como false.
    • ASPECT_RATIO: string. Opcional. Um parâmetro do modo de geração que controla o formato. Valores de proporção suportados e a respetiva utilização prevista:
      • 1:1 (predefinição, quadrada)
      • 3:4 (anúncios, redes sociais)
      • 4:3 (TV, fotografia)
      • 16:9 (horizontal)
      • 9:16 (vertical)
    • ENABLE_PROMPT_REWRITING: booleano. Opcional. Um parâmetro para usar uma funcionalidade de reescrita de comandos baseada em MDIs para fornecer imagens de maior qualidade que reflitam melhor a intenção do comando original. A desativação desta funcionalidade pode afetar a qualidade da imagem e a conformidade com os comandos. Valor predefinido: true.
    • INCLUDE_RAI_REASON: booleano. Opcional. Se deve ativar o código do motivo filtrado da IA responsável em respostas com entrada ou saída bloqueada. Valor predefinido: true.
    • INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Se deve ativar as classificações de IA responsável arredondadas para uma lista de atributos de segurança nas respostas para 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" e "War & Conflict". Valor predefinido: 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. Aplica-se apenas a ficheiros de saída JPEG. O nível de detalhe que o modelo preserva para imagens geradas no formato de ficheiro JPEG. Valores: 0 a 100, em que um número mais elevado significa uma maior compressão. Predefinição: 75.
    • PERSON_SETTING: string. Opcional. A definição de segurança que controla o tipo de pessoas ou geração de rostos que o modelo permite. Valores disponíveis:
      • allow_adult (predefinição): permitir a geração de conteúdo apenas para adultos, exceto a geração de conteúdo com celebridades. A geração de celebridades não é permitida para nenhuma definição.
      • dont_allow: desative a inclusão de pessoas ou rostos em imagens geradas.
    • SAFETY_SETTING: string. Opcional. Uma definição que controla os limites dos filtros de segurança para imagens geradas. Valores disponíveis:
      • block_low_and_above: o limite de segurança mais elevado, o que resulta na maior quantidade de imagens geradas filtradas. Valor anterior: block_most.
      • block_medium_and_above (predefinição): um limite de segurança médio que equilibra a filtragem de conteúdo potencialmente prejudicial e seguro. Valor anterior: block_some.
      • block_only_high: um limite de segurança que reduz o número de pedidos bloqueados devido a filtros de segurança. Esta definiçã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 que fornecer para tornar as imagens de saída determinísticas. Fornecer o mesmo número aleatório resulta sempre nas mesmas imagens de saída. Se o modelo que está a usar suportar marcas de água digitais, tem de definir "addWatermark": false para usar este campo. Valores inteiros aceites: 1 a 2147483647.
    • OUTPUT_STORAGE_URI: string. Opcional. O contentor do Cloud Storage para armazenar as imagens de saída. Se não for fornecido, os bytes da imagem codificados em base64 são devolvidos na resposta. Valor de exemplo: 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 do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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
A seguinte resposta de exemplo destina-se a um pedido com "sampleCount": 2. A resposta devolve dois objetos de previsão, com os bytes da imagem gerada codificados em base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

Se usar um modelo que suporte o melhoramento de comandos, a resposta inclui um campo prompt adicional com o comando melhorado usado para a 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 o seguinte:

    • NEGATIVE_PROMPT: um comando negativo para ajudar a gerar as imagens. Por exemplo: "animais" (remove animais), "embaciado" (torna a imagem mais nítida), "texto" (remove texto) ou "recortado" (remove imagens recortadas).
    {
      "instances": [
        ...
      ],
      "parameters": {
        "sampleCount": IMAGE_COUNT,
        "negativePrompt": "NEGATIVE_PROMPT"
      }
    }
    

O que se segue?