Edite imagens

O Imagen permite-lhe editar imagens em segundos, usando comandos de texto, máscaras e imagens existentes para orientar as edições.

Veja o cartão do modelo Imagen para edição e personalização

Versões de modelos suportadas

A API Imagen suporta os seguintes modelos:

  • imagen-3.0-capability-001

Para mais informações sobre as funcionalidades suportadas pelo modelo, consulte os modelos Imagen.

Pedido 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

string

Opcional. O comando de texto para a imagem. Se não for especificado um prompt, o modelo preenche o conteúdo a partir do contexto da imagem.

referenceImages

Lista de ReferenceImage objetos.

Obrigatório. Para a edição de máscaras, têm de ser especificadas exatamente duas imagens de referência, uma com REFERENCE_TYPE_RAW e outra com REFERENCE_TYPE_MASK.

referenceImages objeto

O objeto referenceImages descreve os recursos de imagens para edição com o Imagen.

Parâmetros
referenceType

string

Obrigatório. O tipo de imagem de referência. Uma das seguintes opções:

  • REFERENCE_TYPE_RAW: a imagem base a editar.
  • REFERENCE_TYPE_MASK: a imagem da máscara, cujos valores diferentes de zero indicam onde editar a imagem base.
referenceId

integer

Obrigatório. Um identificador exclusivo da imagem de referência. Não é usado para a edição com máscara.

referenceImage.bytesBase64Encoded

string

Obrigatório. Bytes de imagem codificados em Base64. Aceita ficheiros PNG, JPEG, GIF e BMP. O tamanho máximo é de 20 MB após a transcodificação para PNG. Se fornecer uma imagem de máscara, esta tem de ter as mesmas dimensões que a imagem base.

maskImageConfig.maskMode

string

Obrigatório quando referenceType é REFERENCE_TYPE_MASK. Tem de ser um dos seguintes:

  • MASK_MODE_USER_PROVIDED: use a máscara de referenceImage.bytesBase64Encoded.
  • MASK_MODE_BACKGROUND: use uma máscara gerada automaticamente a partir da segmentação de fundo.
  • MASK_MODE_FOREGROUND: use uma máscara gerada automaticamente a partir da segmentação em primeiro plano.
  • MASK_MODE_SEMANTIC: Use uma máscara gerada automaticamente a partir da segmentação semântica com a classe de máscara fornecida.
maskImageConfig.dilation

float

Opcional. Intervalo: [0, 1]. A percentagem da largura da imagem para dilatar (aumentar) a máscara. Isto pode ajudar a compensar as máscaras imprecisas. Para melhores resultados, recomendamos as seguintes definições. Recomendamos os valores indicados:maskImageConfig.maskMode

  • EDIT_MODE_INPAINT_INSERTION: 0.01
  • EDIT_MODE_INPAINT_REMOVAL: 0.01
  • EDIT_MODE_BGSWAP: 0.0
  • EDIT_MODE_OUTPAINT: 0.01-0.03
maskImageConfig.maskClasses

list[integer]

Opcional. Oculte classes para o modo MASK_MODE_SEMANTIC.

Parâmetros

Parâmetros
addWatermark

bool

Opcional. Adicionar uma marca de água invisível às imagens geradas.

O valor predefinido é true.

baseSteps

integer

Opcional. O número de passos de amostragem. Um valor mais elevado tem uma melhor qualidade de imagem, enquanto um valor mais baixo tem uma melhor latência. A predefinição é 75.

Para áreas de máscara mais pequenas ou para os modos de remoção ou inserção, use os passos 16 - 35 para reduzir a latência e, ao mesmo tempo, devolver um nível de qualidade semelhante.

editMode

string

Obrigatório para a edição de máscaras.

Uma enumeração com um dos seguintes valores:

  • EDIT_MODE_INPAINT_REMOVAL: remover objetos e preencher o fundo da imagem na área da máscara.
  • EDIT_MODE_INPAINT_INSERTION: adicionar objetos a partir de um comando específico.
  • EDIT_MODE_BGSWAP: adicione conteúdo de fundo na área da máscara, enquanto preserva o conteúdo do objeto na área sem máscara. Útil para a edição de produtos.
  • EDIT_MODE_OUTPAINT: estende a imagem para a área da máscara. Ao contrário da funcionalidade EDIT_MODE_BGSWAP, esta vai gerar a conclusão de objetos para objetos parciais no limite da imagem.
guidanceScale

integer

Opcional. Controla o grau de adesão do modelo ao comando de texto. Valores grandes aumentam a saída e o alinhamento dos comandos, mas podem comprometer a qualidade da imagem.

Intervalo aceite: 0500

Predefinição: 60 para o modo de inserção, 75 para remove, bgswap e outpaint.

includeRaiReason

boolean

Opcional. Se deve incluir um motivo de segurança para imagens filtradas na resposta. O valor predefinido é false.

includeSafetyAttributes

boolean

Opcional. Se deve comunicar as classificações de segurança de cada imagem na resposta. O valor predefinido é false.

language

string

Opcional. O código do idioma que corresponde ao idioma do comando de texto. Os seguintes valores são suportados:

  • "auto": Deteção automática. Se o Imagen detetar um idioma suportado, o comando e um comando negativo opcional são traduzidos para inglês. Se o idioma detetado não for suportado, o Imagen usa o texto de entrada na íntegra, o que pode resultar num resultado inesperado. Não é devolvido nenhum código de erro.
  • "en": inglês (se for omitido, o valor predefinido)
  • "zh" ou "zh-CN": chinês (simplificado)
  • "zh-TW": chinês (tradicional)
  • "hi": hindi
  • "ja": japonês
  • "ko": coreano
  • "pt": português
  • "es": espanhol

language é suportado apenas por imagen-3.0-capability-001.

negativePrompt

string

Opcional. Uma descrição do que deve ser desencorajado nas imagens geradas.

outputOptions

outputOptions

Opcional. Descreve o formato da imagem de saída num objeto outputOptions.

personGeneration

string

Opcional. Permitir a geração de pessoas pelo modelo. Os seguintes valores são suportados:

  • "dont_allow": não permitir a inclusão de pessoas ou caras em imagens.
  • "allow_adult": permitir a geração de conteúdo apenas para adultos.
  • "allow_all": permitir a geração de pessoas de todas as idades.

Para a edição baseada em máscaras, a predefinição de personGeneration é allow_adult. Para a edição sem máscara, personGeneration é predefinido como allow_adult.

sampleCount

integer

Opcional. O número de imagens a gerar. O valor predefinido é 4.

seed

Uint32

Opcional. A semente aleatória para a geração de imagens. Esta opção não está disponível quando addWatermark está definido como true.

safetySetting

string

Opcional. Adiciona um nível de filtro à filtragem de segurança. Os seguintes valores são suportados:

  • "block_low_and_above": nível de filtragem mais forte, bloqueio mais rigoroso. Valor descontinuado: "block_most".
  • "block_medium_and_above": Bloquear alguns comandos e respostas problemáticos. Valor descontinuado: "block_some".
  • "block_only_high": reduz o número de pedidos bloqueados devido a filtros de segurança. Pode aumentar o conteúdo censurado gerado pelo Imagen. Valor descontinuado: "block_few".
  • "block_none": Bloquear muito poucos comandos e respostas problemáticas. O acesso a esta funcionalidade está restrito. Valor do campo anterior: "block_fewest".

O valor predefinido é "block_medium_and_above".

safetySetting é suportado apenas por imagen-3.0-capability-001.

storageUri

string

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

string

Opcional. O formato de imagem no qual a saída deve ser guardada. Os seguintes valores são suportados:

  • "image/png": guarde como imagem PNG
  • "image/jpeg": guarde como imagem JPEG

O valor predefinido é "image/png".

outputOptions.compressionQuality

integer

Opcional. O nível de compressão se o tipo de saída for "image/jpeg". Os valores aceites são 0 a 100. O valor predefinido é 75.

Exemplo de pedido

REST

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • REGION: a região onde o seu projeto está localizado. Para mais informações sobre as regiões suportadas, consulte o artigo IA generativa nas localizações do Vertex AI.
  • PROJECT_ID: o ID do seu projeto Google Cloud .
  • TEXT_PROMPT: Opcional. Um comando de texto para orientar as imagens que o modelo gera. Para os melhores resultados, use uma descrição da área ocultada e evite comandos de uma única palavra. Por exemplo, use "um corgi fofo" em vez de "corgi".
  • B64_BASE_IMAGE: Uma imagem codificada em base64 da imagem que está a ser editada com um tamanho de 10 MB ou inferior. Para mais informações sobre a codificação base64, consulte o artigo Codifique e descodifique ficheiros em base64.
  • B64_MASK_IMAGE: Uma imagem de máscara a preto e branco codificada em base64 com um tamanho igual ou inferior a 10 MB.
  • MASK_DILATION: Opcional. Um valor de vírgula flutuante entre 0 e 1, inclusive, que representa a percentagem da largura da imagem para aumentar a máscara. A utilização de dilation ajuda a compensar as máscaras imprecisas. Recomendamos um valor de 0.01.
  • EDIT_STEPS: Opcional. Um número inteiro que representa o número de passos de amostragem. Um valor mais elevado oferece uma melhor qualidade de imagem, enquanto um valor mais baixo oferece uma melhor latência.

    Recomendamos que experimente os passos 35 para começar. Se a qualidade não cumprir os seus requisitos, recomendamos que aumente o valor até um limite máximo de 75.

  • SAMPLE_COUNT: Opcional. Um número inteiro que descreve o número de imagens a gerar. O intervalo de valores aceite é 1-4. O valor predefinido é 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 do pedido:

{
  "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 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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/imagen-3.0-capability-001:predict" | Select-Object -Expand Content
A seguinte resposta de exemplo destina-se a um pedido com "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_id) Objeto
0 mochila
1 chapéu-de-chuva
2 saco
3 empatar
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 beisebol
155 luva de beisebol
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?