API de generación de video de Veo en Vertex AI

Veo es el nombre del modelo que admite la generación de videos. Veo genera un video a partir de una instrucción de texto o una instrucción de imagen que proporciones. Para obtener más información sobre Veo, consulta la descripción general de la generación de video de Veo.

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

Prueba Veo en Vertex AI (Vertex AI Studio)

Probar Veo en un Colab

Modelos compatibles

La API de 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

Se requiere para la conversión de texto a video.
Opcional si se proporciona una instrucción de imagen de entrada (imagen a video).

Es una cadena de texto que guía los primeros ocho segundos del video. Por ejemplo:

  • Una toma de seguimiento rápido a través de una expansión distópica bulliciosa con carteles de neón brillantes, autos voladores y niebla, de noche, destello de lente, iluminación volumétrica
  • Un holograma de neón de un automóvil que conduce a máxima velocidad, velocidad de la luz, detalles cinematográficos increíbles, iluminación volumétrica
  • Muchas medusas moteadas que palpitan bajo el agua. Sus cuerpos son transparentes y brillan en las profundidades del océano.
  • Primer plano extremo con una profundidad de campo superficial de un charco en una calle que refleja una concurrida ciudad futurista de Tokio con brillantes carteles de neón, de noche, con destellos de lente
  • Lapso de tiempo de la aurora boreal bailando en el cielo ártico, estrellas titilando, paisaje cubierto de nieve
  • Un vaquero solitario cabalga por una llanura abierta al atardecer, con luz suave y colores cálidos
image

Campo de unión

Opcional. Es una imagen para guiar la generación de video, que puede ser una cadena bytesBase64Encoded que codifica una imagen o una cadena gcsUri con un URI a una ubicación de bucket de Cloud Storage.

lastFrame

Campo de unión

Opcional. Imagen del primer fotograma de un video para llenar el espacio entre ellos. lastFrame puede ser una cadena bytesBase64Encoded que codifica una imagen o una cadena gcsUri URI a una ubicación de bucket de Cloud Storage.

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

video

Campo de unión

Opcional. Es un video generado por Veo para extender su duración, que puede ser una cadena bytesBase64Encoded que codifica un video o un URI de cadena gcsUri a la ubicación de un bucket de Cloud Storage.

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

referenceImages

list[referenceImages]

Opcional. Es una lista de hasta tres imágenes de recursos o, como máximo, una imagen de estilo que describe el referenceImages que el modelo debe usar cuando genere videos.

referenceImages es compatible con veo-2.0-generate-exp en la versión preliminar.

referenceImages.image

Campo de unión

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

referenceImages.referenceType

string

Se requiere 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 video generado, como la escena, un objeto o un personaje.
  • "style": La imagen de referencia proporciona información de estilo para los videos generados, como los colores de la escena, la iluminación o la textura.
bytesBase64Encoded

string

Es una cadena codificada en Base64 de bytes de un archivo de imagen o video. Se usa con los siguientes objetos:

gcsUri

string

Es un URI de cadena a la ubicación de un bucket de Cloud Storage. Se usa con los siguientes objetos:

mimeType

string

Se requiere para los siguientes objetos:

Especifica el tipo de MIME de un video o una imagen.

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

  • image/jpeg
  • image/png

En el caso de los videos, se aceptan los siguientes tipos de MIME:

  • video/mp4

Parámetros

Parámetros
aspectRatio

string

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

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

string

Opcional. Especifica la calidad de compresión de los videos generados. Los valores aceptados son "optimized" o "lossless".

El valor predeterminado es "optimized".

durationSeconds

integer

Obligatorio. Es la duración en segundos de los archivos de video que deseas generar.

Se aceptan los siguientes valores:

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

boolean

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

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

generateAudio

boolean

Necesario para veo-3.0-generate-preview. Genera audio para el video. Los valores aceptados son true o false.

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

negativePrompt

string

Opcional. Es una cadena de texto que describe cualquier cosa que quieras evitar que genere el modelo. Por ejemplo:

  • iluminación superior, colores brillantes
  • personas, animales
  • Varios autos, viento
personGeneration

string

Opcional. Es el parámetro de configuración de seguridad que controla si se permite la generación de personas o rostros. Uno de los siguientes:

  • allow_adult (valor predeterminado): Permite la generación de contenido solo para adultos.
  • dont_allow: No permite la inclusión de personas o rostros en las imágenes.
resolution

string

Opcional. Solo para modelos de Veo 3 La resolución del video generado. Los valores aceptados son 720p (predeterminado) o 1080p.

sampleCount

int

Opcional. Es la cantidad de videos de salida solicitados. Los valores aceptados son 1-4.

seed

uint32

Opcional. Es un número que se solicita para que los videos generados sean determinísticos. Si agregas un número de origen a tu solicitud sin cambiar otros parámetros, el modelo producirá los mismos videos.

El rango aceptado es de 0 a 4,294,967,295.

storageUri

string

Opcional. Es el URI de un bucket de Cloud Storage para almacenar el video de salida, con el formato gs://BUCKET_NAME/SUBDIRECTORY. Si no se proporciona un bucket de Cloud Storage, se devuelven bytes de video codificados en base64 en la respuesta.

Solicitudes de muestra

Usa los siguientes ejemplos para crear tu propia solicitud de video:

Solicitud de generación de texto a video

REST

Para probar una instrucción de texto con la API de Vertex AI Veo, envía una solicitud POST al extremo del modelo de publicador.

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

  • PROJECT_ID: Es una cadena que representa el ID de tu proyecto de Google Cloud .
  • MODEL_ID: Es una cadena que representa el ID del modelo que se usará. Se aceptan los siguientes valores:
    • "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: Es la instrucción de texto que se usa para guiar la generación de video.
  • OUTPUT_STORAGE_URI: Opcional: Es una cadena que representa 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 se generarán. El rango de valores aceptado es de 1 a 4.
  • DURATION: Es un número entero que representa la duración de los archivos de video generados. A continuación, se indican los valores aceptados para cada modelo:
    • Modelos de Veo 2: 5 a 8
    • Modelos de Veo 3: 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",
      // "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/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"
}

Solicitud de generación de video a partir de imágenes

REST

Para probar una instrucción de texto con la API de Vertex AI Veo, envía una solicitud POST al extremo del modelo de publicador.

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

  • PROJECT_ID: Es una cadena que representa el ID de tu proyecto de Google Cloud .
  • MODEL_ID: Es una cadena que representa el ID del modelo que se usará. Se aceptan los siguientes valores:
    • veo-2.0-generate-001 (DG)
    • veo-3.0-generate-preview (Vista previa)
  • TEXT_PROMPT: Es la instrucción de texto que se usa para guiar la generación de video.
  • INPUT_IMAGE: Es una cadena codificada en Base64 que representa la imagen de entrada. Para obtener la mejor calidad, recomendamos que la resolución de la imagen de entrada sea de 720 p (1,280 x 720 píxeles) o superior, y que tenga una relación de aspecto de 16:9 o 9:16. Es posible que se cambie el tamaño o se recorte de forma centralizada las imágenes con otras relaciones de aspecto o tamaños cuando se suban.
  • MIME_TYPE: Es una cadena que representa el tipo de MIME de la imagen de entrada. Solo se admiten las imágenes de los siguientes tipos MIME:
    • "image/jpeg"
    • "image/png"
  • OUTPUT_STORAGE_URI: Opcional: Es una cadena que representa 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 se generarán. El rango de valores aceptado es de 1 a 4.
  • DURATION: Es un número entero que representa la duración de los archivos de video generados. A continuación, se indican los valores aceptados para cada modelo:
    • Modelos de Veo 2: 5 a 8
    • Modelos de Veo 3: 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",
      // "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/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 video.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Solicitud de video que usa imágenes de recursos

REST

Para probar una instrucción de texto con la API de Vertex AI Veo, envía una solicitud POST al extremo del modelo de publicador.

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

Solicitud de video con una imagen de estilo

REST

Para probar una instrucción de texto con la API de Vertex AI Veo, envía una solicitud POST al extremo del modelo de publicador.

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 una de las siguientes opciones:
    • 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"
}

Sondea el estado de la operación de larga duración de generación de video

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

REST

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

Cuerpo de la respuesta (solicitud de generación de video)

Si envías una solicitud de conversión de texto a video o de imagen a video, se devolverá la siguiente respuesta:

{
  "name": string
}
Elemento de la respuesta Descripción
name Es el nombre completo de la operación de larga duración que comienza después de que se envía una solicitud de generación de video.

Respuesta de muestra (solicitud de generación de video)

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

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

Si sondea el estado de la operación de larga duración de generación de video original, se muestra 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 la respuesta Descripción
bytesBase64Encoded Es una cadena codificada en bytes Base64 que representa el objeto de video.
done Es un valor booleano que indica si la operación se completó.
encoding Es el tipo de codificación de video.
gcsUri Es el URI de Cloud Storage del video generado.
name Es el nombre completo de la operación de larga duración que comienza después de que se envía una solicitud de generación de video.
raiMediaFilteredCount Devuelve un recuento de los videos que Veo filtró debido a las políticas de IA responsable. Si no se filtran videos, el recuento devuelto es 0.
raiMediaFilteredReasons Enumera los motivos por los que se filtraron los videos de Veo debido a las políticas de IA responsable. Para obtener más información, consulta Categorías de código del filtro de seguridad.
response Es el cuerpo de la respuesta de la operación de larga duración.
video Es el video generado.

Respuesta de muestra (sondeo de 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

¿Qué sigue?