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:
|
referenceId |
Obligatorio integerEs 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 stringEs una cadena en Base64 para la imagen de referencia codificada. |
maskImageConfig.maskMode |
Enumeración opcional:
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.Clases de máscaras para el modo MASK_MODE_SEMANTIC.Se especifica cuando referenceType se establece como REFERENCE_TYPE_MASK.
|
controlImageConfig.controlType |
Enumeración obligatoria:
Se especifica cuando referenceType se establece como REFERENCE_TYPE_CONTROL.
|
controlImageConfig.enableControlImageComputation |
bool opcional.Valor predeterminado: false.
Se especifica cuando referenceType se establece como REFERENCE_TYPE_CONTROL.
|
language |
Opcional: Es el código de idioma que corresponde a tu idioma de la instrucción de texto. Se admiten los siguientes valores:
en: Inglés (si se omite, se usa el valor predeterminado)
|
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:
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 |
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, haz los siguientes reemplazos:
- PROJECT_ID: Es el Google Cloud ID del proyecto.
- LOCATION: La región del proyecto. Por ejemplo,
us-central1,europe-west2oasia-northeast3. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. Cuando se usa un extremo de API regional, la región de la URL del extremo determina dónde se procesa la solicitud, y esteLOCATIONen la ruta de acceso del recurso se ignora si hay un conflicto. - TEXT_PROMPT: El mensaje de texto guía qué imágenes genera el modelo. Para usar la personalización de Imagen 3, incluye el
referenceIdde 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 a lápiz de un retrato de cuerpo entero de un man with short hair [1] con un dibujo de sombreado cruzado, un dibujo de sombreado de un 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
- El siguiente mensaje de texto es para una solicitud que tiene dos imágenes de referencia con
"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 mismoreferenceId(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 Es 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
"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_) |
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?
- Para obtener más información, consulta Imagen en Vertex AI.