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 integer O 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 string Uma 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-west2
ouasia-northeast3
. Para ver uma lista das regiões disponíveis, consulte Localizações da IA generativa na 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
referenceId
das 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"
: Cria 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 hachuras, desenho de hachuras de um retrato com lápis 6B e de grafite, fundo branco, desenho a lápis, alta qualidade, 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 | espelho |
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 | toldos |
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.