Personalizar imágenes

La API Imagen te permite crear imágenes de alta calidad en segundos usando peticiones de texto e imágenes de referencia para guiar la generación de temas o estilos.

Ver la tarjeta del modelo Imagen for Editing and Customization

Modelos admitidos

Modelo Código
Personalización mediante imágenes de referencia (con pocos ejemplos) imagen-3.0-capability-001

Para obtener más información sobre las funciones que admite cada modelo, consulta Modelos de Imagen.

Método HTTP y URL

POST https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/imagen-3.0-capability-001:predict

Sintaxis de ejemplo

Sintaxis para personalizar una imagen a partir de una petición de texto e imágenes de referencia.

Sintaxis

Sintaxis para personalizar una imagen.

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": {
        [...]
    }
}'

Cuerpo de la solicitud de ejemplo:

Esta solicitud es para personalizar a una persona con una imagen de control de malla facial y tres imágenes de referencia.

{
  "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

Consulta los ejemplos para obtener más información sobre la implementación.

Personalizar imágenes

REST

Parámetros
referenceType Enumeración obligatoria:
  • REFERENCE_TYPE_RAW
    • Se necesita una imagen de referencia sin procesar para los casos prácticos de edición.
    • No se necesita una imagen de referencia sin procesar para otros casos prácticos.
    • Como máximo, puede haber una imagen de referencia sin procesar en una solicitud.
    • La imagen de salida tiene el mismo tamaño que la imagen de entrada de referencia sin procesar.
  • REFERENCE_TYPE_MASK
    • Se necesita una imagen de referencia de máscara para los casos prácticos de edición con máscara.
    • No es necesario usar una imagen de referencia de máscara en otros casos prácticos.
    • Si hay una imagen de referencia sin procesar, la imagen de máscara debe tener el mismo tamaño que la imagen de referencia sin procesar.
    • El usuario puede proporcionar su propia máscara o dejar que Imagen la calcule a partir de la imagen de referencia proporcionada.
    • Si la imagen de referencia de la máscara está vacía y maskMode no tiene el valor MASK_MODE_USER_PROVIDED, la máscara se calcula en función de la imagen de referencia sin procesar.
  • REFERENCE_TYPE_CONTROL
    • Si se incluye una imagen de referencia sin procesar, la imagen de control debe tener el mismo tamaño que la imagen de referencia sin procesar.
    • Si la imagen de referencia de control está vacía y enableControlImageComputation tiene el valor true, la imagen de control se calcula a partir de la imagen de referencia sin procesar.
  • REFERENCE_TYPE_SUBJECT
    • El usuario puede proporcionar varias imágenes de referencia con el mismo ID de referencia. Por ejemplo, varias imágenes del mismo tema pueden tener el mismo ID de referencia. Esto podría mejorar la calidad del resultado.
  • REFERENCE_TYPE_STYLE
    • Una imagen de referencia de estilo que el modelo usa para guiar el estilo de la imagen generada.
referenceId Obligatorio integer

El ID de referencia. Usa este ID de referencia en la petición. Por ejemplo, usa [1] para hacer referencia a las imágenes de referencia con referenceId=1 y [2] para hacer referencia a las imágenes de referencia con referenceId=2.
referenceImage.bytesBase64Encoded Obligatorio string

Cadena Base64 de la imagen de referencia codificada.
maskImageConfig.maskMode Enumeración opcional:
  • MASK_MODE_USER_PROVIDED, si la imagen de referencia es una imagen de máscara.
  • MASK_MODE_BACKGROUND para generar automáticamente una máscara mediante la segmentación del fondo.
  • MASK_MODE_FOREGROUND para generar automáticamente una máscara mediante la segmentación del primer plano.
  • MASK_MODE_SEMANTIC para generar automáticamente una máscara mediante la segmentación semántica y la clase de máscara proporcionada.

Se especifica cuando referenceType se define como REFERENCE_TYPE_MASK.
maskImageConfig.dilation
Opcional float. Intervalo: [0, 1]

Porcentaje de la anchura de la imagen en el que se debe dilatar esta máscara.

Se especifica cuando referenceType se define como REFERENCE_TYPE_MASK.
maskImageConfig.maskClasses
Opcional list[Integer].

Clases de máscara para el modo MASK_MODE_SEMANTIC.

Se especifica cuando referenceType se define como REFERENCE_TYPE_MASK.
controlImageConfig.controlType
Enumeración obligatoria:
  • CONTROL_TYPE_FACE_MESH para la malla facial (personalización de la persona).
  • CONTROL_TYPE_CANNY para bordes definidos.
  • CONTROL_TYPE_SCRIBBLE para garabatear.

Se especifica cuando referenceType se define como REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
Opcional bool.
Valor predeterminado: false.

  • Selecciona false si proporcionas tu propia imagen de control.
  • Introduzca true si quiere que Imagen calcule la imagen de control a partir de la imagen de referencia.

Se especifica cuando referenceType se define como REFERENCE_TYPE_CONTROL.
language

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

El código de idioma que corresponde al idioma de tu petición de texto. Se admiten los siguientes valores:

  • auto: detección automática. Si Imagen detecta un idioma admitido, la petición y una petición negativa opcional se traducen al inglés. Si el idioma detectado no es compatible, Imagen usa el texto de entrada tal cual, lo que puede dar lugar a un resultado inesperado. No se devuelve ningún código de error.
  • en: inglés (si se omite, se usa el valor predeterminado)
  • es: español
  • hi: hindi
  • ja: japonés
  • ko: coreano
  • pt: portugués
  • zh-TW: chino (tradicional)
  • zh o zh-CN: chino (simplificado)
subjectImageConfig.subjectDescription
Obligatorio string.

Breve descripción del tema de la imagen. Por ejemplo, una mujer con el pelo corto y castaño.

Se especifica cuando referenceType se define como REFERENCE_TYPE_SUBJECT.
subjectImageConfig.subjectType
Enumeración obligatoria:
  • SUBJECT_TYPE_PERSON: tipo de persona.
  • SUBJECT_TYPE_ANIMAL: tipo de animal.
  • SUBJECT_TYPE_PRODUCT: tipo de asunto del producto.
  • SUBJECT_TYPE_DEFAULT: tipo de asunto predeterminado.

Se especifica cuando referenceType se define como REFERENCE_TYPE_SUBJECT.
styleImageConfig.styleDescription
Opcional string.
Una breve descripción del estilo.

Se especifica cuando referenceType se define como REFERENCE_TYPE_STYLE.

Respuesta

Cuerpo de la respuesta de la solicitud REST.

Parámetro
predictions

Matriz de objetos VisionGenerativeModelResult, uno por cada sampleCount solicitado. Si la IA responsable filtra alguna imagen, no se incluirá.

Objeto de resultado del modelo generativo de Vision

Información sobre el resultado del modelo.

Parámetro
bytesBase64Encoded

Imagen generada codificada en base64. No está presente si la imagen de salida no ha superado los filtros de IA responsable.

mimeType

El tipo de imagen generada. No se incluye si la imagen de salida no ha superado los filtros de IA responsable.

Ejemplos

En los siguientes ejemplos se muestra cómo usar el modelo Imagen para personalizar imágenes.

Personalizar imágenes

REST

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • PROJECT_ID: tu Google Cloud ID de proyecto.
  • LOCATION: la región de tu proyecto. Por ejemplo, us-central1, europe-west2 o asia-northeast3. Para ver una lista de las regiones disponibles, consulta Ubicaciones de la IA generativa en Vertex AI.
  • TEXT_PROMPT: La petición de texto indica qué imágenes genera el modelo. Para usar la personalización de Imagen 3, incluye el referenceId de la imagen o las imágenes de referencia que proporciones en el formato [$referenceId]. Por ejemplo:
    • La siguiente petición de texto incluye dos imágenes de referencia con "referenceId": 1. Ambas imágenes tienen una descripción opcional de "subjectDescription": "man with short hair": Crea una imagen de un hombre con el pelo corto que se ajuste a la descripción: un boceto a lápiz de un retrato de cuerpo entero de un man with short hair [1] con un dibujo de trama cruzada, un dibujo de trama de un retrato con lápices 6B y de grafito, fondo blanco, dibujo a lápiz, alta calidad, trazo de lápiz, mirando a la cámara, ojos humanos naturales
  • "referenceId": ID de la imagen de referencia o de una serie de imágenes de referencia que corresponden al mismo tema o estilo. En este ejemplo, las dos imágenes de referencia son de la misma persona, por lo que comparten el mismo referenceId (1).
  • BASE64_REFERENCE_IMAGE: una imagen de referencia para guiar la generación de imágenes. La imagen debe especificarse como una cadena de bytes codificada en Base64.
  • SUBJECT_DESCRIPTION: opcional. Una descripción de texto de la imagen de referencia que puedes usar en el campo prompt. Por ejemplo:
          "prompt": "a full-body portrait of a man with short hair [1] with hatch-cross
          drawing",
          [...],
          "subjectDescription": "man with short hair"
        
  • IMAGE_COUNT: número de imágenes generadas. Valores enteros aceptados: del 1 al 4. Valor predeterminado: 4.

Método HTTP y URL:

POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagen-3.0-capability-001:predict

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente 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
La siguiente respuesta de ejemplo corresponde a una solicitud con "sampleCount": 2. La respuesta devuelve dos objetos de predicción con los bytes de la imagen generada codificados en Base64.
{
  "predictions": [
    {
      "bytesBase64Encoded": "BASE64_IMG_BYTES",
      "mimeType": "image/png"
    },
    {
      "mimeType": "image/png",
      "bytesBase64Encoded": "BASE64_IMG_BYTES"
    }
  ]
}

IDs de clase

Usa los siguientes IDs de clase de objeto para crear automáticamente una máscara de imagen basada en objetos específicos.

ID de clase (class_id) Objeto
0 mochila
1 paraguas
2 bolsa
3 empate
4 maleta
5 funda
6 pájaro
7 gato
8 perro
9 caballo
10 oveja
11 vaca
12 elefante
13 oso
14 cebra
15 jirafa
16 Animal (otro)
17 microondas
18 radiador
19 horno
20 tostadora
21 depósito de almacenamiento
22 Cinta transportadora
23 fregadero
24 frigorífico
25 lavadora secadora
26 ventilador
27 lavavajillas
28 inodoro
29 bañera
30 ducha
31 túnel
32 puente
33 muelle
34 tienda de campaña
35 compilando
36 techo
37 portátil
38 teclado
39 ratón
40 remoto
41 teléfono móvil
42 televisión
43 suelo
44 fase
45 plátano
46 manzana
47 sándwich
48 naranja
49 brócoli
50 acento circunflejo
51 perrito caliente
52 pizza
53 rosquilla
54 tarta
55 fruta (otro)
56 Comida (otros)
57 silla (otro)
58 sillón
59 silla giratoria
60 taburete
61 licencia
62 sofá
63 papelera
64 planta en maceta
65 Mesita de noche
66 cama
67 tabla
68 Mesa de billar
69 cañón
70 escritorio
71 otomana
72 armario
73 cuna
74 canasta
75 cómoda
76 estantería
77 Contador (otro)
78 encimera de baño
79 Isla de cocina
80 puerta
81 Luz (otro)
82 lámpara
17. aplique
84 lámpara de araña
85 proyectar
86 pizarra
87 estantería
88 escaleras
89 escalera mecánica
90 armario
91 chimenea
92 cocina de fogones
93 máquina recreativa
94 grava
95 plataforma
96 campo de juego
97 ferrocarril
98 carretera
99 snow
100 pavimento de acera
101 pista
102 relieve
103 libro
104 de correos
105 reloj
106 jarrón
107 tijeras
108 Juguete (otro)
109 osito de peluche
110 secador de pelo
111 cepillo de dientes
112 cuadro
113 Póster
114 tablón de anuncios
115 botella
116 copa
117 Copa de vino
118 cuchillo
119 bifurcación
120 cuchara
121 bol
122 bandeja
123 Campana extractora
124 plato
125 persona
126 Rider (otro)
127 Ciclista
128 motociclista
129 documento
130 farola
131 barrera de carretera
132 buzón
133 cámara de circuito cerrado de televisión
134 Caja de conexiones
135 Señal de tráfico
136 semáforo
137 boca de incendios
138 Parquímetro
139 banco
140 Portabicicletas
141 billboard
142 sky
143 palo
144 valla
145 barandilla
146 barandilla
147 montaña
148 rock
149 frisbi
150 esquís
151 tabla de snowboard
152 Pelota deportiva
153 cometa
154 bate de béisbol
155 Guante de béisbol
156 monopatín
157 tabla de surf
158 raqueta de tenis
159 net
160 base
161 escultura
162 columna
163 fuente
164 toldo
165 ropa
166 banner
167 bandera
168 manta
169 cortina (otro)
170 Cortina de ducha
171 almohada
172 toalla
173 alfombrilla
174 vegetación
175 bicicleta
176 coche
177 autorickshaw
178 motocicleta
179 avión
180 autobús
181 train
182 camión
183 Tráiler
184 barco
185 objeto lento con ruedas
186 lago fluvial
187 ce
188 Agua (otra)
189 Piscina
190 Cascada
191 pared
192 ventana
193 Persiana

Siguientes pasos