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)
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 | |
---|---|
|
Obrigatório para a conversão de texto em vídeo. Uma string de texto para orientar os primeiros oito segundos do vídeo. Por exemplo:
|
|
Obrigatório para conversão de imagem em 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:
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 |
Obrigatório. A duração dos arquivos de vídeo que você quer gerar.
Os valores inteiros aceitos são |
negativePrompt |
Opcional. Uma string de texto que descreve o que você quer impedir que o modelo gere. Exemplo:
|
enhancePrompt |
Opcional. Use o Gemini para melhorar suas solicitações. Os valores
aceitos são |
seed |
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 |
storageURI |
Opcional. Um URI do bucket do Cloud Storage para armazenar o vídeo de saída no formato |
sampleCount |
Opcional. O número de imagens de saída solicitadas. Os valores aceitos são
|
aspectRatio |
Opcional. Define a proporção do vídeo gerado. Uma das seguintes:
|
personGeneration |
Opcional. A configuração de segurança que controla se a geração de pessoas ou rostos é permitida. Opções:
|
generateAudio |
Necessário para
|
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) ou9: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
.
- ASPECT_RATIO: string. Opcional. Define a proporção dos vídeos
gerados. Valores:
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
{ "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
ouimage/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) ou9: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
.
- ASPECT_RATIO: string. Opcional. Define a proporção dos vídeos
gerados. Valores:
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
{ "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
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
- Para mais informações sobre como usar o Veo na Vertex AI, consulte Gerar vídeos usando comandos de texto e imagem com o Veo.
A seguir
- Leia as informações do Google DeepMind sobre o modelo Veo.
- Leia a postagem do blog "Veo e Imagen 3: anúncio de novos modelos de geração de vídeos e imagens na Vertex AI".
- Leia a postagem do blog "Novos modelos e ferramentas de mídia generativa criados com criadores para criadores".