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 de modelo de Imagen para edición y personalización
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 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:
|
referenceId |
Obligatorio integerEl 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 stringCadena Base64 de la imagen de referencia codificada. |
maskImageConfig.maskMode |
Enumeración opcional:
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:
Se especifica cuando referenceType se define como REFERENCE_TYPE_CONTROL.
|
controlImageConfig.enableControlImageComputation |
Opcional bool.Valor predeterminado: false.
Se especifica cuando referenceType se define como REFERENCE_TYPE_CONTROL.
|
language |
Opcional: El código de idioma que corresponde al idioma de tu petición de texto. Se admiten los siguientes valores:
en: inglés (si se omite, se usa el valor predeterminado)
|
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:
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 |
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 está presente 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-west2oasia-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
referenceIdde 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
- La siguiente petición de texto incluye dos imágenes de referencia con
"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 mismoreferenceId(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
"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_) |
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 con ruedas lento |
| 186 | lago fluvial |
| 187 | ce |
| 188 | Agua (otro) |
| 189 | Piscina |
| 190 | Cascada |
| 191 | pared |
| 192 | ventana |
| 193 | Persiana |
Siguientes pasos
- Para obtener más información, consulta Imagen en Vertex AI.