A API Imagen permite criar imagens de alta qualidade em segundos, usando um comando de texto para orientar a geração. Também é possível refinar imagens usando a API Imagen.
Ver o card do modelo Imagen para geração
Modelos compatíveis
A API Imagen é compatível com os seguintes modelos:
imagen-4.0-generate-preview-06-06
(Pré-lançamento)imagen-4.0-fast-generate-preview-06-06
(Pré-lançamento)imagen-4.0-ultra-generate-preview-06-06
(Pré-lançamento)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 os recursos compatíveis com cada modelo, consulte Modelos do Imagen.
Exemplo de sintaxe
Sintaxe para criar uma imagem de um prompt 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()
Lista de parâmetros
Confira exemplos para detalhes de implementação.
Gerar imagens
REST
Parâmetros | |
---|---|
prompt |
Obrigatório. O comando de texto para a imagem. |
sampleCount |
Obrigatório. O número de imagens a serem geradas. O valor padrão é 4. |
seed |
Opcional. A semente aleatória para geração de imagens. Essa opção não está disponível
quando
Se |
enhancePrompt |
Opcional. Um parâmetro opcional para usar um recurso de alteração de comando com base 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. |
negativePrompt |
Opcional. Uma descrição do que não é recomendado nas imagens geradas.
|
aspectRatio |
Opcional. É a proporção da imagem. O valor padrão é "1:1". |
outputOptions |
Opcional. Descreve o formato da imagem de saída em um objeto |
sampleImageStyle |
Opcional. Descreve o estilo das imagens geradas. Os valores a seguir são compatíveis:
O |
personGeneration |
Opcional. Permite a geração de imagens de pessoas pelo modelo. Os valores a seguir são compatíveis:
O valor padrão é |
language |
Opcional. O código do idioma correspondente ao idioma do comando de texto. Os valores a seguir são compatíveis:
|
safetySetting |
Opcional. Adiciona um nível de filtro à filtragem de segurança. Os valores a seguir são compatíveis:
O valor padrão é |
addWatermark |
Opcional. Adicione uma marca-d'água invisível às imagens geradas.
O valor padrão é
|
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 em que a saída será salva. Os valores a seguir são compatíveis:
O valor padrão é |
outputOptions.compressionQuality |
Opcional: O nível de compactação se o tipo de saída for |
Resposta
O corpo da resposta da solicitação REST.
Parâmetro | |
---|---|
predictions |
Uma matriz de objetos VisionGenerativeModelResult , um para cada sampleCount solicitado. Se alguma
imagem for filtrada pela IA responsável, ela não será 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 base 64. Não estará presente se a imagem de saída não tiver passado pelos filtros de IA responsável. |
mimeType |
O tipo de imagem gerada. Não estará presente se a imagem de saída não tiver passado pelos filtros de IA responsável. |
raiFilteredReason |
O motivo do filtro da IA responsável. Retornará somente se |
safetyAttributes.categories |
O nome do atributo de segurança. Retornado somente se |
safetyAttributes.scores |
Pontuação do atributo de segurança. Retornado somente se |
Python
Parâmetros | |
---|---|
prompt |
Obrigatório. O comando de texto para a imagem. |
number_of_images |
Obrigatório. O número de imagens a serem geradas. O valor padrão é 1. |
seed |
Opcional. A semente aleatória para geração de imagens. Essa opção não está disponível
quando Se |
negative_prompt |
Opcional. Uma descrição do que não é recomendado nas imagens geradas.
|
aspect_ratio |
Opcional. É a proporção da imagem. O valor padrão é "1:1". |
output_mime_type |
Opcional. O formato de imagem em que a saída será salva. Os seguintes valores são compatíveis:
O valor padrão é |
compression_quality |
Opcional. O nível de compactação se o tipo MIME de saída for |
language |
Opcional. Idioma do comando de texto da imagem. Os valores a seguir são compatíveis:
O valor padrão é |
output_gcs_uri |
Opcional. URI do Cloud Storage para armazenar as imagens geradas. |
add_watermark |
Opcional. Adiciona uma marca-d'água à imagem gerada.
O valor padrão é
|
safety_filter_level |
Opcional. Adiciona um nível de filtro à filtragem de segurança. Os valores a seguir são compatíveis:
O valor padrão é |
person_generation |
Opcional. Permite a geração de imagens de pessoas pelo modelo. Os valores a seguir são compatíveis:
O valor padrão é |
Aumentar a resolução das imagens
REST
Parâmetro | |
---|---|
mode |
Obrigatório. Precisa ser definido como |
upscaleConfig |
Obrigatório. Um objeto |
outputOptions |
Opcional. Descreve o formato da imagem de saída em um objeto |
storageUri |
Opcional. URI do Cloud Storage onde armazenar as imagens geradas. |
Melhorar objeto de configuração
Parâmetro | |
---|---|
upscaleConfig.upscaleFactor |
Obrigatório. O fator de escalonamento. Os valores aceitos são
|
Resposta
O corpo da resposta da solicitação REST.
Parâmetro | |
---|---|
predictions |
Uma matriz de objetos VisionGenerativeModelResult , um para cada sampleCount solicitado. Se alguma
imagem for filtrada pela IA responsável, ela não será incluída, a menos que
includeRaiReason esteja definido como true .
|
Exemplos
Os exemplos a seguir mostram como usar os modelos do Imagen para gerar imagens.
Gerar imagens
REST
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
ouasia-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. - 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 detrue
será usado. Defina o valor comofalse
para desativar esse recurso. Só é possível usar o camposeed
para receber uma saída determinística quando ele estiver definido comofalse
. - 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
a100
, 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
a2147483647
. - 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/
.
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" }
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
"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" } ] }
Python
Antes de testar esse exemplo, siga as instruções de configuração para Python no Guia de início rápido da Vertex AI sobre como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Neste exemplo, você chama o método generate_images
no
ImageGenerationModel
(versão @006
) e salva as imagens geradas
localmente. Em seguida, é possível usar o método
show()
em um notebook para mostrar as imagens geradas. Para mais informações sobre
versões e atributos de modelos, consulte Versões do modelo.
Aumentar a resolução das imagens
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION: a região do seu projeto. Por exemplo,
us-central1
,europe-west2
ouasia-northeast3
. Para uma lista de regiões disponíveis, consulte IA generativa em locais da Vertex AI. - PROJECT_ID: o ID do projeto do Google Cloud .
- B64_BASE_IMAGE: a imagem de base que será editada ou aprimorada. A imagem precisa ser especificada como uma string de bytes codificada em base64. Limite de tamanho: 10 MB.
- IMAGE_SOURCE: o local do Cloud Storage da imagem que você quer editar ou aprimorar. Por exemplo,
gs://output-bucket/source-photos/photo.png
. - UPSCALE_FACTOR: opcional. O fator para o qual a imagem será aumentada. Se não for especificado, o fator de luxo será determinado pelo lado maior 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 da solicitação:
{ "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 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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a esta:
{ "predictions": [ { "mimeType": "image/png", "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII=" } ] }
A seguir
- Para mais informações, consulte a Visão geral do Imagen na Vertex AI e Gerar imagens usando comandos de texto.