Com o Imagen, você pode editar imagens em segundos usando solicitações de texto, máscaras e imagens atuais para orientar as edições.
Ver o card do modelo do Imagen para edição e personalização
Versões de modelo compatíveis
A API Imagen é compatível com os seguintes modelos:
imagen-3.0-capability-001
Para mais informações sobre os recursos compatíveis com o modelo, consulte Modelos do Imagen.
Solicitação HTTP
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": [
{
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": string
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceId": 2,
"referenceImage": {
"bytesBase64Encoded": string
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED"
}
}
],
"prompt": string
}
],
"parameters": {
"addWatermark": boolean,
"baseSteps": integer,
"editMode": string,
"guidanceScale": integer,
"includeRaiReason": boolean,
"includeSafetyAttributes": boolean,
"language": string,
"negativePrompt": string,
"outputOptions": {
"mimeType": string,
"compressionQuality": integer
},
"personGeneration": string,
"safetySetting": string,
"sampleCount": integer,
"seed": integer,
"storageUri": string
}
}'
Instâncias
| Instâncias | |
|---|---|
prompt |
Opcional. O comando de texto para a imagem. Se um |
referenceImages |
Lista de objetos
Obrigatório. Para edição de máscara, é preciso especificar exatamente duas imagens de referência, uma com |
Objeto referenceImages
O objeto referenceImages descreve os recursos de imagem para edição com a
Imagen.
| Parâmetros | |
|---|---|
referenceType |
Obrigatório. O tipo de imagem de referência. Opções:
|
referenceId |
Obrigatório. Um identificador exclusivo da imagem de referência. Não é usado para edição mascarada. |
referenceImage.bytesBase64Encoded |
Obrigatório. Bytes de imagem codificados em base64. Aceita arquivos PNG, JPEG, GIF e BMP. O tamanho máximo é de 20 MB após a transcodificação para PNG. Se você fornecer uma imagem de máscara, ela precisará ter as mesmas dimensões da imagem de base. |
maskImageConfig.maskMode |
Obrigatório quando
|
maskImageConfig.dilation |
Opcional. Intervalo: [0, 1]. A porcentagem da largura da imagem para dilatar (aumentar) a máscara. Isso pode ajudar a compensar máscaras imprecisas.
Para ter os melhores resultados, recomendamos as seguintes configurações de
|
maskImageConfig.maskClasses |
Opcional. Mascare classes para o modo |
Parâmetros
| Parâmetros | |
|---|---|
addWatermark |
Opcional. Adicione uma marca-d'água invisível às imagens geradas.
O valor padrão é |
baseSteps |
Opcional. O número de etapas de amostragem. Um valor mais alto tem melhor qualidade de imagem, enquanto um valor mais baixo tem melhor latência. O padrão é
Para áreas de máscara menores ou para os modos de remoção ou inserção, use as etapas
|
editMode
|
Obrigatório para edição de máscara. Uma enumeração com um dos seguintes valores:
|
guidanceScale |
Opcional. Controla o quanto o modelo adere ao comando de texto. Valores grandes aumentam a saída e o alinhamento de comandos, mas podem comprometer a qualidade da imagem.
Intervalo aceito:
Padrão: |
includeRaiReason |
Opcional. Define se um motivo de segurança para imagens filtradas será incluído na
resposta. O valor padrão é |
includeSafetyAttributes |
Opcional. Indica se as pontuações de segurança de cada imagem na
resposta serão informadas. 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:
|
negativePrompt |
Opcional. Uma descrição do que não é recomendado nas imagens geradas. |
outputOptions |
Opcional. Descreve o formato da imagem de saída em um
objeto |
personGeneration |
Opcional. Permite a geração de imagens de pessoas pelo modelo. Os valores a seguir são compatíveis:
Para edição baseada em máscara, o padrão de |
sampleCount |
Opcional. 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 |
safetySetting |
Opcional. Adiciona um nível de filtro à filtragem de segurança. Os valores a seguir são compatíveis:
O valor padrão é
|
storageUri |
Opcional. O 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 seguintes valores são compatíveis:
O valor padrão é |
outputOptions.compressionQuality |
Opcional. O nível de compactação se o tipo de saída for |
Exemplo de solicitação
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
REGION: a região em que o projeto está localizado. Para mais informações sobre as regiões com suporte, consulte Locais da IA generativa na Vertex AI. -
PROJECT_ID: o ID do projeto do Google Cloud . -
TEXT_PROMPT: Opcional. Um comando de texto para orientar as imagens geradas pelo modelo. Para ter os melhores resultados, use uma descrição da área mascarada e evite comandos de uma só palavra. Por exemplo, use "um corgi fofo" em vez de "corgi". -
B64_BASE_IMAGE: Uma imagem codificada em base64 da imagem que está sendo editada com tamanho de 10 MB ou menos. Para mais informações sobre a codificação em base64, consulte Codificar e decodificar arquivos em base64. -
B64_MASK_IMAGE: Uma imagem de máscara em preto e branco codificada em base64 com tamanho de até 10 MB. -
MASK_DILATION: Opcional. Um valor de ponto flutuante entre 0 e 1, inclusive, que representa a porcentagem da largura da imagem para aumentar a máscara. Usardilationajuda a compensar máscaras imprecisas. Recomendamos um valor de0.01. -
EDIT_STEPS: Opcional. Um número inteiro que representa o número de etapas de amostragem. Um valor mais alto oferece melhor qualidade de imagem, e um valor mais baixo oferece melhor latência.Recomendamos que você siga as etapas
35para começar. Se a qualidade não atender aos seus requisitos, aumente o valor até um limite superior de75. -
SAMPLE_COUNT: Opcional. Um número inteiro que descreve a quantidade de imagens a serem geradas. O intervalo de valores aceito é1-4. O valor padrão é4.
Método HTTP e URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict
Corpo JSON da solicitação:
{
"instances": [
{
"prompt": "TEXT_PROMPT",
"referenceImages": [
{
"referenceType": "REFERENCE_TYPE_RAW",
"referenceId": 1,
"referenceImage": {
"bytesBase64Encoded": "B64_BASE_IMAGE"
}
},
{
"referenceType": "REFERENCE_TYPE_MASK",
"referenceImage": {
"bytesBase64Encoded": "B64_MASK_IMAGE"
},
"maskImageConfig": {
"maskMode": "MASK_MODE_USER_PROVIDED",
"dilation": MASK_DILATION
}
}
]
}
],
"parameters": {
"editConfig": {
"baseSteps": EDIT_STEPS
},
"editMode": "EDIT_MODE_INPAINT_INSERTION",
"sampleCount": SAMPLE_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 abaixo:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
$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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001: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"
}
]
}
IDs de classe
Use os seguintes IDs de classe de objeto para criar automaticamente uma máscara de imagem com base em objetos específicos.
ID da classe (class_) |
Objeto |
|---|---|
| 0 | mochila |
| 1 | guarda-chuva |
| 2 | bolsa |
| 3 | gravata |
| 4 | mala |
| 5 | caso |
| 6 | pássaro |
| 7 | gato |
| 8 | cachorro |
| 9 | cavalo |
| 10 | ovelha |
| 11 | vaca |
| 12 | elefante |
| 13 | urso |
| 14 | zebra |
| 15 | girafa |
| 16 | Outro animal |
| 17 | micro-ondas |
| 18 | radiador |
| 19 | forno |
| 20 | torradeira |
| 21 | tanque de armazenamento |
| 22 | esteira rolante |
| 23 | coletor |
| 24 | Geladeira |
| 25 | máquina lavadora e secadora |
| 26 | ventilador |
| 27 | lava-louças |
| 28 | vaso |
| 29 | banheira |
| 30 | chuveiro |
| 31 | túnel |
| 32 | ponte |
| 33 | cais do píer |
| 34 | barraca |
| 35 | criando |
| 36 | teto |
| 37 | laptop |
| 38 | teclado |
| 39 | rato |
| 40 | controle remoto |
| 41 | celular |
| 42 | televisão |
| 43 | andar |
| 44 | palco |
| 45 | banana |
| 46 | apple |
| 47 | sanduíche |
| 48 | laranja |
| 49 | brócolis |
| 50 | cenoura |
| 51 | cachorro-quente |
| 52 | pizza |
| 53 | rosca |
| 54 | bolo |
| 55 | fruta (outra) |
| 56 | comida (outros) |
| 57 | cadeira (outra) |
| 58 | cadeira |
| 59 | cadeira giratória |
| 60 | fezes |
| 61 | assento |
| 62 | sofá |
| 63 | lixeira |
| 64 | planta em um vaso |
| 65 | criado-mudo |
| 66 | cama |
| 67 | tabela |
| 68 | Mesa de sinuca |
| 69 | barril |
| 70 | mesa |
| 71 | otomano |
| 72 | Guarda-roupa |
| 73 | Berço |
| 74 | cesta |
| 75 | Cômoda |
| 76 | bookshelf |
| 77 | contador (outro) |
| 78 | balcão de banheiro |
| 79 | ilha da cozinha |
| 80 | porta |
| 81 | leve (outro) |
| 82 | lâmpada |
| 83 | sconce |
| 84 | candelabro |
| 85 | espelho |
| 86 | quadro branco |
| 87 | estante |
| 88 | escada |
| 89 | Escada rolante |
| 90 | gabinete |
| 91 | lareira |
| 92 | fogão |
| 93 | máquina de arcade |
| 94 | Cascalho |
| 95 | plataforma |
| 96 | campo de jogos |
| 97 | Railroad |
| 98 | estrada |
| 99 | neve |
| 100 | calçada |
| 101 | pista |
| 102 | relevo |
| 103 | livro |
| 104 | box |
| 105 | relógio |
| 106 | vaso |
| 107 | tesoura |
| 108 | brinquedo (outro) |
| 109 | ursinho de pelúcia |
| 110 | secador |
| 111 | escova de dentes |
| 112 | pintura |
| 113 | poster |
| 114 | Quadro de avisos |
| 115 | garrafa |
| 116 | xícara |
| 117 | taça de vinho |
| 118 | faca |
| 119 | garfo |
| 120 | colher |
| 121 | tigela |
| 122 | bandeja |
| 123 | Exaustor |
| 124 | prato |
| 125 | pessoa |
| 126 | passageiro (outro) |
| 127 | ciclista |
| 128 | Motociclista |
| 129 | papel |
| 130 | poste de luz |
| 131 | barreira de estrada |
| 132 | caixa de e-mails |
| 133 | câmera cctv |
| 134 | caixa de passagem |
| 135 | Sinalização de trânsito |
| 136 | semáforo |
| 137 | hidrante |
| 138 | Parquímetro |
| 139 | banco |
| 140 | Suporte para bicicleta |
| 141 | outdoor |
| 142 | céu |
| 143 | poste |
| 144 | cerca |
| 145 | corrimão |
| 146 | proteção |
| 147 | Mountain Hill |
| 148 | rocha |
| 149 | frisbee |
| 150 | esquis |
| 151 | snowboard |
| 152 | bola esportiva |
| 153 | pipa |
| 154 | taco de beisebol |
| 155 | Luva de beisebol |
| 156 | skate |
| 157 | Prancha de surfe |
| 158 | Raquete de tênis |
| 159 | rede |
| 160 | base |
| 161 | escultura |
| 162 | coluna |
| 163 | fonte |
| 164 | toldo |
| 165 | vestuário |
| 166 | banner |
| 167 | sinalização |
| 168 | cobertor |
| 169 | cortina (outro) |
| 170 | … cortina para box. |
| 171 | pillow |
| 172 | toalha |
| 173 | tapete |
| 174 | vegetação |
| 175 | bicicleta |
| 176 | carro |
| 177 | riquixá automático |
| 178 | motocicleta |
| 179 | avião |
| 180 | ônibus |
| 181 | trem |
| 182 | caminhão |
| 183 | trailer |
| 184 | barco |
| 185 | objeto com rodas lentas |
| 186 | River Lake |
| 187 | mar |
| 188 | água (outro) |
| 189 | piscina |
| 190 | cascata |
| 191 | parede |
| 192 | window |
| 193 | Persiana |
A seguir
- Para mais informações, consulte Imagen na Vertex AI.