Experimente a geração de imagens (Vertex AI Studio)
Experimente o Imagen num Colab
Esta página descreve a utilização de um número de semente no Imagen no Vertex AI para gerar imagens determinísticas.
Um número de semente é um número que adiciona a um pedido para tornar as imagens geradas não determinísticas determinísticas. Determinístico significa que, sempre que gera uma imagem com o Imagen, recebe o mesmo resultado gerado.
Por exemplo, pode fornecer um comando, definir o número de resultados como 1 e usar um número de semente para obter a mesma imagem sempre que usar os mesmos valores de entrada. Se enviar o mesmo pedido com o número de resultados definido como 8, recebe as mesmas oito imagens.
Use uma semente para gerar imagens
Faça o seguinte:
REST
O número de semente é 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-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"
}
]
}
Substitua o seguinte:
- 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.
- 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
{
"instances": [
...
],
"parameters": {
"sampleCount": IMAGE_COUNT,
"seed": SEED_NUMBER,
// required for model version 006 and greater only when using a seed number
"addWatermark": false
}
}
O que se segue?
- Use a reescrita de comandos
- Defina o idioma do comando de texto
- Configure o formato
- Omita conteúdo através de um comando negativo