API Veo na Vertex AI

O Veo é o nome do modelo que aceita a geração de vídeos. O Veo gera um vídeo com base em um comando de texto ou de imagem que você fornece.

Para conferir esse modelo no console, consulte o card de modelo Video Generation no Model Garden.

Experimente o Veo na Vertex AI (Vertex AI Studio)

Testar o Veo em um Colab

Solicitar acesso: recursos experimentais

Modelos compatíveis

A API Veo é compatível com os seguintes modelos:

Solicitação 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,
      // Optional. An image to guide video generation.
      "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
      }
    }
  ],
  "parameters": {
    "aspectRatio": string,
    "negativePrompt": string,
    "personGeneration": string,
    "sampleCount": integer,
    "seed": uint32,
    "storageUri": string,
    "durationSeconds": integer,
    "enhancePrompt": boolean
  }
}'

Use os parâmetros a seguir para o modelo Veo. Para mais informações, consulte Gerar vídeos usando comandos de texto e imagem com o Veo.

Parâmetro

prompt

string

Obrigatório para a conversão de texto em vídeo.
Opcional se um comando de imagem de entrada for fornecido (imagem para vídeo).

Uma string de texto para orientar os primeiros oito segundos do vídeo. Por exemplo:

  • Uma filmagem acelerada de uma área distópica movimentada com letreiros de néon brilhantes, carros voadores e névoa, noite, flare de lente, iluminação volumétrica
  • Um holograma de néon de um carro em velocidade máxima, velocidade da luz, detalhes cinematográficos incríveis, iluminação volumétrica
  • Muitas águas-vivas ondulando sob a água. Os corpos deles são transparentes e brilham no oceano profundo
  • plano fechado com profundidade de campo rasa de uma poça na rua, refletindo uma cidade futurista movimentada de Tóquio com letreiros de neon brilhantes, noite, flare da lente
  • Timelapse das luzes do norte dançando no céu do Ártico, estrelas brilhando, paisagem coberta de neve
  • Um cowboy solitário cavalga por uma planície aberta em um lindo pôr do sol, luz suave, cores quentes

image

string

Obrigatório para conversão de imagem em vídeo.
Opcional se um comando de texto for fornecido (texto para vídeo).

Uma imagem de entrada para orientar a geração de vídeos. Recomendamos uma imagem de 1.280 x 720 pixels ou 720 x 1.280 pixels.

Opções:

  • Uma string de bytes de imagem codificada em Base64
  • Um URI de bucket do Cloud Storage

Se a proporção da imagem for diferente, ela será cortada usando uma ferramenta de corte central.

Se a proporção da imagem for a mesma, mas a resolução for maior, a imagem será redimensionada.

durationSeconds

integer

Obrigatório. A duração dos arquivos de vídeo que você quer gerar. Os valores inteiros aceitos são 5-8. O padrão é 8.

negativePrompt

string

Opcional. Uma string de texto que descreve o que você quer impedir que o modelo gere. Exemplo:

  • iluminação superior, cores brilhantes
  • pessoas, animais
  • vários carros, vento
enhancePrompt

boolean

Opcional. Use o Gemini para melhorar suas solicitações. Os valores aceitos são true ou false. O valor padrão é true.

seed

uint32

Opcional. Um número a ser solicitado para tornar os vídeos gerados determinísticos. Adicionar um número de sugestão à solicitação sem alterar outros parâmetros fará com que o modelo produza os mesmos vídeos.

O intervalo aceito é de 0 a 4,294,967,295.

storageURI

string

Opcional. Um URI do bucket do Cloud Storage para armazenar o vídeo de saída no formato gs://BUCKET_NAME/SUBDIRECTORY. Se um bucket do Cloud Storage não for fornecido, os bytes de vídeo codificados em base64 serão retornados na resposta.

sampleCount

int

Opcional. O número de imagens de saída solicitadas. Os valores aceitos são 1-4.

aspectRatio

string

Opcional. Define a proporção do vídeo gerado. Uma das seguintes:

  • 16:9 (padrão, paisagem)
  • 9:16 (retrato)

personGeneration

string

Opcional. A configuração de segurança que controla se a geração de pessoas ou rostos é permitida. Opções:

  • allow_adult (valor padrão): permite a geração somente de adultos
  • dont_allow: não permite a inclusão de pessoas/rostos em imagens
generateAudio

boolean

Necessário para veo-3.0-generate-preview. Gerar áudio para o vídeo. Os valores aceitos são true ou false.

generateAudio não é compatível com veo-2.0-generate-001.

Exemplo de solicitação

Use as solicitações a seguir para enviar uma solicitação de conversão de texto em vídeo ou de imagem em vídeo:

Solicitação de geração de texto para vídeo

REST

Para testar um comando de texto usando a API Vertex AI Veo, envie uma solicitação POST para o endpoint do modelo do editor.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_ID: o ID do modelo a ser usado. Valores disponíveis:
    • veo-2.0-generate-001 (lista de permissões do GA)
    • veo-3.0-generate-preview (Visualização prévia)
  • TEXT_PROMPT: o comando de texto usado para orientar a geração de vídeos.
  • OUTPUT_STORAGE_URI: opcional: o bucket do Cloud Storage para armazenar os vídeos de saída. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, gs://video-bucket/output/.
  • RESPONSE_COUNT: o número de arquivos de vídeo que você quer gerar. Valores inteiros aceitos: 1 a 4.
  • DURATION: a duração dos arquivos de vídeo que você quer gerar. Os valores inteiros aceitos são de 5 a 8.
  • Parâmetros opcionais adicionais

    Use as variáveis opcionais a seguir, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros abaixo no objeto "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO: string. Opcional. Define a proporção dos vídeos gerados. Valores: 16:9 (padrão, paisagem) ou 9:16 (retrato).
    • NEGATIVE_PROMPT: string. Opcional. Uma string de texto que descreve o que você quer impedir que o modelo gere.
    • PERSON_SAFETY_SETTING: string. Opcional. A configuração de segurança que controla se a geração de pessoas ou rostos é permitida. Valores:
      • allow_adult (valor padrão): permite a geração somente de adultos.
      • disallow: impede a inclusão de pessoas ou rostos em imagens.
    • RESPONSE_COUNT: int. Opcional. O número de imagens de saída solicitadas. Valores: 1-4.
    • SEED_NUMBER: uint32. Opcional. Um número para tornar os vídeos gerados determinísticos. Especificar um número de sugestão com sua solicitação sem alterar outros parâmetros orienta o modelo a produzir os mesmos vídeos. Valores: 0 - 4294967295.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT"
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": "RESPONSE_COUNT"
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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
Essa solicitação retorna um nome de operação completo com um ID exclusivo. Use esse nome de operação completo para consultar o status da solicitação de geração de vídeo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Solicitação de geração de imagem em vídeo

REST

Para testar um comando de texto usando a API Vertex AI Veo, envie uma solicitação POST para o endpoint do modelo do editor.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_ID: o ID do modelo a ser usado. Valores disponíveis:
    • veo-2.0-generate-001 (lista de permissões do GA)
    • veo-3.0-generate-preview (Visualização prévia)
  • TEXT_PROMPT: o comando de texto usado para orientar a geração de vídeos.
  • INPUT_IMAGE: string de bytes codificada em base64 que representa a imagem de entrada. Para garantir a qualidade, a imagem de entrada precisa ser de 720p ou mais (1.280 x 720 pixels) e ter uma proporção de 16:9 ou 9:16. Imagens de outras proporções ou tamanhos podem ser redimensionadas ou cortadas no centro durante o processo de upload.
  • MIME_TYPE: o tipo MIME da imagem de entrada. Somente as imagens dos seguintes tipos MIME são aceitas: image/jpeg ou image/png.
  • OUTPUT_STORAGE_URI: opcional: o bucket do Cloud Storage para armazenar os vídeos de saída. Se não forem fornecidos, os bytes de vídeo serão retornados na resposta. Por exemplo, gs://video-bucket/output/.
  • RESPONSE_COUNT: o número de arquivos de vídeo que você quer gerar. Valores inteiros aceitos: 1 a 4.
  • DURATION: a duração dos arquivos de vídeo que você quer gerar. Os valores inteiros aceitos são de 5 a 8.
  • Parâmetros opcionais adicionais

    Use as variáveis opcionais a seguir, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros abaixo no objeto "parameters": {}.

    "parameters": {
      "aspectRatio": "ASPECT_RATIO",
      "negativePrompt": "NEGATIVE_PROMPT",
      "personGeneration": "PERSON_SAFETY_SETTING",
      "sampleCount": RESPONSE_COUNT,
      "seed": SEED_NUMBER
    }
    • ASPECT_RATIO: string. Opcional. Define a proporção dos vídeos gerados. Valores: 16:9 (padrão, paisagem) ou 9:16 (retrato).
    • NEGATIVE_PROMPT: string. Opcional. Uma string de texto que descreve o que você quer impedir que o modelo gere.
    • PERSON_SAFETY_SETTING: string. Opcional. A configuração de segurança que controla se a geração de pessoas ou rostos é permitida. Valores:
      • allow_adult (valor padrão): permite a geração somente de adultos.
      • disallow: impede a inclusão de pessoas ou rostos em imagens.
    • RESPONSE_COUNT: int. Opcional. O número de imagens de saída solicitadas. Valores: 1-4.
    • SEED_NUMBER: uint32. Opcional. Um número para tornar os vídeos gerados determinísticos. Especificar um número de sugestão com sua solicitação sem alterar outros parâmetros orienta o modelo a produzir os mesmos vídeos. Valores: 0 - 4294967295.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "instances": [
    {
      "prompt": "TEXT_PROMPT",
      "image": {
        "bytesBase64Encoded": "INPUT_IMAGE",
        "mimeType": "MIME_TYPE"
      }
    }
  ],
  "parameters": {
    "storageUri": "OUTPUT_STORAGE_URI",
    "sampleCount": RESPONSE_COUNT
  }
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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
Essa solicitação retorna um nome de operação completo com um ID exclusivo. Use esse nome de operação completo para consultar o status da solicitação de geração de vídeo.
{
  "name": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/MODEL_ID/operations/a1b07c8e-7b5a-4aba-bb34-3e1ccb8afcc8"
}

Consultar o status da operação de longa duração da geração de vídeo

Verifique o status da operação de longa duração de geração de vídeo.

REST

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o Google Cloud ID do projeto.
  • MODEL_ID: o ID do modelo a ser usado. Valores disponíveis:
    • veo-2.0-generate-001 (lista de permissões do GA)
    • veo-3.0-generate-preview (Visualização prévia)
  • OPERATION_ID: o ID de operação exclusivo retornado na solicitação de geração de vídeo original.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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
Essa solicitação retorna informações sobre a operação, incluindo se ela ainda está em execução ou concluída.

Corpo da resposta (gerar solicitação de vídeo)

O envio de uma solicitação de texto para vídeo ou imagem para vídeo retorna a seguinte resposta:

{
  "name": string
}
Elemento de resposta Descrição
name O nome completo da operação de longa duração que começa depois que uma solicitação de geração de vídeo é enviada.

Exemplo de resposta (gerar solicitação de vídeo)

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

Corpo da resposta (pesquisa de operação de longa duração)

A pesquisa do status da operação de longa duração da geração de vídeo original retorna a seguinte resposta:

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "generatedSamples":[
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
         {
            "video":
            {
               "uri": string,
               "encoding": string
            }
         },
      ]
   }
}
Elemento de resposta Descrição
name O nome completo da operação de longa duração que começa depois que uma solicitação de geração de vídeo é enviada.
done Um valor booleano que indica se a operação foi concluída.
response O corpo da resposta da operação de longa duração.
generatedSamples Uma matriz dos objetos de amostra de vídeo gerados.
video O vídeo gerado.
uri O URI do Cloud Storage do vídeo gerado.
encoding O tipo de codificação do vídeo.

Exemplo de resposta (pesquisar operação de longa duração)

{
   "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",
      "generatedSamples":[
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_0.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_1.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_2.mp4",
               "encoding":"video/mp4"
            }
         },
         {
            "video":{
               "uri":"gs://STORAGE_BUCKET/TIMESTAMPED_SUBDIRECTORY/sample_3.mp4",
               "encoding":"video/mp4"
            }
         }
      ]
   }
}

Mais informações

A seguir