Personalización de estilos

La personalización de estilo de Imagen 3 te ayuda a generar imágenes nuevas a partir de las peticiones de texto y las imágenes de referencia que proporciones. Las imágenes de referencia guían la generación de imágenes nuevas.

Casos prácticos

Imagen 3 Customization ofrece peticiones de estilo libre, lo que puede dar la impresión de que puede hacer más de lo que está entrenado para hacer. En las siguientes secciones se describen los casos prácticos previstos de Imagen 3 Customization y ejemplos no exhaustivos de casos prácticos no previstos.

Te recomendamos que uses la personalización de Imagen 3 en los casos prácticos previstos, ya que hemos entrenado el modelo para esos casos y esperamos obtener buenos resultados. Por el contrario, aunque puedes pedirle al modelo que haga cosas que no se corresponden con los casos de uso previstos, no esperamos que obtengas buenos resultados.

Casos prácticos previstos

Estos son algunos casos prácticos para la personalización del estilo de Imagen 3:

  • Genera una imagen a partir de una entrada de texto que siga el estilo específico proporcionado por una imagen de referencia.
  • Alterar una foto de una persona.
  • Modificar una foto de una persona y conservar su expresión facial.

Ejemplos de casos prácticos no previstos

A continuación, se incluye una lista no exhaustiva de casos prácticos para los que no se ha entrenado la personalización de Imagen 3 y que producen resultados de baja calidad:

  • Generar una imagen a partir de texto y usando una imagen de referencia, con el objetivo de tener cierto nivel de control sobre la composición generada a partir de la imagen de referencia.

  • Genera una imagen de una persona a partir de una imagen de referencia en la que aparezca una persona con una expresión facial concreta.

  • Coloca a dos personas en una escena diferente, conserva sus identidades y especifica el estilo de la imagen de salida (por ejemplo, un óleo) mediante una imagen de referencia.

  • Estiliza una foto de una mascota y conviértela en un dibujo, conservando o especificando la composición de la imagen.

  • Coloca un producto, como una galleta o un sofá, en diferentes escenas con distintos ángulos y siguiendo un estilo de imagen específico (por ejemplo, fotorrealista con colores, estilos de iluminación o animación concretos).

Ejemplo de personalización de estilo

A continuación, se muestra un ejemplo de personalización del estilo de Imagen 3:

Entrada de ejemplo Resultado de ejemplo
  1. Imagen de referencia 1:
    Ejemplo de entrada para la personalización de animales de compañía
  2. Petición de texto:
    Genera una imagen en mosaic style [1] basada en
    el siguiente texto: el perfil urbano de Nueva York

Ejemplo de salida de personalización de animal de compañía

1 Imagen de entrada de referencia generada con Imagen 3 Generación de imágenes a partir de la petición: un mosaico sencillo.

Ver la tarjeta del modelo Imagen for Editing and Customization

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.

    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. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      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 .

    Personalización de estilos

    Puedes proporcionar imágenes de referencia de tipos de estilo cuando uses la personalización de Imagen 3. El estilo que elijas afectará a la forma en que formules tu petición de generación.

    La petición que uses con la personalización de Imagen 3 puede afectar a la calidad de las imágenes generadas. En las siguientes secciones se describen plantillas de peticiones y ejemplos recomendados para enviar solicitudes de personalización.

    Caso práctico Imágenes de referencia Plantilla de petición Ejemplo
    Estilo de objeto Imagen del sujeto (de 1 a 4) Genera una imagen en STYLE_DESCRIPTION [1] basada en el siguiente título: IMAGE_DESCRIPTION. Genera una imagen en neon sign style [1] basada en el siguiente título: a sign saying have a great day.
    Estilización de la imagen de una persona sin entrada de malla facial Imagen del sujeto (de 1 a 4) Crea una imagen sobre SUBJECT_DESCRIPTION [1] que coincida con la descripción: un retrato de SUBJECT_DESCRIPTION [1] ${PROMPT} Crea una imagen sobre a woman with short hair[1] que coincida con la descripción: un retrato de a woman with short hair[1] en estilo de dibujo animado en 3D con el fondo desenfocado. Un personaje bonito y adorable, con una cara sonriente, mirando a la cámara, tonos pastel, alta calidad, 4K, obra maestra, superdetalles, textura de la piel, mapeado de texturas, sombras suaves, iluminación suave y realista, colores vivos
    Estilización de la imagen de una persona con una malla facial Imagen del sujeto (1-3)

    Imagen de control de la malla facial (1)
    Crea una imagen sobre SUBJECT_DESCRIPTION [1] en la postura de CONTROL_IMAGE [2] para que coincida con la descripción: un retrato de SUBJECT_DESCRIPTION [1] ${PROMPT} Crea una imagen de a woman with short hair [1] en la postura de control image [2] que coincida con la descripción: un retrato de a woman with short hair [1] con un estilo de dibujos animados en 3D y un fondo desenfocado. Un personaje adorable con una cara sonriente. Ver la cámara, tono de color pastel, alta calidad, 4k, obra maestra, superdetalles, textura de la piel, mapeado de texturas, sombras suaves, iluminación suave y realista, colores vivos

    REST

    Para obtener más información sobre las solicitudes de modelos imagen-3.0-capability-001, consulta la referencia de la API de modelos imagen-3.0-capability-001.

    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-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 indica qué imágenes genera el modelo. Para usar la personalización de Imagen 3, incluye el referenceId de la imagen o las imágenes de referencia que proporciones en el formato [$referenceId]. Por ejemplo:
      • La siguiente petición de texto es para una solicitud que tiene una sola imagen de referencia con "referenceId": 1 y una descripción opcional de "styleDescription": "glowing style": Genera una imagen en glowing style [1] basada en el siguiente texto: una iglesia en la montaña.
    • "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, la imagen de referencia única tiene un referenceId de (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.
    • STYLE_DESCRIPTION: opcional. Una descripción de texto de la imagen de referencia que puedes usar en el campo prompt. Por ejemplo:
            "prompt": "Generate an image in glowing style [1] based on the following
              caption: A church in the mountain.",
            [...],
            "styleImageConfig": {
              "styleDescription": "glowing style"
            }
          
    • 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_STYLE",
              "referenceId": 1,
              "referenceImage": {
                "bytesBase64Encoded": "BASE64_REFERENCE_IMAGE"
              },
              "styleImageConfig": {
                "styleDescription": "STYLE_DESCRIPTION"
              }
            }
          ]
        }
      ],
      "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
    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"
        }
      ]
    }
    

    Python

    from google import genai
    from google.genai.types import (
        EditImageConfig,
        Image,
        StyleReferenceConfig,
        StyleReferenceImage,
    )
    
    client = genai.Client()
    
    # TODO(developer): Update and un-comment below line
    # output_gcs_uri = "gs://your-bucket/your-prefix"
    
    # Create a style reference image of a neon sign stored in Google Cloud Storage
    # using https://storage.googleapis.com/cloud-samples-data/generative-ai/image/neon.png
    style_reference_image = StyleReferenceImage(
        reference_id=1,
        reference_image=Image(gcs_uri="gs://cloud-samples-data/generative-ai/image/neon.png"),
        config=StyleReferenceConfig(style_description="neon sign"),
    )
    
    image = client.models.edit_image(
        model="imagen-3.0-capability-001",
        prompt="generate an image of a neon sign [1] with the words: have a great day",
        reference_images=[style_reference_image],
        config=EditImageConfig(
            edit_mode="EDIT_MODE_DEFAULT",
            number_of_images=1,
            safety_filter_level="BLOCK_MEDIUM_AND_ABOVE",
            person_generation="ALLOW_ADULT",
            output_gcs_uri=output_gcs_uri,
        ),
    )
    
    # Example response:
    # gs://your-bucket/your-prefix
    print(image.generated_images[0].image.gcs_uri)

    Uso del producto

    Para ver los estándares de uso y las restricciones de contenido asociados a Imagen en Vertex AI, consulta las directrices de uso.

    Versiones del modelo

    Puedes usar varios modelos de generación de imágenes. Para obtener más información, consulta Modelos de imagen.

    Siguientes pasos

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