La API de Imagen te permite crear imágenes de alta calidad en segundos, con instrucciones de texto para guiar la generación. También puedes mejorar las imágenes con la API de Image.
Cómo ver la tarjeta de modelo de Imagen para la generación
Modelos compatibles
Modelo | Código |
---|---|
Generación de imágenes | imagen-3.0-generate-002 imagen-3.0-generate-001 imagen-3.0-fast-generate-001 imagegeneration@006 imagegeneration@005 imagegeneration@002 |
Para obtener más información sobre cómo funcionan las funciones que admite cada modelo, consulta Control de versiones de modelos.
Ejemplo de sintaxis
Sintaxis para crear una imagen a partir de una instrucció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("imagen-3.0-generate-001") response = generation_model.generate_images( prompt="...", negative_prompt="...", aspect_ratio=..., ) response.images[0].show()
Lista de parámetros
Consulta ejemplos para obtener detalles sobre la implementación.
Generar imágenes
REST
Parámetros | |
---|---|
prompt |
Obligatorio: Es la instrucción de texto para la imagen. El modelo El modelo El modelo El modelo El modelo El modelo |
sampleCount |
Obligatorio: Es la cantidad de imágenes que se generarán. El valor predeterminado es 4. El modelo El modelo El modelo El modelo El modelo El modelo |
seed |
Opcional: La semilla aleatoria para la generación de imágenes. No está disponible cuando |
enhancePrompt |
Opcional: Es un parámetro opcional para usar una función de reescritura de instrucciones basada en LLM para entregar imágenes de mayor calidad que reflejen mejor la intención de la instrucción original. Si inhabilitas esta función, es posible que se vea afectada la calidad de las imágenes y la adherencia a las instrucciones.
|
negativePrompt |
Opcional: Una descripción de lo que se debe evitar en las imágenes generadas.
El modelo El modelo El modelo El modelo El modelo |
aspectRatio |
Opcional: Es la relación de aspecto de la imagen. El valor predeterminado es "1:1". El modelo El modelo El modelo El modelo El modelo El modelo |
outputOptions |
Opcional: Describe el formato de imagen de salida en un objeto |
sampleImageStyle |
Opcional: Describe el estilo de las imágenes generadas. Se admiten los siguientes valores:
|
personGeneration |
Opcional: Permite que el modelo genere personas. Se admiten los siguientes valores:
El valor predeterminado es |
safetySetting |
Opcional: Agrega un nivel de filtro al filtrado de seguridad. Se admiten los siguientes valores:
El valor predeterminado es |
addWatermark |
Opcional: Agrega una marca de agua invisible a las imágenes generadas. El valor predeterminado es |
storageUri |
Opcional: Es el URI de Cloud Storage para almacenar las imágenes generadas. |
Objeto de opciones de salida
El objeto outputOptions
describe el resultado de la imagen.
Parámetros | |
---|---|
outputOptions.mimeType |
Opcional: Es el formato de imagen en el que se debe guardar el resultado. Se admiten los siguientes valores:
El valor predeterminado es |
outputOptions.compressionQuality |
Opcional: El nivel de compresión si el tipo de salida es |
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. |
raiFilteredReason |
El motivo del filtro de IA responsable. Solo se muestra si |
safetyAttributes.categories |
Es el nombre del atributo de seguridad. Solo se muestra si |
safetyAttributes.scores |
La puntuación del atributo de seguridad. Solo se muestra si |
Python
Parámetros | |
---|---|
prompt |
Obligatorio: Es la instrucción de texto para la imagen. El modelo El modelo El modelo El modelo El modelo |
number_of_images |
Obligatorio: Es la cantidad de imágenes que se generarán. El valor predeterminado es 1. El modelo El modelo El modelo El modelo El modelo |
seed |
Opcional: La semilla aleatoria para la generación de imágenes. No está disponible cuando |
negative_prompt |
Opcional: Una descripción de lo que se debe evitar en las imágenes generadas. El modelo El modelo El modelo El modelo El modelo |
aspect_ratio |
Opcional: Es la relación de aspecto de la imagen. El valor predeterminado es "1:1". El modelo El modelo El modelo |
output_mime_type |
Opcional: Es el formato de imagen en el que se debe guardar el resultado. Se admiten los siguientes valores:
El valor predeterminado es |
compression_quality |
Opcional: El nivel de compresión si el tipo de MIME de salida es |
language |
Opcional: Es el idioma de la instrucción de texto de la imagen. Se admiten los siguientes valores:
El valor predeterminado es |
output_gcs_uri |
Opcional: Es el URI de Cloud Storage para almacenar las imágenes generadas. |
add_watermark |
Opcional: Agrega una marca de agua a la imagen generada. El valor predeterminado es |
safety_filter_level |
Opcional: Agrega un nivel de filtro al filtrado de seguridad. Se admiten los siguientes valores:
El valor predeterminado es |
person_generation |
Opcional: Permite que el modelo genere personas. Se admiten los siguientes valores:
El valor predeterminado es |
Mejorar las imágenes
REST
Parámetro | |
---|---|
mode |
Obligatorio: Debe establecerse en |
upscaleConfig |
Obligatorio: |
outputOptions |
Opcional: Describe el formato de imagen de salida en un objeto |
storageUri |
Opcional: Es el URI de Cloud Storage donde se almacenarán las imágenes generadas. |
Objeto de configuración de mejora
Parámetro | |
---|---|
upscaleConfig.upscaleFactor |
Obligatorio: El factor de mejora. Los valores admitidos son |
Respuesta
El cuerpo de la respuesta de la solicitud de REST.
Parámetro | |
---|---|
predictions |
Un array de objetos |
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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El Google Cloud ID de tu proyecto.
- MODEL_VERSION: La versión del modelo
imagegeneration
que se usará. Valores disponibles:- .
-
Imagen 3:
imagen-3.0-generate-002
(modelo más reciente)imagen-3.0-generate-001
imagen-3.0-fast-generate-001
: Versión del modelo de baja latencia.
-
Versión predeterminada del modelo:
imagegeneration
: Usa la versión de modelo predeterminada v.006. Como práctica recomendada, siempre debes especificar una versión del modelo, en especial en entornos de producción.
Para obtener más información sobre las versiones y los atributos del modelo, consulta las versiones del modelo.
-
Imagen 3:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - TEXT_PROMPT: El mensaje de texto que guía qué imágenes genera el modelo. Este campo es obligatorio para la generación y la edición.
- IMAGE_COUNT: La cantidad de imágenes generadas.
Valores de números enteros aceptados: 1-8 (
imagegeneration@002
), 1-4 (todas las demás versiones del modelo). Valor predeterminado: 4.
Método HTTP y URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_VERSION: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" } ] }
Si usas un modelo que admite la mejora de instrucciones, la respuesta incluye un campo prompt
adicional con la instrucción mejorada que se usó 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 para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
En este ejemplo, se llama al método generate_images
en la ImageGenerationModel
(versión @006
) y se guardan las imágenes generadas de forma local. Luego, de forma opcional, puedes usar el método show()
en un notebook para mostrar las imágenes generadas. Para obtener más información sobre las versiones y las características de los modelos, consulta las versiones del modelo.
Mejorar las imágenes
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: La región del proyecto. Por ejemplo,
us-central1
,europe-west2
oasia-northeast3
. Para obtener una lista de las regiones disponibles, consulta IA generativa en ubicaciones de Vertex AI. - PROJECT_ID: El Google Cloud ID de tu proyecto.
- B64_BASE_IMAGE: La imagen base que se editará o mejorará. La imagen debe especificarse como una cadena de bytes codificada en base64. Límite de tamaño: 10 MB.
- IMAGE_SOURCE: La ubicación de Cloud Storage de la imagen que deseas editar o mejorar. Por ejemplo:
gs://output-bucket/source-photos/photo.png
. - UPSCALE_FACTOR: Opcional El factor al que se ampliará la imagen. Si no se especifica, el factor de mejora se determinará a partir del lado más largo de la imagen de entrada y
sampleImageSize
. Valores disponibles:x2
ox4
.
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/imagegeneration@002:predict
Cuerpo JSON de la solicitud:
{ "instances": [ { "prompt": "", "image": { // use one of the following to specify the image to upscale "bytesBase64Encoded": "B64_BASE_IMAGE" "gcsUri": "IMAGE_SOURCE" // end of base image input options }, } ], "parameters": { "sampleCount": 1, "mode": "upscale", "upscaleConfig": { "upscaleFactor": "UPSCALE_FACTOR" } } }
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/imagegeneration@002: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/imagegeneration@002:predict" | Select-Object -Expand Content
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "predictions": [ { "mimeType": "image/png", "bytesBase64Encoded": "iVBOR..[base64-encoded-upscaled-image]...YII=" } ] }
¿Qué sigue?
- Para obtener más información, consulta la descripción general de Imagen en Vertex AI y Genera imágenes con instrucciones de texto.