Genera imágenes mediante peticiones de texto

Puedes usar Imagen en Vertex AI para generar imágenes nuevas a partir de una petición de texto. Entre las interfaces compatibles se incluyen la consola de Google Cloud y la API de Vertex AI.

Para obtener más información sobre cómo escribir peticiones de texto para generar y editar imágenes, consulta la guía de peticiones.

Ver la tarjeta de modelo de Imagen para generación

Probar la generación de imágenes (Vertex AI Studio)

Probar Imagen en Colab

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Configura la autenticación de tu entorno.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    Python

    Para usar las Python muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local en la documentación de autenticación Google Cloud .

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

    Generar imágenes con texto

    Puedes generar imágenes originales usando solo texto descriptivo como entrada. En los siguientes ejemplos se muestran instrucciones básicas para generar imágenes.

    Consola

    1. En la Google Cloud consola, ve a la página Vertex AI > Media Studio.

      Ir a Media Studio

    2. Haz clic en Imagen. Se muestra la página de generación de imágenes de Imagen Media Studio.

    3. Opcional: En el panel Configuración, configura los siguientes ajustes:

      • Modelo: elige un modelo de entre las opciones disponibles.

        Para obtener más información sobre los modelos disponibles, consulte Modelos de Imagen.

      • Relación de aspecto: elige una de las opciones disponibles.

      • Número de resultados: ajusta el control deslizante o introduce un valor entre 1 y 4.

      • Resolución de salida: elige una resolución de entre las opciones disponibles.

    4. Opcional: En la sección Opciones avanzadas, selecciona una región en la que generar las imágenes.

    5. En el cuadro Escribe tu petición, introduce la petición de texto que describa las imágenes que quieres generar. Por ejemplo, barco pequeño en el agua por la mañana, ilustración de acuarela.

      Para obtener más información sobre cómo escribir peticiones eficaces, consulta la guía de atributos de imagen y peticiones.

    6. Haz clic en Generar.

      Se añade automáticamente una marca de agua digital a las imágenes generadas. No puedes inhabilitar la marca de agua digital para la generación de imágenes mediante la consola Google Cloud .

      Puedes seleccionar una imagen para verla en la ventana Detalle de la imagen. Las imágenes con marca de agua contienen una insignia de marca de agua digital. También puedes verificar una marca de agua de imagen de forma explícita.

      Imagen generada con texto de ejemplo con marca de agua
      Vista detallada de una imagen con marca de agua generada con Imagen 2 a partir de la petición: pequeño barco rojo en el agua por la mañana, ilustración de acuarela con colores apagados.

    Python

    Instalar

    pip install --upgrade google-genai

    Para obtener más información, consulta la documentación de referencia del SDK.

    Define variables de entorno para usar el SDK de IA generativa con Vertex AI:

    # Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
    # with appropriate values for your project.
    export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
    export GOOGLE_CLOUD_LOCATION=global
    export GOOGLE_GENAI_USE_VERTEXAI=True

    En este ejemplo, llamas al método generate_images en ImageGenerationModel y guardas 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 Modelos de Imagen.

    from google import genai
    from google.genai.types import GenerateImagesConfig
    
    client = genai.Client()
    
    # TODO(developer): Update and un-comment below line
    # output_file = "output-image.png"
    
    image = client.models.generate_images(
        model="imagen-4.0-generate-001",
        prompt="A dog reading a newspaper",
        config=GenerateImagesConfig(
            image_size="2K",
        ),
    )
    
    image.generated_images[0].image.save(output_file)
    
    print(f"Created output image using {len(image.generated_images[0].image.image_bytes)} bytes")
    # Example response:
    # Created output image using 1234567 bytes
    

    REST

    Para obtener más información sobre las solicitudes de modelos imagegeneration, consulta la referencia de la API de modelos imagegeneration.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • 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.

    • LOCATION: la región de tu proyecto. Por ejemplo, us-central1, europe-west2 o asia-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 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 generadas. Valores enteros aceptados: del 1 al 8 (imagegeneration@002) y del 1 al 4 (todas las demás versiones del modelo). Valor predeterminado: 4.
    • Parámetros opcionales adicionales

      Usa las siguientes variables opcionales según tu caso práctico. Añada 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"
      }
      
      • 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 true contienen 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 predeterminado true. Para inhabilitar esta función, debe asignar el valor false. Puede usar el campo seed para obtener resultados deterministas solo cuando este campo tenga el valor false.
      • 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 las imágenes y la precisión de las peticiones 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/jpeg
        • image/gif
        • image/png
        • image/webp
        • image/bmp
        • image/tiff
        • image/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: 0 a 100, 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 contenido 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, 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": false para 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/.

    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
    La siguiente respuesta de ejemplo corresponde a una solicitud con "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"
        }
      ]
    }
    

    Siguientes pasos

    Consulta artículos sobre Imagen y otros productos de IA generativa en Vertex AI: