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-001
imagen-4.0-fast-generate-001
imagen-4.0-ultra-generate-001
imagen-3.0-generate-002
imagen-3.0-generate-001
imagen-3.0-fast-generate-001
imagen-3.0-capability-001
imagegeneration@006
imagegeneration@005
imagegeneration@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-west2
ouasia-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
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 detrue
. Tem de definir o valor comofalse
para desativar esta funcionalidade. Pode usar o camposeed
para 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/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
a100
, 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
a2147483647
. - 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-west2
ouasia-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:x2
oux4
.
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.