Dirigir la generación de vídeo de Veo con una imagen de referencia

Veo en Vertex AI te permite usar imágenes de referencia con veo-2.0-generate-exp para dirigir el contenido y el estilo artístico de los vídeos que generes. Cuando uses imágenes de referencia con Veo, puedes elegir una de las siguientes opciones:

  • Imagen de recurso: puede proporcionar hasta tres imágenes de una persona, un personaje o un producto. Veo conserva la apariencia de la persona en el vídeo resultante.

  • Imagen de estilo: proporciona una sola imagen de estilo. Veo aplica el estilo de la imagen que has subido al vídeo de salida.

Para obtener más información sobre cómo escribir peticiones de texto eficaces para generar vídeos, consulta la guía de peticiones de Veo.

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

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

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

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

    Usar imágenes de temas para generar vídeos

    Sigue estos pasos:

    Consola

    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 ajustes:

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

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

    4. En la sección Referencia, seleccione Asunto > haga clic en Añadir.

    5. Elige entre una y tres imágenes de tu ordenador para subirlas.

    6. Opcional: En la sección Seguridad, seleccione uno de los siguientes ajustes de generación de personas:

      • Permitir (solo para adultos): valor predeterminado. Generar solo personas o caras de adultos. No generes imágenes de personas jóvenes o niños, ni de sus caras.

      • No permitir: no se generarán personas ni caras.

    7. Opcional: En la sección Opciones avanzadas, introduce un valor de Semilla para aleatorizar la generación de vídeo.

    8. En el cuadro Escribe tu petición, introduce la petición de texto que describa los vídeos que quieres generar.

    9. Haz clic en Generar.

    REST

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

    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 vídeo. Esta solicitud inicia una operación de larga duración y almacena la salida en un segmento de Cloud Storage que especifiques.

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

      • PROJECT_ID: tu ID de proyecto. Google Cloud
      • TEXT_PROMPT: la petición de texto que se ha usado para guiar la generación del vídeo.
      • BASE64_ENCODED_IMAGE: una imagen de asunto codificada en bytes de Base64. Puedes repetir este campo y mimeType para especificar hasta tres imágenes del asunto.
      • IMAGE_MIME_TYPE: el tipo MIME de la imagen de entrada. Solo uno de los siguientes:

        • image/jpeg
        • image/png

        Puedes repetir este campo y bytesBase64Encoded para especificar hasta tres imágenes de asunto.

      • OUTPUT_STORAGE_URI: Opcional: el segmento de Cloud Storage en el que se almacenarán los vídeos de salida. Si no se proporciona, se devuelve un vídeo codificado en Base64 en la respuesta. Por ejemplo: gs://video-bucket/output/.
      • RESPONSE_COUNT: el número de archivos de vídeo que quieras generar. Valores enteros aceptados: del 1 al 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": {}.

        "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: valor de cadena que describe la relación de aspecto de los vídeos generados. Puedes usar los siguientes valores:
          • "16:9" para horizontal
          • "9:16" para vertical

          El valor predeterminado es "16:9".

        • NEGATIVE_PROMPT: opcional. Cadena que describe el contenido que quieres evitar que genere el modelo.
        • PERSON_SAFETY_SETTING: Opcional: valor de cadena que controla el ajuste de seguridad para generar personas o caras. Puedes usar los siguientes valores:
          • "allow_adult": solo permite generar imágenes de personas adultas y caras de personas adultas.
          • "disallow": no genera personas ni caras.

          El valor predeterminado es "allow_adult".

        • RESOLUTION: Opcional: valor de cadena que controla la resolución del vídeo 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. Un valor entero que describe el número de vídeos que se van a generar. El intervalo de valores aceptado es 1-4.
        • SEED_NUMBER: Opcional. Un valor uint32 que usa el modelo para generar vídeos deterministas. Si especificas un número de semilla en tu solicitud sin cambiar otros parámetros, el modelo generará los mismos vídeos. El intervalo de valores aceptado es 0-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 vídeo.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: Comprueba el estado de la operación de larga duración de generación de vídeo.

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

      • PROJECT_ID: tu Google Cloud ID de proyecto.
      • MODEL_ID: ID del modelo que se va a usar.
      • OPERATION_ID: el ID de operación único devuelto en la solicitud original para generar el vídeo.

      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 sigue en curso o ha finalizado.

    Usar imágenes de estilo para generar vídeos

    Sigue estos pasos:

    Consola

    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 ajustes:

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

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

    4. En la sección Referencia, selecciona Estilo > haz clic en Añadir.

    5. Elige una imagen de tu ordenador para subirla.

    6. Opcional: En la sección Seguridad, seleccione uno de los siguientes ajustes de generación de personas:

      • Permitir (solo para adultos): valor predeterminado. Generar solo personas o caras de adultos. No generes imágenes de personas jóvenes o niños, ni de sus caras.

      • No permitir: no se generarán personas ni caras.

    7. Opcional: En la sección Opciones avanzadas, introduce un valor de Semilla para aleatorizar la generación de vídeo.

    8. En el cuadro Escribe tu petición, introduce la petición de texto que describa los vídeos que quieres generar.

    9. Haz clic en Generar.

    REST

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

    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 vídeo. Esta solicitud inicia una operación de larga duración y almacena la salida en un segmento de Cloud Storage que especifiques.

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

      • PROJECT_ID: tu ID de proyecto. Google Cloud
      • TEXT_PROMPT: la petición de texto que se ha usado para guiar la generación del vídeo.
      • BASE64_ENCODED_IMAGE: una imagen de estilo codificada en bytes de Base64.
      • IMAGE_MIME_TYPE: el tipo MIME de la imagen de entrada. Solo una de las siguientes:
        • image/jpeg
        • image/png
      • OUTPUT_STORAGE_URI: Opcional: el segmento de Cloud Storage en el que se almacenarán los vídeos de salida. Si no se proporciona, los bytes de vídeo se devuelven en la respuesta. Por ejemplo: gs://video-bucket/output/.
      • RESPONSE_COUNT: el número de archivos de vídeo que quieras generar. Valores enteros aceptados: del 1 al 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": {}.

        "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: valor de cadena que describe la relación de aspecto de los vídeos generados. Puedes usar los siguientes valores:
          • "16:9" para horizontal
          • "9:16" para vertical

          El valor predeterminado es "16:9".

        • NEGATIVE_PROMPT: opcional. Cadena que describe el contenido que quieres evitar que genere el modelo.
        • PERSON_SAFETY_SETTING: Opcional: valor de cadena que controla el ajuste de seguridad para generar personas o caras. Puedes usar los siguientes valores:
          • "allow_adult": solo permite generar imágenes de personas adultas y caras de personas adultas.
          • "disallow": no genera personas ni caras.

          El valor predeterminado es "allow_adult".

        • RESOLUTION: Opcional: valor de cadena que controla la resolución del vídeo 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. Un valor entero que describe el número de vídeos que se van a generar. El intervalo de valores aceptado es 1-4.
        • SEED_NUMBER: Opcional. Un valor uint32 que usa el modelo para generar vídeos deterministas. Si especificas un número de semilla en tu solicitud sin cambiar otros parámetros, el modelo generará los mismos vídeos. El intervalo de valores aceptado es 0-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 vídeo.
      {
        "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/veo-2.0-generate-001/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
      }
      

    2. Opcional: Comprueba el estado de la operación de larga duración de generación de vídeo.

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

      • PROJECT_ID: tu Google Cloud ID de proyecto.
      • MODEL_ID: ID del modelo que se va a usar.
      • OPERATION_ID: el ID de operación único devuelto en la solicitud original para generar el vídeo.

      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 sigue en curso o ha finalizado.

    Siguientes pasos