A API Imagen permite-lhe gerar imagens de alta qualidade em segundos, usando um comando de texto para orientar a geração. Também pode aumentar a resolução das imagens com a API Imagen.
Veja o cartão do modelo Imagen for Generation
Modelos suportados
A API Imagen suporta os seguintes modelos:
imagen-4.0-generate-001imagen-4.0-fast-generate-001imagen-4.0-ultra-generate-001imagen-3.0-generate-002imagen-3.0-generate-001imagen-3.0-fast-generate-001imagen-3.0-capability-001imagegeneration@006imagegeneration@005imagegeneration@002
Para mais informações sobre as funcionalidades suportadas por cada modelo, consulte os modelos do Imagen.
Sintaxe de exemplo
Sintaxe para criar uma imagem a partir de um comando de texto.
Sintaxe
Sintaxe para gerar uma imagem.
REST
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_VERSION}:predict \ -d '{ "instances": [ { "prompt": "..." } ], "parameters": { "sampleCount": ... } }'
Python
generation_model = ImageGenerationModel.from_pretrained("MODEL_VERSION") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
Gerar imagens
REST
| Parâmetros | |
|---|---|
prompt | 
  
     
 Obrigatório. O comando de texto para a imagem.  | 
addWatermark | 
  
     
 Opcional. Adicionar uma marca de água invisível às imagens geradas. 
      O valor predefinido é  
  | 
aspectRatio | 
  
     
 Opcional. O formato da imagem de saída gerada. O valor predefinido é "1:1". Este parâmetro não se aplica ao resultado com aumento de escala.  | 
enhancePrompt | 
  
       Opcional. Um parâmetro opcional 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 o comando.  | 
language | 
  
     
 Opcional. O código do idioma que corresponde ao idioma do comando de texto. Os seguintes valores são suportados: 
  | 
negativePrompt | 
  
     
 Opcional. Uma descrição do que deve ser evitado nas imagens geradas. 
      O   | 
outputOptions | 
  
     
 
      Opcional. Descreve o formato da imagem de saída num   | 
personGeneration | 
  
     
 Opcional. Permitir a geração de pessoas pelo modelo. Os seguintes valores são suportados: 
 O valor predefinido é   | 
safetySetting | 
  
     
 Opcional. Adiciona um nível de filtro à filtragem de segurança. Os seguintes valores são suportados: 
 O valor predefinido é   | 
sampleCount | 
  
     
 Obrigatório. O número de imagens a gerar. O valor predefinido é 4.  | 
sampleImageSize | 
  
     
 
      Opcional. Especifica a resolução de saída da imagem gerada. Os valores aceites são   | 
seed | 
  
     
 
      Opcional. A semente aleatória para a geração de imagens. Esta opção não está disponível quando  
      Se   | 
storageUri | 
  
     Opcional:  URI do Cloud Storage para armazenar as imagens geradas.  | 
Objeto de opções de saída
O objeto outputOptions descreve a saída da imagem.
| Parâmetros | |
|---|---|
outputOptions.mimeType | 
  
     Opcional:  O formato de imagem no qual a saída deve ser guardada. Os seguintes valores são suportados: 
 O valor predefinido é   | 
outputOptions.compressionQuality | 
  
     Opcional:  O nível de compressão se o tipo de saída for
        | 
Resposta
O corpo da resposta do pedido REST.
| Parâmetro | |
|---|---|
predictions | 
  
    Uma matriz de objetos VisionGenerativeModelResult, um para cada sampleCount pedido. Se alguma
    imagem for filtrada pela IA responsável, não é incluída, a menos que
    includeRaiReason esteja definido como true.
   | 
Objeto de resultado do modelo generativo de visão
Informações sobre o resultado do modelo.
| Parâmetro | |
|---|---|
bytesBase64Encoded | 
  
     A imagem gerada codificada em base64. Não está presente se a imagem de saída não tiver passado nos filtros de IA responsável.  | 
mimeType | 
  
     O tipo de imagem gerada. Não está presente se a imagem de saída não tiver passado nos filtros de IA responsável.  | 
raiFilteredReason | 
  
     O motivo do filtro de IA responsável. Só é devolvido se
        | 
safetyAttributes.categories | 
  
     O nome do atributo de segurança. Só é devolvido se
      | 
safetyAttributes.scores | 
  
     A pontuação do atributo de segurança. Só é devolvido se
        | 
Python
| Parâmetros | |
|---|---|
prompt | 
  
     
 Obrigatório. O comando de texto para a imagem.  | 
add_watermark | 
  
     
 Opcional. Adicionar uma marca de água à imagem gerada. 
      O valor predefinido é  
  | 
aspect_ratio | 
  
     
 Opcional. O formato da imagem de saída gerada. O valor predefinido é "1:1". Este parâmetro não se aplica ao resultado com aumento de escala.  | 
compression_quality | 
  
     
 
      Opcional. O nível de compressão se o tipo MIME de saída for
        | 
language | 
  
     
 Opcional. O idioma do comando de texto para a imagem. Os seguintes valores são suportados: 
 O valor predefinido é   | 
negative_prompt | 
  
     
 Opcional. Uma descrição do que deve ser evitado nas imagens geradas. 
      O   | 
number_of_images | 
  
     
 Obrigatório. O número de imagens a gerar. O valor predefinido é 1.  | 
output_gcs_uri | 
  
     
 Opcional. URI do Cloud Storage para armazenar as imagens geradas.  | 
output_mime_type | 
  
     
 Opcional. O formato de imagem no qual a saída deve ser guardada. Os seguintes valores são suportados: 
 O valor predefinido é   | 
person_generation | 
  
     
 Opcional. Permitir a geração de pessoas pelo modelo. Os seguintes valores são suportados: 
 O valor predefinido é   | 
safety_filter_level | 
  
     
 Opcional. Adiciona um nível de filtro à filtragem de segurança. Os seguintes valores são suportados: 
 O valor predefinido é   | 
sample_image_size | 
  
     
 
      Opcional. Especifica a resolução de saída da imagem gerada. Os valores aceites são   | 
seed | 
  
     
 
      Opcional. A semente aleatória para a geração de imagens. Esta opção não está disponível quando  Se   | 
Redimensione imagens
REST
| Parâmetro | |
|---|---|
mode | 
  
     
 
      Obrigatório. Tem de ser definido como   | 
upscaleConfig | 
  
     
 
      Obrigatório. Um   | 
outputOptions | 
  
     
 
      Opcional. Descreve o formato da imagem de saída num   | 
storageUri | 
  
     
 Opcional. URI do Cloud Storage onde armazenar as imagens geradas.  | 
Objeto de configuração de redimensionamento
| Parâmetro | |
|---|---|
upscaleConfig.upscaleFactor | 
  
     
 
      Obrigatório. O fator de melhoramento. Os valores suportados são
        | 
Resposta
O corpo da resposta do pedido REST.
| Parâmetro | |
|---|---|
predictions | 
  
    Uma matriz de objetos VisionGenerativeModelResult, um para cada sampleCount pedido. Se alguma
    imagem for filtrada pela IA responsável, não é incluída, a menos que
    includeRaiReason esteja definido como true.
   | 
Exemplos
Os exemplos seguintes mostram como usar os modelos Imagen para gerar imagens.
Gerar imagens
REST
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-west2ouasia-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. - ADD_WATERMARK: booleano. Opcional. Se deve ativar uma marca de água para imagens geradas.
  Qualquer imagem gerada quando o campo está definido como 
truecontém um SynthID digital que pode usar para validar uma imagem com marca de água. Se omitir este campo, é usado o valor predefinido detrue. Tem de definir o valor comofalsepara desativar esta funcionalidade. Pode usar o camposeedpara obter um resultado determinístico apenas quando este campo estiver definido comofalse. - 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/jpegimage/gifimage/pngimage/webpimage/bmpimage/tiffimage/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:
  
0a100, 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": falsepara usar este campo. Valores inteiros aceites:1a2147483647. - 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/. 
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"
}
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
"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"
    }
  ]
}
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python Vertex AI.
Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Neste exemplo, chama o método generate_images no
ImageGenerationModel (versão @006) e guarda as imagens geradas localmente. Em seguida, pode usar opcionalmente o método show()
num bloco de notas para ver as imagens geradas. Para mais informações sobre as versões e as funcionalidades dos modelos, consulte o artigo Versões dos modelos.
Redimensione imagens
REST
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a região do seu projeto. Por exemplo,
  
us-central1,europe-west2ouasia-northeast3. Para ver uma lista das regiões disponíveis, consulte Localizações da IA generativa no Vertex AI. - PROJECT_ID: o seu Google Cloud ID do projeto.
 - B64_BASE_IMAGE: a imagem base a editar ou aumentar. A imagem tem de ser especificada como uma string de bytes codificada em base64. Limite de tamanho: 10 MB.
 - IMAGE_SOURCE:  A localização no Cloud Storage da imagem que quer editar ou aumentar. Por exemplo: 
gs://output-bucket/source-photos/photo.png. - UPSCALE_FACTOR: opcional. O fator pelo qual a imagem vai ser redimensionada. Se não for especificado, o fator de aumento é determinado a partir do lado mais longo da imagem de entrada e 
sampleImageSize. Valores disponíveis:x2oux4. 
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict
Corpo JSON do pedido:
{
  "instances": [
    {
      "prompt": "",
      "image": {
        // use one of the following to specify the image to upscale
        "bytesBase64Encoded": "B64_BASE_IMAGE"
        "gcsUri": "IMAGE_SOURCE"
        // end of base image input options
      },
    }
  ],
  "parameters": {
    "sampleCount": 1,
    "mode": "upscale",
    "upscaleConfig": {
      "upscaleFactor": "UPSCALE_FACTOR"
    }
  }
}
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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{
  "predictions": [
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII="
    }
  ]
}
O que se segue?
- Para mais informações, consulte a vista geral do Imagen na Vertex AI e gere imagens através de comandos de texto.