A API Imagen permite-lhe criar imagens de alta qualidade em segundos, usando comandos de texto e imagens de referência para orientar a geração de assuntos ou estilos.
Veja o cartão do modelo Imagen for Editing and Customization
Modelos suportados
| Modelo | Código |
|---|---|
| Personalização com imagens de referência (few-shot) | imagen-3.0-capability-001 |
Para mais informações sobre as funcionalidades suportadas por cada modelo, consulte os modelos do Imagen.
Método HTTP e URL
POST https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict
Sintaxe de exemplo
Sintaxe para personalizar uma imagem a partir de um comando de texto e imagens de referência.
Sintaxe
Sintaxe para personalizar 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/imagen-3.0-capability-001:predict \ -d '{ "instances": [ { // Use [1] to refer to the reference images with referenceId=1 // [2] to refer to the reference images with referenceId=2, // following the same format for all reference IDs that you provide. "prompt": "${TEXT_PROMPT}", "referenceImages": [ // A list of at most 4 reference image objects. [...] ] } ], "parameters": { [...] } }'
Exemplo de corpo do pedido:
Esta solicitação destina-se à personalização de pessoas com uma imagem de controlo de malha facial e três imagens de referência.
{
"instances": [
{
"prompt": "Create an image about a man with short hair [1] in the pose of
control image [2] to match the description: A pencil style sketch of a
full-body portrait of a man with short hair [1] with hatch-cross drawing,
hatch drawing of portrait with 6B and graphite pencils, white background,
pencil drawing, high quality, pencil stroke, looking at camera, natural
human eyes",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_CONTROL",
"referenceId": 2,
"referenceImage": {
"bytesBase64Encoded": "${IMAGE_BYTES_1}"
},
"controlImageConfig": {
"controlType": "CONTROL_TYPE_FACE_MESH",
"enableControlImageComputation": true
}
},
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "${IMAGE_BYTES_2}"
},
"subjectImageConfig": {
"subjectDescription": "a man with short hair",
"subjectType": "SUBJECT_TYPE_PERSON"
}
},
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "${IMAGE_BYTES_3}"
},
"subjectImageConfig": {
"subjectDescription": "a man with short hair",
"subjectType": "SUBJECT_TYPE_PERSON"
}
},
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "${IMAGE_BYTES_4}"
},
"subjectImageConfig": {
"subjectDescription": "a man with short hair",
"subjectType": "SUBJECT_TYPE_PERSON"
}
}
]
}
],
"parameters": {
"negativePrompt": "wrinkles, noise, Low quality, dirty, low res, multi face,
rough texture, messy, messy background, color background, photo realistic,
photo, super realistic, signature, autograph, sign, text, characters,
alphabet, letter",
"seed": 1,
"language": "en",
"sampleCount": 4
}
}Lista de parâmetros
Consulte exemplos para ver detalhes de implementação.
Personalize imagens
REST
| Parâmetros | |
|---|---|
referenceType |
Enumeração obrigatória:
|
referenceId |
Obrigatório integerO ID de referência. Use este ID de referência no comando. Por exemplo, use [1] para fazer referência às imagens de referência com referenceId=1 e [2] para
fazer referência às imagens de referência com referenceId=2.
|
referenceImage.bytesBase64Encoded |
Obrigatório stringUma string Base64 para a imagem de referência codificada. |
maskImageConfig.maskMode |
Enumeração opcional:
Especificado quando referenceType está definido como REFERENCE_TYPE_MASK.
|
maskImageConfig.dilation |
Opcional float. Intervalo: [0, 1]A percentagem da largura da imagem para dilatar esta máscara. Especificado quando referenceType está definido como REFERENCE_TYPE_MASK.
|
maskImageConfig.maskClasses |
Opcional list[Integer].Oculte as classes no modo MASK_MODE_SEMANTIC.Especificado quando referenceType está definido como REFERENCE_TYPE_MASK.
|
controlImageConfig.controlType |
Enumeração obrigatória:
Especificado quando referenceType está definido como REFERENCE_TYPE_CONTROL.
|
controlImageConfig.enableControlImageComputation |
Opcional bool.Predefinição: false.
Especificado quando referenceType está definido como REFERENCE_TYPE_CONTROL.
|
language |
Opcional: O código do idioma que corresponde ao idioma do comando de texto. Os seguintes valores são suportados:
en: inglês (se for omitido, o valor predefinido)
|
subjectImageConfig.subjectDescription |
Obrigatório string.Uma breve descrição do assunto na imagem. Por exemplo, uma mulher com cabelo castanho curto. Especificado quando referenceType está definido como REFERENCE_TYPE_SUBJECT.
|
subjectImageConfig.subjectType |
Enumeração obrigatória:
Especificado quando referenceType está definido como REFERENCE_TYPE_SUBJECT.
|
styleImageConfig.styleDescription |
Opcional string.Uma breve descrição do estilo. Especificado quando referenceType está definido como REFERENCE_TYPE_STYLE.
|
Resposta
O corpo da resposta do pedido REST.
| Parâmetro | |
|---|---|
predictions |
Uma matriz de objetos |
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. |
Exemplos
Os exemplos seguintes mostram como usar o modelo Imagen para personalizar imagens.
Personalize 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.
- 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 orienta as imagens que o modelo
gera. Para usar a personalização do Imagen 3, inclua o
referenceIddas imagens de referência que fornece no formato [$referenceId]. Por exemplo:- O comando de texto seguinte destina-se a um pedido que tem duas imagens de referência com
"referenceId": 1. Ambas as imagens têm uma descrição opcional de"subjectDescription": "man with short hair": Crie uma imagem sobre um homem com cabelo curto que corresponda à descrição: um esboço a lápis de um retrato de corpo inteiro de um man with short hair [1] com um desenho de linhas cruzadas, um desenho de linhas de um retrato com lápis 6B e de grafite, um fundo branco, um desenho a lápis, alta qualidade, um traço de lápis, a olhar para a câmara, olhos humanos naturais
- O comando de texto seguinte destina-se a um pedido que tem duas imagens de referência com
"referenceId": o ID da imagem de referência ou o ID de uma série de imagens de referência que correspondem ao mesmo assunto ou estilo. Neste exemplo, as duas imagens de referência são da mesma pessoa, pelo que partilham o mesmoreferenceId(1).- BASE64_REFERENCE_IMAGE: uma imagem de referência para orientar a geração de imagens. A imagem tem de ser especificada como uma string de bytes codificada em base64.
- SUBJECT_DESCRIPTION: opcional. Uma descrição de texto da imagem de referência que pode
usar no campo
prompt. Por exemplo:"prompt": "a full-body portrait of a man with short hair [1] with hatch-cross drawing", [...], "subjectDescription": "man with short hair" - IMAGE_COUNT: o número de imagens geradas. Valores inteiros aceites: 1 a 4. Valor predefinido: 4.
Método HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON do pedido:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
},
"subjectImageConfig": {
"subjectDescription": "SUBJECT_DESCRIPTION",
"subjectType": "SUBJECT_TYPE_PERSON"
}
},
{
"referenceType": "REFERENCE_TYPE_SUBJECT",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
},
"subjectImageConfig": {
"subjectDescription": "SUBJECT_DESCRIPTION",
"subjectType": "SUBJECT_TYPE_PERSON"
}
}
]
}
],
"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/imagen-3.0-capability-001: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/imagen-3.0-capability-001: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"
}
]
}
IDs das classes
Use os seguintes IDs de classe de objetos para criar automaticamente uma máscara de imagem com base em objetos específicos.
ID da classe (class_) |
Objeto |
|---|---|
| 0 | mochila |
| 1 | chapéu-de-chuva |
| 2 | saco |
| 3 | gravata |
| 4 | mala de viagem |
| 5 | caixa |
| 6 | pássaro |
| 7 | gato |
| 8 | cão |
| 9 | cavalo |
| 10 | ovelha |
| 11 | vaca |
| 12 | elefante |
| 13 | urso |
| 14 | zebra |
| 15 | girafa |
| 16 | animal (outro) |
| 17 | microondas |
| 18 | radiador |
| 19 | forno |
| 20 | torradeira |
| 21 | tanque de armazenamento |
| 22 | tapete rolante |
| 23 | lavatório |
| 24 | frigorífico |
| 25 | máquina de lavar e secar |
| 26 | ventoinha |
| 27 | máquina de lavar loiça |
| 28 | casa de banho |
| 29 | banheira |
| 30 | chuveiro |
| 31 | túnel |
| 32 | ponte |
| 33 | cais |
| 34 | tenda |
| 35 | edifício |
| 36 | teto |
| 37 | portátil |
| 38 | teclado |
| 39 | rato |
| 40 | remoto |
| 41 | telemóvel |
| 42 | televisão |
| 43 | mínimo |
| 44 | armazenar dados em área intermediária |
| 45 | banana |
| 46 | maçã |
| 47 | sanduíche |
| 48 | cor de laranja |
| 49 | brócolos |
| 50 | cenoura |
| 51 | cachorro-quente |
| 52 | piza |
| 53 | dónute |
| 54 | bolo |
| 55 | fruta (outra) |
| 56 | comida (outra) |
| 57 | cadeira (outra) |
| 58 | poltrona |
| 59 | cadeira giratória |
| 60 | banquinho |
| 61 | posto de trabalho |
| 62 | sofá |
| 63 | caixote do lixo |
| 64 | planta em vaso |
| 65 | mesa de cabeceira |
| 66 | cama |
| 67 | tabela |
| 68 | mesa de bilhar |
| 69 | barril |
| 70 | secretária |
| 71 | otomano |
| 72 | guarda-roupa |
| 73 | berço |
| 74 | cesto |
| 75 | cómoda |
| 76 | estante |
| 77 | contador (outro) |
| 78 | bancada de casa de banho |
| 79 | ilha de cozinha |
| 80 | porta |
| 81 | light (other) |
| 82 | candeeiro |
| 83 | arandela |
| 84 | candelabro |
| 85 | espelhar |
| 86 | quadro |
| 87 | prateleira |
| 88 | escadas |
| 89 | escada rolante |
| 90 | armário |
| 91 | lareira |
| 92 | fogão |
| 93 | máquina de jogos de arcada |
| 94 | gravilha |
| 95 | plataforma |
| 96 | playingfield |
| 97 | caminho de ferro |
| 98 | estrada |
| 99 | neve |
| 100 | pavimento do passeio |
| 101 | pista |
| 102 | terreno |
| 103 | livro |
| 104 | caixa |
| 105 | relógio |
| 106 | vaso |
| 107 | tesoura |
| 108 | brinquedo (outro) |
| 109 | urso de peluche |
| 110 | secador de cabelo |
| 111 | escova de dentes |
| 112 | pintura |
| 113 | póster |
| 114 | quadro de avisos |
| 115 | garrafa |
| 116 | chávena |
| 117 | copo de vinho |
| 118 | faca |
| 119 | garfo |
| 120 | colher |
| 121 | tigela |
| 122 | Tabuleiro |
| 123 | exaustor |
| 124 | placa |
| 125 | pessoa |
| 126 | Motociclista (outro) |
| 127 | ciclista |
| 128 | motociclista |
| 129 | papel |
| 130 | luz de rua |
| 131 | barreira rodoviária |
| 132 | caixa de correio |
| 133 | câmara CFTV |
| 134 | caixa de distribuição de trânsito |
| 135 | sinal de trânsito |
| 136 | semáforo |
| 137 | boca de incêndio |
| 138 | parquímetro |
| 139 | banco |
| 140 | suporte para bicicletas |
| 141 | painel |
| 142 | céu |
| 143 | poste |
| 144 | cerca |
| 145 | corrimão |
| 146 | guarda-corpo |
| 147 | colina montanhosa |
| 148 | rock |
| 149 | frisbee |
| 150 | esquis |
| 151 | snowboard |
| 152 | bola desportiva |
| 153 | papagaio de papel |
| 154 | taco de basebol |
| 155 | luva de basebol |
| 156 | skate |
| 157 | prancha de surf |
| 158 | raquete de ténis |
| 159 | líquido |
| 160 | base |
| 161 | escultura |
| 162 | coluna |
| 163 | fonte |
| 164 | toldo |
| 165 | vestuário |
| 166 | faixa |
| 167 | flag |
| 168 | cobertor |
| 169 | cortina (outra) |
| 170 | cortina de chuveiro |
| 171 | almofada |
| 172 | toalha |
| 173 | tapete |
| 174 | vegetação |
| 175 | bicicleta |
| 176 | carro |
| 177 | autorickshaw |
| 178 | motociclo |
| 179 | avião |
| 180 | autocarro |
| 181 | comboio |
| 182 | camião |
| 183 | trailer |
| 184 | navio |
| 185 | objeto com rodas lento |
| 186 | lago fluvial |
| 187 | mar |
| 188 | água (outro) |
| 189 | piscina |
| 190 | cascata |
| 191 | parede |
| 192 | janela |
| 193 | persiana |
O que se segue?
- Para mais informações, consulte o artigo Imagen no Vertex AI.