Editar imagens

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

string

Opcional. O comando de texto para a imagem. Se um prompt não for especificado, o modelo vai preencher o conteúdo com base no contexto da imagem.

referenceImages

Lista de objetos ReferenceImage.

Obrigatório. Para edição de máscara, é preciso especificar exatamente duas imagens de referência, uma com REFERENCE_TYPE_RAW e outra com REFERENCE_TYPE_MASK.

Objeto referenceImages

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

Parâmetros
referenceType

string

Obrigatório. O tipo de imagem de referência. Opções:

  • REFERENCE_TYPE_RAW: a imagem base a ser editada.
  • REFERENCE_TYPE_MASK: a imagem de máscara com valores diferentes de zero que indicam onde editar a imagem de base.
referenceId

integer

Obrigatório. Um identificador exclusivo da imagem de referência. Não é usado para edição mascarada.

referenceImage.bytesBase64Encoded

string

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

string

Obrigatório quando referenceType é REFERENCE_TYPE_MASK. Deve atender a uma das seguintes condições:

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

float

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.maskMode e os valores listados:

  • 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. Mascare classes para o modo MASK_MODE_SEMANTIC.

Parâmetros

Parâmetros
addWatermark

bool

Opcional. Adicione uma marca-d'água invisível às imagens geradas.

O valor padrão é true.

baseSteps

integer

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 é 75.

Para áreas de máscara menores ou para os modos de remoção ou inserção, use as etapas 16 - 35 para reduzir a latência e retornar um nível de qualidade semelhante.

editMode

string

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

Uma enumeração com um dos seguintes valores:

  • EDIT_MODE_INPAINT_REMOVAL: remove objetos e preenche o plano de fundo da imagem na área da máscara.
  • EDIT_MODE_INPAINT_INSERTION: adiciona objetos de um comando específico.
  • EDIT_MODE_BGSWAP: adiciona conteúdo de plano de fundo na área da máscara preservando o conteúdo do objeto na área sem máscara. Útil para edição de produtos.
  • EDIT_MODE_OUTPAINT: estende a imagem para a área da máscara. Ao contrário de EDIT_MODE_BGSWAP, isso vai gerar conclusão de objetos para objetos parciais no limite da imagem.
guidanceScale

integer

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: 0 - 500

Padrão: 60 para o modo de inserção, 75 para remover, bgswap, outpaint.

includeRaiReason

boolean

Opcional. Define se um motivo de segurança para imagens filtradas será incluído na resposta. O valor padrão é false.

includeSafetyAttributes

boolean

Opcional. Indica se as pontuações de segurança de cada imagem na resposta serão informadas. O valor padrão é false.

language

string

Opcional. O código do idioma correspondente ao idioma do comando de texto. Os valores a seguir são compatíveis:

  • "auto": detecção automática. Se o Imagen detectar um idioma compatível, o comando e um comando negativo opcional serão traduzidos para o inglês. Se o idioma detectado não for compatível, o Imagen vai usar o texto de entrada sem alterações, o que pode resultar em uma saída inesperada. Nenhum código de erro é retornado.
  • "en": inglês (se omitido, o valor padrão)
  • "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 é compatível apenas com imagen-3.0-capability-001.

negativePrompt

string

Opcional. Uma descrição do que não é recomendado nas imagens geradas.

outputOptions

outputOptions

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

personGeneration

string

Opcional. Permite a geração de imagens de pessoas pelo modelo. Os valores a seguir são compatíveis:

  • "dont_allow": desativa a inclusão de pessoas ou rostos em imagens.
  • "allow_adult": permite a geração somente de adultos.
  • "allow_all": permite a geração de pessoas de todas as idades.

Para edição baseada em máscara, o padrão de personGeneration é allow_adult. Para edição sem máscara, o padrão de personGeneration é allow_adult.

sampleCount

integer

Opcional. O número de imagens a serem geradas. O valor padrão é 4.

seed

Uint32

Opcional. A semente aleatória para geração de imagens. Essa 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 valores a seguir são compatíveis:

  • "block_low_and_above": nível de filtragem mais forte, bloqueio mais rigoroso. Valor descontinuado: "block_most".
  • "block_medium_and_above": bloqueia alguns comandos e respostas problemáticos. Valor descontinuado: "block_some".
  • "block_only_high": reduz o número de solicitações bloqueadas devido aos filtros de segurança. Pode aumentar o conteúdo censurável gerado pelo Imagen. Valor descontinuado: "block_few".
  • "block_none": bloqueia poucos comandos e respostas problemáticos. O acesso a este recurso é restrito. Valor do campo anterior: "block_fewest".

O valor padrão é "block_medium_and_above".

safetySetting é compatível apenas com 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 em que a saída será salva. Os seguintes valores são compatíveis:

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

O valor padrão é "image/png".

outputOptions.compressionQuality

integer

Opcional. O nível de compactação se o tipo de saída for "image/jpeg". Os valores aceitos são de 0 a 100. O valor padrão é 75.

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. Usar dilation ajuda a compensar máscaras imprecisas. Recomendamos um valor de 0.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 35 para começar. Se a qualidade não atender aos seus requisitos, aumente o valor até um limite superior de 75.

  • 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
O exemplo de resposta a seguir é para uma solicitação com "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_id) 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