Saltar para o conteúdo principal
POST
A geração a partir de texto ou imagens aceita segundos inteiros de 3 a 15, com padrão 10. A interpolação inicial/final e o trecho adicionado na extensão permitem até 10 segundos. A edição ignora duration e mantém a duração do vídeo de origem. Entradas de vídeo são editadas por padrão; a extensão exige "omni_reference_task_type": "extend".

Autenticação

string
obrigatório
Use autenticação Bearer Token. Obtenha uma chave na página de gerenciamento de API Keys e envie solicitações com Content-Type: application/json.

Parâmetros da solicitação

string
obrigatório
Deve ser gemini-omni-1.2-flash.
string
obrigatório
Instruções de texto obrigatórias: descreva a cena para texto em vídeo, ou movimentos, estilo e alterações para os demais modos. prompt é obrigatório mesmo com imagens de referência, quadros inicial/final, vídeo ou extend_from_task_id. Omiti-lo retorna HTTP 400.
integer
padrão:"10"
Duração da saída para geração a partir de texto ou imagens, inteiro de 3 a 15, com padrão 10. A interpolação inicial/final e a extensão aceitam apenas 3–10 segundos. Na extensão, representa a duração do trecho adicionado; o vídeo retornado inclui o original e o novo trecho. A edição ignora duration e mantém a duração do vídeo de origem. Valores do parâmetro fora da faixa fazem a tarefa falhar com invalid_duration.
string
padrão:"720p"
360p / 720p / 1080p / 4k, sem diferenciar maiúsculas; 2160p equivale a 4k. As saídas 1080p e 4k são ampliadas por upsampling. A resolução afeta os tokens de saída e o saldo reservado. Outros valores fazem a tarefa falhar com invalid_resolution.
string
padrão:"16:9"
Apenas 16:9 (horizontal, padrão) e 9:16 (vertical). Outros valores são tratados como 16:9.
string[]
Imagens de referência apenas como URLs HTTP(S) diretas e acessíveis publicamente. Data URLs e Base64 não são aceitos. Uma imagem serve como quadro inicial; várias servem como referências de sujeitos. Até 10 imagens no total, incluindo os quadros inicial/final. Para personagens, recomenda-se no máximo 2 personagens com até 3 imagens cada, totalizando até 6 imagens.
string
Quadro inicial. Sozinho, define o início do vídeo; com last_frame_image, ativa a interpolação entre os dois quadros. Somente URLs HTTP(S) diretas de imagem e acessíveis publicamente são aceitas.
string
Quadro final; exige first_frame_image, caso contrário a tarefa falha com invalid_frame_images. Use a mesma proporção nas duas imagens, correspondente a aspect_ratio. Somente URLs HTTP(S) diretas de imagem e acessíveis publicamente são aceitas.
object[]
Imagens com funções, equivalentes aos campos diretos dos quadros inicial/final. Escolha uma forma de especificá-los. Todas as imagens usadas contam para o limite total de 10.
string[]
Vídeo para editar ou estender: no máximo 1 clipe de até 15 segundos. Somente URLs HTTP(S) diretas de vídeo e acessíveis publicamente são aceitas. Data URLs e Base64 não são aceitos. O padrão é editar.
string
padrão:"auto"
Tipo de tarefa: auto (padrão, deduzido das entradas) / edit (edição) / extend (extensão) / reference (várias imagens de referência). Também aceita text_to_video / image_to_video / reference_to_video. Se omitido ou definido como auto, video_urls e extend_from_task_id editam por padrão. Para estender, informe extend explicitamente.
string
ID de uma tarefa de geração anterior sua para reutilizar o vídeo sem novo upload. O padrão é editar. Com "omni_reference_task_type": "extend", adiciona um trecho de até 10 segundos ao final.

Recursos e limites

  • A saída tem 24fps e inclui diálogos, música ou efeitos sonoros. Descreva o áudio desejado em prompt.
  • Entrada de áudio, system prompt, temperature e parâmetros de prompt negativo não são suportados. Escreva as exclusões diretamente em prompt.
  • Restrições regionais do provedor: no EEE, na Suíça e no Reino Unido, não são suportadas a edição ou extensão de vídeos enviados nem a edição de imagens com menores de idade.
  • Todas as saídas contêm uma marca d’água invisível SynthID.

Exemplos

Envie cada corpo JSON para POST /v1/videos/generations. Substitua URLs e IDs de exemplo por suas próprias entradas disponíveis.

Vídeo vertical de 15 segundos em 4K

Imagem em vídeo e referências de sujeitos

Interpolação entre quadros inicial e final

Definir quadros usando funções

Edição de vídeo

A edição mantém a duração do vídeo de origem; duration não tem efeito. Use instruções de edição curtas e específicas. Para uma alteração local, acrescente Keep everything else the same.

Estender uma tarefa existente

Para estender um vídeo enviado, substitua extend_from_task_id por video_urls e mantenha "omni_reference_task_type": "extend". O vídeo retornado contém o original seguido do trecho adicionado. duration controla apenas a duração adicionada, limitada a 10 segundos; somente os segundos adicionados são cobrados. Por exemplo, um vídeo original de 5 segundos com duration: 4 retorna um vídeo de aproximadamente 9 segundos.

Resposta de envio e consulta de tarefa

Um envio bem-sucedido retorna HTTP 200; leia data[0].task_id. Consulte o status da tarefa a cada 5–10 segundos até completed ou failed. Recomenda-se uma espera total de 10 minutos. Se o cliente atingir o tempo limite, continue consultando a tarefa original sem reenviá-la.
Tempos aproximados: um vídeo de 15 segundos em 360p leva cerca de 30 segundos; em 4K, cerca de 5 minutos. Confirme pelo status da tarefa.
data na resposta de consulta é o objeto da tarefa. data.result.videos[0].url é um array; a primeira URL é data.result.videos[0].url[0]. É possível reproduzir ou baixar diretamente. Arquive o arquivo para armazenamento de longo prazo. data.cost é a cobrança final em USD.

Cobrança e saldo reservado

Cobrança por tokens: a resolução afeta os tokens de vídeo por segundo. Na geração a partir de texto ou imagens, duration define a duração da saída. A edição ignora esse parâmetro e mantém a duração do vídeo de origem; a extensão o usa apenas para o trecho adicionado. Consulte os preços da APIMart. No envio, o saldo é reservado conforme a resolução e max(10, duration) segundos; com vídeo de entrada, a estimativa é de 15 segundos. A reserva não é a cobrança final. Após o sucesso, o valor é ajustado ao uso real; consulte data.cost para o total final. A extensão é cobrada apenas pelos segundos adicionados. Falhas não são cobradas. Saldo insuficiente para a reserva retorna HTTP 402.

Tratamento de erros

Erros de parâmetros (invalid_* / unsupported_*) mudam imediatamente a tarefa para failed, sem cobrança. Consulte o status mesmo após um envio bem-sucedido.

Perguntas frequentes

prompt é obrigatório quando envio imagens ou vídeo?

Sim. Todos os modos exigem prompt, incluindo geração a partir de imagens, interpolação inicial/final, edição, extensão e reutilização de vídeo por extend_from_task_id. A ausência desse campo retorna HTTP 400.

Posso enviar imagens ou vídeo diretamente em Base64?

Não. image_urls, first_frame_image, last_frame_image, image_with_roles[].url e video_urls aceitam somente URLs HTTP(S) diretas e acessíveis publicamente. Não envie data:image/..., data:video/... nem strings Base64 brutas.