Personaliza imágenes

La API de Imagen te permite crear imágenes de alta calidad en segundos, con instrucciones de texto y imágenes de referencia para guiar la generación de temas o estilos.

Consulta la tarjeta del modelo de Imagen for Editing and Customization

Modelos compatibles

Modelo Código
Personalización con imágenes de referencia (aprendizaje 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

Ejemplo de sintaxis

Sintaxis para personalizar una imagen a partir de una instrucción de texto y de 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 muestra:

Esta solicitud es para la personalización de personas 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 ejemplos para obtener detalles sobre la implementación.

Personaliza imágenes

REST

Parámetros
referenceType Enumeración obligatoria:
  • REFERENCE_TYPE_RAW
    • Se requiere una imagen de referencia sin procesar para los casos de uso de edición.
    • No se necesita una imagen de referencia sin procesar para otros casos de uso.
    • En una solicitud, existe como máximo una imagen de referencia sin procesar.
    • La imagen de salida tiene el mismo tamaño que la imagen de entrada de referencia sin procesar.
  • REFERENCE_TYPE_MASK
    • Se requiere una imagen de referencia de la máscara para los casos de uso de edición enmascarada.
    • No se requiere una imagen de referencia de máscara para otros casos de uso.
    • Si hay una imagen de referencia sin procesar, la imagen de la 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 está configurado como MASK_MODE_USER_PROVIDED, la máscara se calcula en función de la imagen de referencia sin procesar.
  • REFERENCE_TYPE_CONTROL
    • Si hay 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 se establece en true, la imagen de control se calcula en función 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
    • Es una imagen de referencia de estilo que el modelo usa para guiar el estilo de la imagen generada.
referenceId Obligatorio integer

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

Es una cadena en Base64 para 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 con la segmentación de fondo
  • MASK_MODE_FOREGROUND para generar automáticamente una máscara con la segmentación de primer plano.
  • MASK_MODE_SEMANTIC, para generar automáticamente una máscara con la segmentación semántica y la clase de máscara determinada

Se especifica cuando referenceType se establece como REFERENCE_TYPE_MASK.
maskImageConfig.dilation
float opcional. Rango: [0, 1]

Es el porcentaje del ancho de la imagen por el que se dilatará esta máscara.

Se especifica cuando referenceType se establece como REFERENCE_TYPE_MASK.
maskImageConfig.maskClasses
list[Integer] opcional.

Máscara de clases para el modo MASK_MODE_SEMANTIC.

Se especifica cuando referenceType se establece 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 nítidos.
  • CONTROL_TYPE_SCRIBBLE para hacer un garabato.

Se especifica cuando referenceType se establece como REFERENCE_TYPE_CONTROL.
controlImageConfig.enableControlImageComputation
bool opcional.
Valor predeterminado: false

  • Se debe establecer en false si proporcionas tu propia imagen de control.
  • Se establece en true si deseas que Imagen calcule la imagen de control a partir de la imagen de referencia.

Se especifica cuando referenceType se establece como REFERENCE_TYPE_CONTROL.
language

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

Es el código de idioma que corresponde a tu idioma de la instrucción de texto. Se admiten los siguientes valores:

  • auto: Detección automática Si Imagen detecta un idioma admitido, la instrucción y una instrucció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 podría generar 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
Se requiere string.

Es una breve descripción del sujeto en la imagen. Por ejemplo, una mujer con cabello castaño corto.

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

Se especifica cuando referenceType se establece como REFERENCE_TYPE_SUBJECT.
styleImageConfig.styleDescription
string opcional.
Es una descripción breve del estilo.

Se especifica cuando referenceType se establece como REFERENCE_TYPE_STYLE.

Respuesta

El cuerpo de la respuesta de la solicitud de REST.

Parámetro
predictions

Un array de objetos VisionGenerativeModelResult, uno para cada sampleCount solicitado. Si la IA responsable filtra alguna imagen, no se incluyen.

Objeto del resultado del modelo generativo de visión

Objeto del resultado del modelo generativo de visión

Parámetro
bytesBase64Encoded

La imagen generada codificada en base64. No está presente si la imagen de salida no pasó los filtros de IA responsable.

mimeType

Es el tipo de la imagen generada. No está presente si la imagen de salida no pasó los filtros de IA responsable.

Ejemplos

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

Personaliza imágenes

REST

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El Google Cloud ID del proyecto.
  • LOCATION: La región del proyecto. Por ejemplo, us-central1, europe-west2 o asia-northeast3. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI.
  • TEXT_PROMPT: El mensaje de texto guía 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:
    • El siguiente mensaje de texto es para una solicitud que tiene 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 cabello corto que coincida con la siguiente descripción: Un boceto de estilo lápiz de un retrato de cuerpo completo de un man with short hair [1] con dibujo de sombreado cruzado, dibujo de sombreado de retrato con lápices de grafito y 6B, fondo blanco, dibujo a lápiz, alta calidad, trazo de lápiz, mirando a la cámara, ojos humanos naturales
  • "referenceId": Es el ID de la imagen de referencia o el ID 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: Es 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: La cantidad de imágenes generadas. Valores de números enteros aceptados: de 1 a 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 muestra es para una solicitud con "sampleCount": 2. La respuesta muestra dos objetos de predicción, con los bytes de imagen generados 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 corbata
4 maleta
5 caso
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 tanque de almacenamiento
22 cinta transportadora
23 lavabo
24 refrigerador
25 lavadora/secadora
26 ventilador
27 lavavajillas
28 baño
29 bañera
30 ducha
31 túnel
32 puente
33 muelle
34 carpa
35 edificio
36 techo
37 laptop
38 teclado
39 ratón
40 remoto
41 teléfono celular
42 televisión
43 piso
44 etapa
45 banana
46 apple
47 emparedado
48 naranja
49 brócoli
50 zanahoria
51 perro caliente
52 pizza
53 rosquilla
54 pastel
55 fruta (otro)
56 comida (otro)
57 silla (otro)
58 sillón
59 silla giratoria
60 banqueta
61 asiento
62 sofá
63 papelera
64 planta en maceta
65 mesita de noche
66 cama
67 tabla
68 mesa de billar
69 barril
70 escritorio
71 otomana
72 ropero
73 cuna
74 cesta
75 cómoda
76 biblioteca
77 mesada (otro)
78 mesada de baño
79 isla de cocina
80 puerta
81 luz (otro)
82 lámpara
83 aplique
84 candelabro
85 espejo
86 pizarra
87 estantería
88 escaleras
89 escalera mecánica
90 gabinete
91 chimenea
92 estufa
93 máquina de arcade
94 grava
95 plataforma
96 campo de juego
97 ferrocarril
98 ruta
99 nieve
100 pavimento en las aceras
101 pista
102 relieve
103 libro
104 caja
105 reloj
106 florero
107 tijeras
108 juguete (otro)
109 oso de peluche
110 secador de cabello
111 cepillo de dientes
112 pintura
113 póster
114 cartelera de anuncios
115 botella
116 taza
117 copa de vino
118 cuchillo
119 tenedor
120 cuchara
121 bol
122 bandeja
123 campana extractora
124 plato
125 persona
126 pasajero (otro)
127 ciclista
128 motociclista
129 papel
130 farola
131 barrera vial
132 buzón
133 cámara de cctv
134 caja de conexión
135 señal de tráfico
136 semáforo
137 hidrante
138 parquímetro
139 banca
140 soporte para bicicletas
141 cartel
142 cielo
143 poste
144 cerca
145 barandilla
146 barrera
147 colina de montaña
148 piedra
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 patineta
157 tabla de surf
158 raqueta de tenis
159 red
160 base
161 escultura
162 columna
163 fuente
164 toldo
165 indumentaria
166 banner
167 bandera
168 manta
169 cortina (otro)
170 cortina de baño
171 almohada
172 toalla
173 alfombra
174 vegetación
175 bicicleta
176 auto
177 mototaxi
178 motocicleta
179 avión
180 autobús
181 tren
182 camión
183 remolque
184 barco
185 objeto con ruedas de movimiento lento
186 lago de río
187 mar
188 agua (otro)
189 piscina
190 cascada
191 pared
192 ventana
193 persiana

¿Qué sigue?