API Veo na Vertex AI

Veo é o nome do modelo compatível com a geração de vídeo. O Veo gera um vídeo com base em um comando de texto ou de imagem (/products#product-launch-stages) fornecido por você.

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

Modelo ID do modelo
Geração de vídeo veo-2.0-generate-001

Solicitação HTTP

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

Corpo da solicitação

{
  "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 seguintes parâmetros para o modelo Veo. Para saber mais, consulte Gerar vídeos usando comandos de texto e imagem usando o Veo.

Parâmetro Descrição Tipo Valores aceitáveis e descrição
imagem Obrigatório (imagem para vídeo)
Opcional se um comando de texto for fornecido (texto para vídeo)

Entrada de imagem para orientar a geração de vídeo.
string
  1. String de byte de imagem codificada em Base64 ou
  1. URI do bucket do Cloud Storage

Recomendado: 1.280 x 720 pixels ou 720 x 1.280 pixels

Se a proporção da imagem for diferente, ela será cortada com uma ferramenta de corte central.
Se a proporção da imagem for a mesma, mas a resolução for maior, a imagem será redimensionada.
prompt Obrigatório (texto para vídeo)
Opcional se um comando de entrada de imagem for fornecido (imagem para vídeo)

Uma string de texto para orientar os primeiros oito segundos (veo-2.0-generate-001) do vídeo.
string Qualquer string de texto para orientar a geração de vídeos. Por exemplo:

  • Uma cena rápida em uma área distópica movimentada com placas de neon brilhantes, carros voadores e névoa, noite, reflexo de lentes, iluminação volumétrica
  • Um holograma neon de um carro dirigindo em velocidade máxima, velocidade da luz, cinema, detalhes incríveis, iluminação volumétrica
  • Várias águas-vivas pintadas pulsando debaixo d'água. O corpo deles é transparente e brilhando no oceano profundo
  • close-up extremo com profundidade rasa de uma poça de rua em uma rua, refletindo uma movimentada cidade futurista de Tóquio com letreiros de neon brilhantes, noite, alargamento de lentes
  • Timelapse das aurora boreal dançando no céu do Ártico, estrelas brilhando, paisagem coberta de neve
  • Um caubói solitário caminhando por uma planície aberta com um lindo pôr do sol, luz suave, cores quentes
duraçãoSegundos Obrigatório
A duração dos arquivos de vídeo que você quer gerar.
integer Os valores inteiros aceitos são de 5 a 8. O padrão é 8.
Prompt negativo Opcional
Uma string de texto que descreve tudo o que você não quer que o modelo gere.
string Qualquer string de texto para instruir o modelo a omitir dos vídeos gerados. Por exemplo:

  • iluminação do teto, cores brilhantes
  • pessoas, animais
  • vários carros, vento
AprimorarComando Opcional
Use o Gemini para aprimorar seus comandos.
booleano Os valores aceitos são yes ou no. O padrão é yes.
sugestão Opcional
Um número a ser solicitado para tornar os vídeos gerados determinísticos.

Adicionar um número de sugestão à sua solicitação sem alterar outros parâmetros fará com que o modelo produza os mesmos vídeos.
uint32 0 a 4.294.967.295
StorageURI Opcional
Um URI do bucket do Cloud Storage para armazenar o vídeo de saída.

Se não forem fornecidos, os bytes do vídeo codificados em base64 serão retornados na resposta.
string O local do Cloud Storage para salvar os vídeos gerados. Padrão: gs://BUCKET_NAME/SUBDIRECTORY
Contagem de amostras Opcional
O número de imagens de saída solicitadas.
int 1-4
proporção Opcional
Define a proporção do vídeo gerado.
string 16:9 (padrão, paisagem)
9:16 (retrato)
geração de pessoas Opcional
A configuração de segurança que controla se a geração de pessoas ou rostos é permitida.
string allow_adult (valor padrão): só permite a geração de adultos
dont_allow: não permite a inclusão de pessoas/rostos em imagens

Exemplo de solicitação

Use as seguintes solicitações para enviar uma solicitação de texto para vídeo ou de imagem para 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)
  • 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.
  • Outros parâmetros opcionais

    Use as variáveis opcionais a seguir, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros a seguir ao 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: não permite 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 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)
  • 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 centralmente 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.
  • Outros parâmetros opcionais

    Use as variáveis opcionais a seguir, dependendo do seu caso de uso. Adicione alguns ou todos os parâmetros a seguir ao 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: não permite 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"
}

Pesquisar o status da operação de longa duração de 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)
  • 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 após o envio de uma solicitação de geração de vídeo.

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 (operação de pesquisa de longa duração)

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

{
   "name": string,
   "done": boolean,
   "response":{
      "@type":"type.googleapis.com/cloud.ai.large_models.vision.GenerateVideoResponse",
      "videos":[
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
         {
           "gcsUri": string,
           "mimeType": string
         },
      ]
   }
}
Elemento de resposta Descrição
name O nome completo da operação de longa duração que começa após o envio de uma solicitação de geração de vídeo.
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 do vídeo gerados.
video O vídeo gerado.
uri O URI do Cloud Storage do vídeo gerado.
encoding O tipo de codificação de vídeo.

Exemplo de resposta (operação de pesquisa 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