Personalize imagens

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:
  • REFERENCE_TYPE_RAW
    • É necessária uma imagem de referência não processada para exemplos de utilização de edição.
    • Não é necessária uma imagem de referência não processada para outros exemplos de utilização.
    • Existe, no máximo, uma imagem de referência não processada num pedido.
    • A imagem de saída tem o mesmo tamanho que a imagem de entrada de referência não processada.
  • REFERENCE_TYPE_MASK
    • É necessária uma imagem de referência da máscara para exemplos de utilização de edição com máscara.
    • Não é necessária uma imagem de referência da máscara para outros exemplos de utilização.
    • Se estiver presente uma imagem de referência não processada, a imagem da máscara tem de ter o mesmo tamanho que a imagem de referência não processada.
    • O utilizador pode fornecer a sua própria máscara ou permitir que o Imagen a calcule a partir da imagem de referência fornecida.
    • Se a imagem de referência da máscara estiver vazia e maskMode não estiver definido como MASK_MODE_USER_PROVIDED, a máscara é calculada com base na imagem de referência não processada.
  • REFERENCE_TYPE_CONTROL
    • Se a imagem de referência não processada estiver presente, a imagem de controlo tem de ter o mesmo tamanho que a imagem de referência não processada.
    • Se a imagem de referência de controlo estiver vazia e enableControlImageComputation estiver definido como true, a imagem de controlo é calculada com base na imagem de referência não processada.
  • REFERENCE_TYPE_SUBJECT
    • O utilizador pode fornecer várias imagens de referência com o mesmo ID de referência. Por exemplo, várias imagens do mesmo objeto podem ter o mesmo ID de referência. Isto pode melhorar potencialmente a qualidade do resultado.
  • REFERENCE_TYPE_STYLE
    • Uma imagem de referência de estilo que o modelo usa para orientar o estilo da imagem gerada.
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:
  • MASK_MODE_USER_PROVIDED, se a imagem de referência for uma imagem de máscara.
  • MASK_MODE_BACKGROUND para gerar automaticamente uma máscara através da segmentação do fundo.
  • MASK_MODE_FOREGROUND para gerar automaticamente uma máscara através da segmentação do primeiro plano.
  • MASK_MODE_SEMANTIC, para gerar automaticamente uma máscara através da segmentação semântica e da classe de máscara fornecida.

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:
  • CONTROL_TYPE_FACE_MESH para a malha facial (personalização de pessoas).
  • CONTROL_TYPE_CANNY para detetar contornos.
  • CONTROL_TYPE_SCRIBBLE para rabiscar.

Especificado quando referenceType está definido como REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
Opcional bool.
Predefinição: false.

  • Defina como false se fornecer a sua própria imagem de controlo.
  • Defina como true se quiser permitir que o Imagen calcule a imagem de controlo a partir da imagem de referência.

Especificado quando referenceType está definido como REFERENCE_TYPE_CONTROL.
language

Opcional: string (imagen-3.0-capability-001, imagen-3.0.generate-001 e imagegeneration@006 apenas)

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)
  • es: espanhol
  • hi: hindi
  • ja: japonês
  • ko: coreano
  • pt: português
  • zh-TW: chinês (tradicional)
  • zh ou zh-CN: chinês (simplificado)
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:
  • SUBJECT_TYPE_PERSON: tipo de pessoa em causa.
  • SUBJECT_TYPE_ANIMAL: tipo de assunto animal.
  • SUBJECT_TYPE_PRODUCT: tipo de assunto do produto.
  • SUBJECT_TYPE_DEFAULT: tipo de assunto predefinido.

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 VisionGenerativeModelResult, um para cada sampleCount pedido. Se alguma imagem for filtrada pela IA responsável, não é incluída.

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 ou asia-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
  • "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 mesmo referenceId (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
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 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?