La API Imagen te permite generar imágenes de alta calidad en segundos mediante una petición de texto para guiar la generación.
Ver la tarjeta de modelo de Imagen para generación
Versiones de modelo admitidas
La API Imagen admite los siguientes modelos:
imagen-4.0-generate-001imagen-4.0-fast-generate-001imagen-4.0-ultra-generate-001imagen-3.0-generate-002imagen-3.0-generate-001imagen-3.0-fast-generate-001imagen-3.0-capability-001
Para obtener más información sobre las funciones que admite cada modelo, consulta Modelos de Imagen.
Sintaxis de ejemplo
Sintaxis para crear una imagen a partir de una petición de texto.
Sintaxis
Sintaxis para generar 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/${MODEL_VERSION}:predict \ -d '{ "instances": [ { "prompt": "..." } ], "parameters": { "sampleCount": ... } }'
Python
generation_model = ImageGenerationModel.from_pretrained("MODEL_VERSION") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
Generar imágenes
REST
| Parámetros | |
|---|---|
addWatermark |
Opcional. Añade una marca de agua invisible a las imágenes generadas.
El valor predeterminado es |
aspectRatio |
Opcional. La relación de aspecto de la imagen de salida generada. El valor predeterminado es "1:1". |
enhancePrompt |
Opcional. Parámetro opcional para usar una función de reescritura de peticiones basada en LLMs con el fin de ofrecer imágenes de mayor calidad que reflejen mejor la intención de la petición original. Si inhabilitas esta función, puede que la calidad de las imágenes y la adecuación de las peticiones se vean afectadas. |
language |
Opcional. El código de idioma que corresponde al idioma de tu petición de texto. Se admiten los siguientes valores:
|
negativePrompt |
Opcional. Una descripción de lo que no debe aparecer en las imágenes generadas.
|
outputOptions |
Opcional. Describe el formato de la imagen de salida en un |
prompt |
Obligatorio. La petición de texto de la imagen. |
personGeneration |
Opcional. Permitir que el modelo genere personas. Se admiten los siguientes valores:
El valor predeterminado es |
safetySetting |
Opcional. Añade un nivel de filtro al filtro de seguridad. Se admiten los siguientes valores:
El valor predeterminado es |
sampleCount |
Obligatorio. Número de imágenes que se van a generar. El valor predeterminado es 4. |
sampleImageSize |
Opcional. Especifica la resolución de salida de la imagen generada. Los valores aceptados son |
seed |
Opcional. Semilla aleatoria para la generación de imágenes. Esta opción no está disponible cuando
Si |
storageUri |
Opcional: URI de Cloud Storage para almacenar las imágenes generadas. |
Objeto de opciones de salida
El objeto outputOptions describe la salida de la imagen.
| Parámetros | |
|---|---|
outputOptions.mimeType |
Opcional: El formato de imagen en el que se debe guardar la salida. Se admiten los siguientes valores:
El valor predeterminado es |
outputOptions.compressionQuality |
Opcional: El nivel de compresión si el tipo de salida es |
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á, a menos que includeRaiReason se defina como true.
|
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. |
raiFilteredReason |
Motivo del filtro de IA responsable. Solo se devuelve si |
safetyAttributes.categories |
Nombre del atributo de seguridad. Solo se devuelve si
|
safetyAttributes.scores |
Puntuación del atributo de seguridad. Solo se devuelve si
|
Python
| Parámetros | |
|---|---|
add_watermark |
Opcional. Añade una marca de agua a la imagen generada.
El valor predeterminado es |
aspect_ratio |
Opcional. La relación de aspecto de la imagen de salida generada. El valor predeterminado es "1:1". |
compression_quality |
Opcional. El nivel de compresión si el tipo MIME de salida es
|
language |
Opcional. El idioma de la petición de texto de la imagen. Se admiten los siguientes valores:
El valor predeterminado es |
negative_prompt |
Opcional. Una descripción de lo que no debe aparecer en las imágenes generadas.
|
number_of_images |
Obligatorio. Número de imágenes que se van a generar. El valor predeterminado es 1. |
output_gcs_uri |
Opcional. URI de Cloud Storage para almacenar las imágenes generadas. |
output_mime_type |
Opcional. El formato de imagen en el que se debe guardar la salida. Se admiten los siguientes valores:
El valor predeterminado es |
prompt |
Obligatorio. La petición de texto de la imagen. |
person_generation |
Opcional. Permitir que el modelo genere personas. Se admiten los siguientes valores:
El valor predeterminado es |
safety_filter_level |
Opcional. Añade un nivel de filtro al filtro de seguridad. Se admiten los siguientes valores:
El valor predeterminado es |
sample_image_size |
Opcional. Especifica la resolución de salida de la imagen generada. Los valores aceptados son |
seed |
Opcional. Semilla aleatoria para la generación de imágenes. Esta opción no está disponible cuando
Si |
Ejemplos
En los siguientes ejemplos se muestra cómo usar los modelos de Imagen para generar imágenes.
Generar imágenes
REST
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- REGION: la región en la que se encuentra tu proyecto. Para obtener más información sobre las regiones admitidas, consulta las ubicaciones de la IA generativa en Vertex AI.
- PROJECT_ID: tu Google Cloud ID de proyecto.
-
MODEL_VERSION: la versión del modelo Imagen que se va a usar. Para obtener más información sobre los modelos disponibles, consulta Modelos de Imagen.
- TEXT_PROMPT: la petición de texto que indica qué imágenes debe generar el modelo. Este campo es obligatorio tanto para generar como para editar.
-
IMAGE_COUNT: número de imágenes que se van a generar. El intervalo de valores aceptado es de
1a4. - ADD_WATERMARK: booleano. Opcional. Si quieres habilitar una marca de agua en las imágenes generadas.
Las imágenes generadas cuando el campo se define como
truecontienen una marca de agua digital SynthID que puedes usar para verificar una imagen con marca de agua. Si omite este campo, se usará el valor predeterminadotrue. Para inhabilitar esta función, debe asignar el valorfalse. Puede usar el camposeedpara obtener resultados deterministas solo cuando este campo tenga el valorfalse. - ASPECT_RATIO: cadena. Opcional. Un parámetro del modo de generación que controla la relación de aspecto. Valores de relación de aspecto admitidos y su uso previsto:
1:1(predeterminado, cuadrado)3:4(anuncios, redes sociales)4:3(televisión, fotografía)16:9(horizontal)9:16(vertical)
- ENABLE_PROMPT_REWRITING: booleano. Opcional. Parámetro para usar una función de reescritura de peticiones basada en LLMs para ofrecer imágenes de mayor calidad que reflejen mejor la intención de la petición original. Si inhabilitas esta función, puede que la calidad de la imagen y la adecuación a la petición se vean afectadas. Valor predeterminado:
true. -
INCLUDE_RAI_REASON: booleano. Opcional. Indica si se debe habilitar el código de motivo filtrado de IA responsable en las respuestas con entradas o salidas bloqueadas. Valor predeterminado:
true. - INCLUDE_SAFETY_ATTRIBUTES: booleano. Opcional. Indica si se deben habilitar las puntuaciones de IA responsable redondeadas para una lista de atributos de seguridad en las respuestas de entrada y salida sin filtrar. Categorías de atributos de seguridad:
"Death, Harm & Tragedy","Firearms & Weapons","Hate","Health","Illicit Drugs","Politics","Porn","Religion & Belief","Toxic","Violence","Vulgarity"y"War & Conflict". Valor predeterminado:false. - MIME_TYPE: cadena. Opcional. Tipo MIME del contenido de la imagen. Valores
disponibles:
image/jpegimage/gifimage/pngimage/webpimage/bmpimage/tiffimage/vnd.microsoft.icon
- COMPRESSION_QUALITY: número entero. Opcional. Solo se aplica a los archivos de salida JPEG. El nivel de detalle que conserva el modelo en las imágenes generadas en formato de archivo JPEG. Valores:
0a100, donde un número más alto significa más compresión. Predeterminado:75. - PERSON_SETTING: cadena. Opcional. El ajuste de seguridad que controla el tipo de personas o la generación de caras que permite el modelo. Valores disponibles:
allow_adult(valor predeterminado): permite generar contenido solo para adultos, excepto si se trata de famosos. No se permite generar imágenes de famosos en ningún ajuste.dont_allow: inhabilita la inclusión de personas o caras en las imágenes generadas.
- SAFETY_SETTING: cadena. Opcional. Un ajuste que controla los umbrales del filtro de seguridad
de las imágenes generadas. Valores disponibles:
block_low_and_above: el umbral de seguridad más alto, lo que da como resultado la mayor cantidad de imágenes generadas que se filtran. Valor anterior:block_most.block_medium_and_above(opción predeterminada): umbral de seguridad medio que equilibra el filtrado de contenido potencialmente dañino y seguro. Valor anterior:block_some.block_only_high: umbral de seguridad que reduce el número de solicitudes bloqueadas debido a los filtros de seguridad. Este ajuste puede aumentar el contenido inapropiado generado por Imagen. Valor anterior:block_few.
- SEED_NUMBER: número entero. Opcional. Cualquier número entero no negativo que proporciones para que las imágenes de salida sean deterministas. Si se proporciona el mismo número de semilla, siempre se obtendrán las mismas imágenes. Si el modelo que estás usando admite marcas de agua digitales, debes definir
"addWatermark": falsepara usar este campo. Valores enteros aceptados:1-2147483647. - OUTPUT_STORAGE_URI: cadena. Opcional. El segmento de Cloud Storage donde se almacenarán las imágenes de salida. Si no se proporciona, se devuelven bytes de imagen codificados en Base64 en la respuesta. Valor de ejemplo:
gs://image-bucket/output/.
Parámetros opcionales adicionales
Usa las siguientes variables opcionales según tu caso práctico. Añade algunos o todos los parámetros siguientes en el objeto "parameters": {}.
Esta lista muestra parámetros opcionales habituales y no es exhaustiva. Para obtener más información sobre los parámetros opcionales, consulta la referencia de la API Imagen: generar imágenes.
"parameters": {
"sampleCount": IMAGE_COUNT,
"addWatermark": ADD_WATERMARK,
"aspectRatio": "ASPECT_RATIO",
"enhancePrompt": ENABLE_PROMPT_REWRITING,
"includeRaiReason": INCLUDE_RAI_REASON,
"includeSafetyAttributes": INCLUDE_SAFETY_ATTRIBUTES,
"outputOptions": {
"mimeType": "MIME_TYPE",
"compressionQuality": COMPRESSION_QUALITY
},
"personGeneration": "PERSON_SETTING",
"safetySetting": "SAFETY_SETTING",
"seed": SEED_NUMBER,
"storageUri": "OUTPUT_STORAGE_URI"
}
Método HTTP y URL:
POST https://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION:predict
Cuerpo JSON de la solicitud:
{
"instances": [
{
"prompt": "TEXT_PROMPT"
}
],
"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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION: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://REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/publishers/google/models/MODEL_VERSION: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" } ] }
Si usas un modelo que admite la mejora de las peticiones, la respuesta incluye un campo prompt adicional con la petición mejorada que se ha usado para la generación:
{
"predictions": [
{
"mimeType": "MIME_TYPE",
"prompt": "ENHANCED_PROMPT_1",
"bytesBase64Encoded": "BASE64_IMG_BYTES_1"
},
{
"mimeType": "MIME_TYPE",
"prompt": "ENHANCED_PROMPT_2",
"bytesBase64Encoded": "BASE64_IMG_BYTES_2"
}
]
}
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración de Python que se indican en la guía de inicio rápido de Vertex AI con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vertex AI.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
En este ejemplo, se llama al método generate_images en ImageGenerationModel (versión @006) y se guardan las imágenes generadas de forma local. Después, puedes usar el método show()
en un cuaderno para ver las imágenes generadas. Para obtener más información sobre las versiones y las funciones de los modelos, consulta Versiones de los modelos.
Siguientes pasos
- Para obtener más información, consulta la descripción general de Imagen en Vertex AI y el artículo sobre cómo generar imágenes con peticiones de texto.