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.