API de generación de vídeo de Veo en Vertex AI

Veo es el nombre del modelo que admite la generación de vídeo. Veo genera un vídeo a partir de una petición de texto o de imagen que le proporciones. Para obtener más información sobre Veo, consulta el resumen de la generación de vídeos con Veo.

Para explorar este modelo en la consola, consulta la Video Generationtarjeta de modelo en Model Garden.

Probar Veo en Vertex AI (Vertex AI Studio)

Probar Veo en Colab

Modelos admitidos

La API Veo admite los siguientes modelos:

Solicitud HTTP

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:predictLongRunning \

-d '{
  "instances": [
    {
      "prompt": string,
      "image": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "lastFrame": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "video": {
        // Union field can be only one of the following:
        "bytesBase64Encoded": string,
        "gcsUri": string,
        // End of list of possible types for union field.
        "mimeType": string
      },
      "referenceImages": [
        // A list of up to three asset images or at most one style image for the
        // model to use when generating videos.
        //
        // referenceImages is supported by veo-2.0-generate-exp in Preview
        {
        "image:" {
          // Union field can be only one of the following:
          "bytesBase64Encoded": string,
          "gcsUri": string,
          // End of list of possible types for union field.
          "mimeType": string
        },
        "referenceType": string
        }
      ]
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "compressionQuality": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean,
    "generateAudio": boolean,
    "negativePrompt": string,
    "personGeneration": string,
    "resolution": string, // Veo 3 models only
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string
  }
}'

Instancias

Instancias

prompt

string

Obligatorio para la función de texto a vídeo.
Opcional si se proporciona una petición de imagen de entrada (de imagen a vídeo).

Una cadena de texto para guiar los primeros ocho segundos del vídeo. Por ejemplo:

  • Una toma rápida a través de una bulliciosa ciudad distópica con carteles de neón brillantes, coches voladores y niebla, de noche, con reflejos de lente y iluminación volumétrica
  • Un holograma de neón de un coche que va a toda velocidad, a la velocidad de la luz, cinemático, con detalles increíbles e iluminación volumétrica
  • Muchas medusas moteadas pulsando bajo el agua. Sus cuerpos son transparentes y brillan en el océano profundo
  • primer plano extremo con poca profundidad de campo de un charco en una calle. Refleja una ajetreada ciudad futurista de Tokio con brillantes letreros de neón, de noche, con reflejos de lente
  • Timelapse de las auroras boreales bailando en el cielo ártico, con estrellas parpadeando y un paisaje cubierto de nieve
  • Un vaquero solitario cabalga por una llanura al atardecer, con una luz suave y colores cálidos.
image

Campo de unión

Opcional. Una imagen que sirva de guía para generar el vídeo. Puede ser una cadena bytesBase64Encoded que codifique una imagen o una cadena gcsUri URI a una ubicación de un segmento de Cloud Storage.

lastFrame

Campo de unión

Opcional. Imagen del primer fotograma de un vídeo para rellenar el espacio entre ellos. lastFrame puede ser una cadena bytesBase64Encoded que codifica una imagen o una cadena gcsUri URI a una ubicación de un segmento de Cloud Storage.

lastFrame solo es compatible con veo-2.0-generate-001.

video

Campo de unión

Opcional. Un vídeo generado por Veo para ampliar su duración. Puede ser una cadena bytesBase64Encoded que codifica un vídeo o un URI de cadena gcsUri a una ubicación de un segmento de Cloud Storage.

video solo es compatible con veo-2.0-generate-001.

referenceImages

list[referenceImages]

Opcional. Lista de hasta tres imágenes de recursos o, como máximo, una imagen de estilo que describa el referenceImages que debe usar el modelo al generar vídeos.

referenceImages es compatible con veo-2.0-generate-exp en Vista previa.

referenceImages.image

Campo de unión

Opcional. Contiene las imágenes de referencia de veo-2.0-generate-exp para usarlas como entrada de tema. Cada imagen puede ser una cadena bytesBase64Encoded que codifica una imagen o una cadena gcsUri URI a una ubicación de un segmento de Cloud Storage.

referenceImages.referenceType

string

Obligatorio en un objeto referenceImages. Especifica el tipo de imagen de referencia proporcionada. Se admiten los siguientes valores:

  • "asset": La imagen de referencia proporciona recursos para el vídeo generado, como la escena, un objeto o un personaje.
  • "style": La imagen de referencia proporciona información de estilo para los vídeos generados, como los colores de la escena, la iluminación o la textura.
bytesBase64Encoded

string

Cadena codificada en Base64 de bytes de un archivo de imagen o vídeo. Se usa con los siguientes objetos:

gcsUri

string

URI de cadena de una ubicación de un segmento de Cloud Storage. Se usa con los siguientes objetos:

mimeType

string

Obligatorio para los siguientes objetos:

Especifica el tipo MIME de un vídeo o una imagen.

En el caso de las imágenes, se aceptan los siguientes tipos MIME:

  • image/jpeg
  • image/png

En el caso de los vídeos, se aceptan los siguientes tipos MIME:

  • video/mp4

Parámetros

Parámetros
aspectRatio

string

Opcional. Especifica la relación de aspecto de los vídeos generados. Se aceptan los siguientes valores:

  • 16:9 (valor predeterminado)
  • 9:16
compressionQuality

string

Opcional. Especifica la calidad de compresión de los vídeos generados. Los valores aceptados son "optimized" y "lossless".

El valor predeterminado es "optimized".

durationSeconds

integer

Obligatorio. La duración en segundos de los archivos de vídeo que quieras generar.

Estos son los valores aceptados:

  • veo-2.0-generate-001: 5-8. El valor predeterminado es 8.
  • veo-3.0-generate-preview: 8.
  • Cuando uses referenceImages: 8.
enhancePrompt

boolean

Opcional. Usa Gemini para mejorar tus peticiones. Los valores aceptados son true y false. El valor predeterminado es true.

enhancePrompt no es compatible con veo-3.0-generate-001 ni veo-3.0-fast-generate-001.

generateAudio

boolean

Obligatorio para veo-3.0-generate-preview. Genera el audio del vídeo. Los valores aceptados son true y false.

generateAudio no es compatible con veo-2.0-generate-001 ni veo-2.0-generate-exp.

negativePrompt

string

Opcional. Una cadena de texto que describe cualquier cosa que quieras desaconsejar al modelo que genere. Por ejemplo:

  • iluminación cenital, colores vivos
  • personas y animales
  • varios coches, viento
personGeneration

string

Opcional. El ajuste de seguridad que controla si se permite la generación de personas o caras. Uno de los siguientes:

  • allow_adult (valor predeterminado): permite generar contenido solo para adultos.
  • dont_allow: no permite incluir personas ni caras en las imágenes
resolution

string

Opcional. Solo modelos de Veo 3. La resolución del vídeo generado. Los valores aceptados son 720p (valor predeterminado) y 1080p.

sampleCount

int

Opcional. Número de vídeos de salida solicitados. Los valores aceptados son 1-4.

seed

uint32

Opcional. Un número para solicitar que los vídeos generados sean deterministas. Si añades un número de semilla a tu solicitud sin cambiar otros parámetros, el modelo generará los mismos vídeos.

El intervalo aceptado es 0-4,294,967,295.

storageUri

string

Opcional. Un URI de segmento de Cloud Storage para almacenar el vídeo de salida, en el formato gs://BUCKET_NAME/SUBDIRECTORY. Si no se proporciona un segmento de Cloud Storage, se devuelven bytes de vídeo codificados en base64 en la respuesta.

Solicitudes de ejemplo

Usa los siguientes ejemplos para crear tu propia solicitud de vídeo:

Solicitud de generación de vídeo a partir de texto

REST

Para probar una petición de texto con la API Veo de Vertex AI, envía una solicitud POST al endpoint del modelo de editor.

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

  • PROJECT_ID: una cadena que representa tu ID de proyecto de Google Cloud .
  • MODEL_ID: cadena que representa el ID del modelo que se va a usar. Estos son los valores aceptados:
    • "veo-2.0-generate-001"
    • "veo-3.0-generate-001"
    • "veo-3.0-fast-generate-001"
    • "veo-3.0-generate-preview" (vista previa)
    • "veo-3.0-fast-generate-preview" (vista previa)
  • TEXT_PROMPT: la petición de texto que se ha usado para guiar la generación del vídeo.
  • OUTPUT_STORAGE_URI: opcional. Cadena que representa 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: Número de archivos de vídeo que se van a generar. El intervalo de valores aceptado es 1-4.
  • DURATION: un número entero que representa la duración de los archivos de vídeo generados. Estos son los valores aceptados para cada modelo:
    • Modelos de Veo 2: 5-8
    • Modelos de Veo 3: 8
  • 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/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 vídeo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Solicitud de generación de imagen a vídeo

REST

Para probar una petición de texto con la API Veo de Vertex AI, envía una solicitud POST al endpoint del modelo de editor.

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

  • PROJECT_ID: una cadena que representa tu ID de proyecto de Google Cloud .
  • MODEL_ID: cadena que representa el ID del modelo que se va a usar. Estos son los valores aceptados:
    • veo-2.0-generate-001 (GA)
    • veo-3.0-generate-preview (vista previa)
  • TEXT_PROMPT: la petición de texto que se ha usado para guiar la generación del vídeo.
  • INPUT_IMAGE: una cadena codificada en Base64 que representa la imagen de entrada. Para obtener la mejor calidad, recomendamos que la imagen de entrada tenga una resolución de 720p (1280x720 píxeles) o superior, y una relación de aspecto de 16:9 o 9:16. Las imágenes con otras relaciones de aspecto o tamaños se pueden recortar o se les puede cambiar el tamaño cuando se suben.
  • MIME_TYPE: una cadena que representa el tipo MIME de la imagen de entrada. Solo se admiten imágenes con los siguientes tipos MIME:
    • "image/jpeg"
    • "image/png"
  • OUTPUT_STORAGE_URI: opcional. Cadena que representa 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: Número de archivos de vídeo que se van a generar. El intervalo de valores aceptado es 1-4.
  • DURATION: un número entero que representa la duración de los archivos de vídeo generados. Estos son los valores aceptados para cada modelo:
    • Modelos de Veo 2: 5-8
    • Modelos de Veo 3: 8
  • 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/MODEL_ID:predictLongRunning

Cuerpo JSON de la solicitud:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "image": {
        "bytesBase64Encoded": "INPUT_IMAGE",
        "mimeType": "MIME_TYPE"
      }
    }
  ],
  "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 vídeo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Solicitud de vídeo con imágenes de recursos

REST

Para probar una petición de texto con la API Veo de Vertex AI, envía una solicitud POST al endpoint del modelo de editor.

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"
}

Solicitud de vídeo con una imagen de estilo

REST

Para probar una petición de texto con la API Veo de Vertex AI, envía una solicitud POST al endpoint del modelo de editor.

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"
}

Sondea el estado de la operación de larga duración de generación de vídeo

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

REST

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.

Cuerpo de la respuesta (solicitud de generación de vídeo)

Al enviar una solicitud de texto a vídeo o de imagen a vídeo, se devuelve la siguiente respuesta:

{
  "name": string
}
Elemento de respuesta Descripción
name Nombre completo de la operación de larga duración que comienza después de enviar una solicitud de generación de vídeo.

Respuesta de ejemplo (solicitud de generación de vídeo)

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

Cuerpo de la respuesta (sondear operación de larga duración)

Al sondear el estado de la operación de larga duración de generación del vídeo original, se devuelve una respuesta similar a la siguiente:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": integer,
      "videos":[
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
      ]
   }
}
Elemento de respuesta Descripción
bytesBase64Encoded Cadena codificada en bytes Base64 que representa el objeto de vídeo.
done Valor booleano que indica si la operación se ha completado.
encoding Tipo de codificación de vídeo.
gcsUri El URI de Cloud Storage del vídeo generado.
name Nombre completo de la operación de larga duración que comienza después de enviar una solicitud de generación de vídeo.
raiMediaFilteredCount Devuelve el número de vídeos que Veo ha filtrado debido a las políticas de IA responsable. Si no se filtra ningún vídeo, el recuento devuelto es 0.
raiMediaFilteredReasons Enumera los motivos por los que se han excluido vídeos de Veo debido a las políticas de IA responsable. Para obtener más información, consulta las categorías de códigos de filtros de seguridad.
response Cuerpo de la respuesta de la operación de larga duración.
video El vídeo generado.

Ejemplo de respuesta (sondear operación de larga duración)

{
   "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/OPERATION_ID",
   "done":true,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "raiMediaFilteredCount": 0,
      "videos":[
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
          "mimeType":"video/mp4"
        },
        {
          "gcsUri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
          "mimeType":"video/mp4"
        }
      ]
   }
}

Más información

Siguientes pasos