Usa imágenes de referencia para guiar la generación de videos

Veo en Vertex AI te permite usar imágenes de referencia con veo-2.0-generate-exp para guiar el contenido y el estilo artístico de tu video generado. Puedes usar una de las siguientes opciones cuando uses imágenes de referencia con Veo:

  • Imagen del recurso: Proporcionas hasta tres imágenes de una sola persona, personaje o producto. Veo conserva la apariencia del sujeto en el video resultante.

  • Imagen de estilo: Proporcionas una sola imagen de estilo. Veo aplica el estilo de la imagen que subiste en el video de salida.

Si deseas obtener más información para escribir instrucciones de texto eficaces para la generación de videos, consulta la guía de instrucciones de Veo.

Antes de comenzar

  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.

    Go to project selector

  3. Enable the Vertex AI API.

    Enable the API

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

    Go to project selector

  5. Enable the Vertex AI API.

    Enable the API

  6. Configura la autenticación para 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 de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a gcloud CLI.

      Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando:

      gcloud init

      Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .

    Usa imágenes de temas para generar videos

    Haz lo siguiente:

    Console

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

      Media Studio

    2. Haz clic en Veo.

    3. En el panel Configuración, selecciona los siguientes parámetros de configuración:

      • Modelo: Selecciona veo-2.0-generate-exp.

      • Cantidad de resultados: Ajusta el control deslizante o ingresa un valor entre 1 y 4.

    4. En la sección Referencia, selecciona Asunto > haz clic en Agregar.

    5. Elige de una a tres imágenes en tu computadora para subirlas.

    6. Opcional: En la sección Seguridad, selecciona uno de los siguientes parámetros de configuración de Generación de personas:

      • Permitir (solo para adultos): Es el valor predeterminado. Generar solo personas o rostros adultos No se deben generar imágenes de rostros o personas jóvenes o niños.

      • No permitir: No genera personas ni rostros.

    7. Opcional: En la sección Opciones avanzadas, ingresa un valor de Semilla para aleatorizar la generación de video.

    8. En el cuadro Escribe tu instrucción, ingresa la instrucción de texto que describe los videos que se generarán.

    9. Haz clic en Generar .

    REST

    Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

    Para obtener más información sobre la API de Veo, consulta la API de Veo en Vertex AI.

    1. Usa los siguientes comandos para enviar una solicitud de generación de video. Esta solicitud inicia una operación de larga duración y almacena el resultado en un bucket de Cloud Storage que especifiques.

      Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

      • PROJECT_ID: El ID de tu proyecto de Google Cloud .
      • TEXT_PROMPT: Es la instrucción de texto que se usa para guiar la generación de video.
      • BASE64_ENCODED_IMAGE: Es una imagen del sujeto codificada en bytes en base64. Puedes repetir este campo y mimeType para especificar hasta tres imágenes del sujeto.
      • IMAGE_MIME_TYPE: Es el tipo de MIME de la imagen de entrada. Solo una de las siguientes opciones:

        • image/jpeg
        • image/png

        Puedes repetir este campo y bytesBase64Encoded para especificar hasta tres imágenes del sujeto.

      • OUTPUT_STORAGE_URI: Opcional: Es el bucket de Cloud Storage para almacenar los videos de salida. Si no se proporciona, se devuelve un video codificado en bytes Base64 en la respuesta. Por ejemplo: gs://video-bucket/output/.
      • RESPONSE_COUNT: Es la cantidad de archivos de video que deseas generar. Valores de números enteros aceptados: de 1 a 4.
      • Parámetros opcionales adicionales

        Usa las siguientes variables opcionales según tu caso de uso. Agrega algunos o todos los siguientes parámetros en el objeto "parameters": {}.

        "parameters": {
          "aspectRatio": "ASPECT_RATIO",
          "negativePrompt": "NEGATIVE_PROMPT",
          "personGeneration": "PERSON_SAFETY_SETTING",
          // "resolution": RESOLUTION, // Veo 3 models only
          "sampleCount": RESPONSE_COUNT,
          "seed": SEED_NUMBER
        }
        • ASPECT_RATIO: Opcional: Es un valor de cadena que describe la relación de aspecto de los videos generados. Puedes usar los siguientes valores:
          • "16:9" para horizontal
          • "9:16" para vertical

          El valor predeterminado es "16:9".

        • NEGATIVE_PROMPT: Opcional: Es un valor de cadena que describe el contenido que deseas evitar que genere el modelo.
        • PERSON_SAFETY_SETTING: Opcional: Es un valor de cadena que controla el parámetro de configuración de seguridad para generar personas o rostros. Puedes usar los siguientes valores:
          • "allow_adult": Solo permite la generación de personas y rostros adultos.
          • "disallow": No genera personas ni rostros.

          El valor predeterminado es "allow_adult".

        • RESOLUTION: Opcional: Es un valor de cadena que controla la resolución del video generado. Solo es compatible con los modelos de Veo 3. Puedes usar los siguientes valores:
          • "720p"
          • "1080p"

          El valor predeterminado es "720p".

        • RESPONSE_COUNT: Opcional. Es un valor entero que describe la cantidad de videos que se generarán. El rango de valores aceptado es de 1 a 4.
        • SEED_NUMBER: Opcional. Es un valor uint32 que el modelo usa para generar videos determinísticos. Especificar un número de origen con tu solicitud sin cambiar otros parámetros guía al modelo para que produzca los mismos videos. El rango de valores aceptado es de 0 a 4294967295.

      Método HTTP y URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

      Cuerpo JSON de la solicitud:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            // The following fields can be repeated for up to three total
            // images.
            "referenceImages": [
              {
                "image": {
                  "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                  "mimeType": "IMAGE_MIME_TYPE"
                },
                "referenceType": "asset"
              }
            ]
          }
        ],
        "parameters": {
          "durationSeconds": 8,
          "storageUri": "OUTPUT_STORAGE_URI",
          "sampleCount": RESPONSE_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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning"

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning" | Select-Object -Expand Content
      Esta solicitud devuelve un nombre de operación completo con un ID de operación único. Usa este nombre de operación completo para sondear el estado de la solicitud de generación de video.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: Verifica el estado de la operación de larga duración de generación de video.

      Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

      • PROJECT_ID: El Google Cloud ID del proyecto.
      • MODEL_ID: ID del modelo que se usará.
      • OPERATION_ID: Es el ID de operación único que se devolvió en la solicitud original de generación de video.

      Método HTTP y URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

      Cuerpo JSON de la solicitud:

      {
        "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
      }
      

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
      Esta solicitud devuelve información sobre la operación, incluido si la operación aún se está ejecutando o si ya finalizó.

    Usa imágenes de estilo para generar videos

    Haz lo siguiente:

    Console

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

      Media Studio

    2. Haz clic en Veo.

    3. En el panel Configuración, selecciona los siguientes parámetros de configuración:

      • Modelo: Selecciona veo-2.0-generate-exp.

      • Cantidad de resultados: Ajusta el control deslizante o ingresa un valor entre 1 y 4.

    4. En la sección Referencia, selecciona Estilo > haz clic en Agregar.

    5. Elige una imagen de tu computadora para subirla.

    6. Opcional: En la sección Seguridad, selecciona uno de los siguientes parámetros de configuración de Generación de personas:

      • Permitir (solo para adultos): Es el valor predeterminado. Generar solo personas o rostros adultos No se deben generar imágenes de rostros o personas jóvenes o niños.

      • No permitir: No genera personas ni rostros.

    7. Opcional: En la sección Opciones avanzadas, ingresa un valor de Semilla para aleatorizar la generación de video.

    8. En el cuadro Escribe tu instrucción, ingresa la instrucción de texto que describe los videos que se generarán.

    9. Haz clic en Generar .

    REST

    Después de configurar tu entorno, puedes usar REST para probar una instrucción de texto. En el siguiente ejemplo, se envía una solicitud al extremo del modelo de publicador.

    Para obtener más información sobre la API de Veo, consulta la API de Veo en Vertex AI.

    1. Usa los siguientes comandos para enviar una solicitud de generación de video. Esta solicitud inicia una operación de larga duración y almacena el resultado en un bucket de Cloud Storage que especifiques.

      Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

      • PROJECT_ID: El ID de tu proyecto de Google Cloud .
      • TEXT_PROMPT: Es la instrucción de texto que se usa para guiar la generación de video.
      • BASE64_ENCODED_IMAGE: Es una imagen de estilo codificada en bytes en Base64.
      • IMAGE_MIME_TYPE: Es el tipo de MIME de la imagen de entrada. Solo uno de los siguientes:
        • image/jpeg
        • image/png
      • OUTPUT_STORAGE_URI: Opcional: Es el bucket de Cloud Storage para almacenar los videos de salida. Si no se proporciona, se devuelven los bytes del video en la respuesta. Por ejemplo: gs://video-bucket/output/
      • RESPONSE_COUNT: Es la cantidad de archivos de video que deseas generar. Valores de números enteros aceptados: de 1 a 4.
      • Parámetros opcionales adicionales

        Usa las siguientes variables opcionales según tu caso de uso. Agrega algunos o todos los siguientes parámetros en el objeto "parameters": {}.

        "parameters": {
          "aspectRatio": "ASPECT_RATIO",
          "negativePrompt": "NEGATIVE_PROMPT",
          "personGeneration": "PERSON_SAFETY_SETTING",
          // "resolution": RESOLUTION, // Veo 3 models only
          "sampleCount": RESPONSE_COUNT,
          "seed": SEED_NUMBER
        }
        • ASPECT_RATIO: Opcional: Es un valor de cadena que describe la relación de aspecto de los videos generados. Puedes usar los siguientes valores:
          • "16:9" para horizontal
          • "9:16" para vertical

          El valor predeterminado es "16:9".

        • NEGATIVE_PROMPT: Opcional: Es un valor de cadena que describe el contenido que deseas evitar que genere el modelo.
        • PERSON_SAFETY_SETTING: Opcional: Es un valor de cadena que controla el parámetro de configuración de seguridad para generar personas o rostros. Puedes usar los siguientes valores:
          • "allow_adult": Solo permite la generación de personas y rostros adultos.
          • "disallow": No genera personas ni rostros.

          El valor predeterminado es "allow_adult".

        • RESOLUTION: Opcional: Es un valor de cadena que controla la resolución del video generado. Solo es compatible con los modelos de Veo 3. Puedes usar los siguientes valores:
          • "720p"
          • "1080p"

          El valor predeterminado es "720p".

        • RESPONSE_COUNT: Opcional. Es un valor entero que describe la cantidad de videos que se generarán. El rango de valores aceptado es de 1 a 4.
        • SEED_NUMBER: Opcional. Es un valor uint32 que el modelo usa para generar videos determinísticos. Especificar un número de origen con tu solicitud sin cambiar otros parámetros guía al modelo para que produzca los mismos videos. El rango de valores aceptado es de 0 a 4294967295.

      Método HTTP y URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning

      Cuerpo JSON de la solicitud:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT",
            "referenceImages": [
              {
                "image": {
                  "bytesBase64Encoded": "BASE64_ENCODED_IMAGE",
                  "mimeType": "IMAGE_MIME_TYPE"
                },
                "referenceType": "style"
              }
            ]
          }
        ],
        "parameters": {
          "durationSeconds": 8,
          "storageUri": "OUTPUT_STORAGE_URI",
          "sampleCount": RESPONSE_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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning"

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001:predictLongRunning" | Select-Object -Expand Content
      Esta solicitud devuelve un nombre de operación completo con un ID de operación único. Usa este nombre de operación completo para sondear el estado de la solicitud de generación de video.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: Verifica el estado de la operación de larga duración de generación de video.

      Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

      • PROJECT_ID: El Google Cloud ID del proyecto.
      • MODEL_ID: ID del modelo que se usará.
      • OPERATION_ID: Es el ID de operación único que se devolvió en la solicitud original de generación de video.

      Método HTTP y URL:

      POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation

      Cuerpo JSON de la solicitud:

      {
        "operationName": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID"
      }
      

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation"

      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://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID:fetchPredictOperation" | Select-Object -Expand Content
      Esta solicitud devuelve información sobre la operación, incluido si la operación aún se está ejecutando o si ya finalizó.

    ¿Qué sigue?