Genera videos con instrucciones de texto

Puedes usar Veo en Vertex AI para generar videos nuevos a partir de una instrucción de texto. Las interfaces compatibles incluyen la consola de Google Cloud y la API de Vertex AI.

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 proporcionas a la CLI de gcloud.

      After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Si deseas obtener más información, consulta Autentica para usar REST en la Google Cloud documentación de autenticación.

    Genera videos a partir de texto

    En los siguientes ejemplos, se muestra cómo puedes usar instrucciones de texto para generar videos:

    Console

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

      Media Studio

    2. Haz clic en Veo. Se mostrará la página de Veo Media Studio.

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

      • Modelo: Elige un modelo entre las opciones disponibles.

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

      • Cantidad de resultados: Ajusta el control deslizante o ingresa un valor. El valor máximo depende del modelo que seleccionaste.

      • Duración del video: Selecciona una duración entre 5 y 8 segundos.

      • Directorio de salida: Haz clic en Explorar para crear o seleccionar un bucket de Cloud Storage en el que se almacenarán los archivos de salida.

    4. 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 se generan personas ni rostros.

    5. Opcional: En la sección Opciones avanzadas, ingresa un valor de Seed. Proporcionar un valor de semilla garantiza que obtendrás el mismo resultado con la misma instrucción de texto.

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

    7. 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 el siguiente comando 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 Google Cloud ID del proyecto.
      • MODEL_ID: ID del modelo que se usará. Valores disponibles:
        • veo-2.0-generate-001 (DG)
        • veo-3.0-generate-preview (Vista previa)
        • veo-3.0-fast-generate-preview (Vista previa)
      • TEXT_PROMPT: Es la instrucción de texto que se usa para guiar la generación de video.
      • OUTPUT_STORAGE_URI: Opcional: Es el bucket de Cloud Storage en el que se almacenarán los videos de salida. Si no se proporciona, los bytes del video se devuelven 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.
      • DURATION: Es la duración de los archivos de video que deseas generar. Los valores de números enteros aceptados son del 5 al 8.
      • 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",
          "sampleCount": RESPONSE_COUNT,
          "seed": SEED_NUMBER
        }
        • ASPECT_RATIO: cadena. Opcional. Define la relación de aspecto de los videos generados. Valores: 16:9 (predeterminado, horizontal) o 9:16 (vertical).
        • NEGATIVE_PROMPT: cadena. Opcional. Es una cadena de texto que describe lo que quieres evitar que genere el modelo.
        • PERSON_SAFETY_SETTING: cadena. Opcional. Es el parámetro de configuración de seguridad que controla si se permite la generación de personas o rostros. Valores:
          • allow_adult (valor predeterminado): Permite la generación de adultos solamente.
          • disallow: No permite la inclusión de personas ni rostros en las imágenes.
        • RESPONSE_COUNT: int. Es opcional. Es la cantidad de imágenes de salida solicitadas. Valores: 1-4.
        • SEED_NUMBER: uint32. Opcional. Es un número para hacer que los videos generados sean 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. Valores: 0 - 4294967295.

      Método HTTP y URL:

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

      Cuerpo JSON de la solicitud:

      {
        "instances": [
          {
            "prompt": "TEXT_PROMPT"
          }
        ],
        "parameters": {
          "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/MODEL_ID: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/MODEL_ID: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/MODEL_ID/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á. Valores disponibles:
        • veo-2.0-generate-001 (DG)
        • veo-3.0-generate-preview (Vista previa)
      • 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ó.

    Python

    Instalar

    pip install --upgrade google-genai

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

    Establece 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

    import time
    from google import genai
    from google.genai.types import GenerateVideosConfig
    
    client = genai.Client()
    
    # TODO(developer): Update and un-comment below line
    # output_gcs_uri = "gs://your-bucket/your-prefix"
    
    operation = client.models.generate_videos(
        model="veo-3.0-generate-preview",
        prompt="a cat reading a book",
        config=GenerateVideosConfig(
            aspect_ratio="16:9",
            output_gcs_uri=output_gcs_uri,
        ),
    )
    
    while not operation.done:
        time.sleep(15)
        operation = client.operations.get(operation)
        print(operation)
    
    if operation.response:
        print(operation.result.generated_videos[0].video.uri)
    
    # Example response:
    # gs://your-bucket/your-prefix

    ¿Qué sigue?