Dev.to AI 🤖 Ai 👁 0 📖 10 min read

Como estender um vídeo com o Gemini Omni 1.2 Flash

Como estender um vídeo com o Gemini Omni 1.2 Flash Resposta rápida: Para estender um vídeo com o Gemini Omni 1.2 Flash, envie seu clipe e um prompt curto de continuação para a API Interactions. Cada turno adiciona de 3

Como estender um vídeo com o Gemini Omni 1.2 Flash

Como estender um vídeo com o Gemini Omni 1.2 Flash

Resposta rápida: Para estender um vídeo com o Gemini Omni 1.2 Flash, envie seu clipe e um prompt curto de continuação para a API Interactions. Cada turno adiciona de 3 a 10 segundos e retorna o clipe mais longo. Na Gemini API, o limite é de 30 segundos no total. A Agent Platform do Google Cloud chega a 40, mas somente se você planejar cada etapa para que ela não corte o início do seu vídeo.

Experimente o Apidog hoje

Para dicas de escrita de prompts, consulte nosso guia de extensão de cena do Omni 1.1. Este guia cobre as novidades: as requisições, os cálculos do encadeamento e o custo de um clipe de 40 segundos.

Como funciona a extensão de vídeo do Gemini Omni 1.2 Flash

A extensão de vídeo gera uma continuação no final de um clipe. O modelo lê até os últimos 10 segundos da sua entrada como contexto, gera de 3 a 10 segundos novos e os une ao clipe. Ele apenas anexa ao final: não é possível adicionar conteúdo no início nem estender o meio do vídeo.

O Google documenta limites diferentes dependendo de onde você chama o modelo:

Gemini API Agent Platform (Google Cloud)
Autenticação Chave de API Projeto e token de acesso
Duração total 30 segundos 40 segundos
Duração da entrada Sem limite separado especificado Qualquer duração
Imagens de referência Até 6 no Omni Até 2 por extensão
Modo de extensão Prompt primeiro, task como fallback task: "extend" em todos os exemplos
Seed e labels Não aparecem na documentação do Omni generation_config.seed, labels
Resultados armazenados 55 dias no plano pago Até 7 dias

Fontes: a documentação do Omni da Gemini API e a documentação de extensão da Agent Platform.

Na Agent Platform, o modelo lê até os últimos 10 segundos e concatena o novo segmento aos últimos 30 segundos da entrada. O exemplo do Google estende uma entrada de 60 segundos em 10 segundos e retorna 40 segundos, ou seja, os primeiros 30 segundos são descartados.

Timeline showing a 60-second input clip where the first 30 seconds are dropped, the last 30 seconds are kept, the model reads the final 10 seconds, and the 40-second output is the kept 30 seconds plus 10 new seconds.

Você não precisa montar nada manualmente, já que a saída inclui as filmagens anteriores. O Google edita alguns quadros finais da sua entrada para suavizar a transição.

O que mudou na extensão na versão 1.2

  • Clipes iniciais de 15 segundos. Na 1.1, o limite era 10. Cada turno de extensão continua limitado a 10 segundos.
  • Imagens de referência, seed e labels nas requisições de extensão da Agent Platform.
  • Nova sintaxe de prompt. O Google descontinuou tags como <IMAGE_REF_0>, usadas em guias mais antigos. Descreva cada imagem em linguagem natural.
  • Novo tipo de entrada. Os exemplos atuais usam "type": "video", e não o tipo document dos exemplos da 1.1.

Como estender um vídeo passo a passo na Gemini API

  1. Gere um clipe ou faça upload de um pela API Files. Os arquivos enviados são excluídos após 48 horas.
  2. Descreva apenas o que acontece em seguida.
  3. Defina duration entre "3s" e "10s" (padrão: 10).
  4. Salve o ID da interação para o próximo turno.
from google import genai

client = genai.Client()

first = client.interactions.create(
    model="gemini-omni-1.2-flash",
    input="A courier in a yellow jacket cycles through a rainy night market.",
    response_format={"type": "video", "duration": "15s"},
)

second = client.interactions.create(
    model="gemini-omni-1.2-flash",
    previous_interaction_id=first.id,
    input="The courier brakes at a red door. Keep the same yellow jacket.",
    response_format={"type": "video", "duration": "10s", "delivery": "uri"},
)

Para estender suas próprias filmagens, substitua previous_interaction_id por um array de entrada com {"type": "video", "uri": video_file.uri} e um item de texto.

  • Deixe task de lado no início. Segundo o Google, ela adiciona restrições rígidas, então defina "task": "extend" em video_config apenas como fallback.
  • Use delivery: "uri" acima de 4MB. Guarde o URI da resposta de criação. Um GET posterior retorna base64 inline mesmo para requisições com URI.
  • Mantenha store ativado. Com store: false, não é possível continuar a partir daquele ID de interação.

Os uploads têm duas restrições adicionais: não é possível adicionar diálogo onde alguém esteja falando, e não é possível estender a partir do EEE (Espaço Econômico Europeu), da Suíça ou do Reino Unido. A extensão multi-turno de vídeo gerado evita ambas.

Passo a passo da requisição na Agent Platform

Use esta rota para chegar a 40 segundos ou para uma fila de jobs. A geração pode levar mais de um minuto, então envie este corpo via POST para https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/interactions com background ativado:

{
  "model": "gemini-omni-1.2-flash",
  "background": true,
  "input": [
    { "type": "text", "text": "The courier opens the red door and steps inside." },
    { "type": "video", "uri": "gs://my-bucket/hop-1.mp4", "mime_type": "video/mp4" }
  ],
  "response_format": [
    {
      "type": "video",
      "delivery": "uri",
      "gcs_uri": "gs://my-bucket/out/",
      "aspect_ratio": "16:9",
      "duration": "5s"
    }
  ],
  "generation_config": {
    "seed": 4242,
    "video_config": { "task": "extend" }
  },
  "labels": { "campaign": "courier", "hop": "2" }
}

A chamada retorna um ID de interação com status in_progress. Consulte com polling usando GET .../locations/global/interactions/INTERACTION_ID. Quando a execução terminar, leia o URI gs:// na etapa model_output dentro de steps. Esse URI se torna a entrada para o próximo salto.

Também existem os modos stateless (store: false), stateful (store: true) e streaming. Os resultados armazenados e assíncronos ficam disponíveis por até 7 dias, então copie tudo o que precisar.

[VERIFY] Não executado: nenhum projeto do Google Cloud estava disponível. O corpo de exemplo do Google não inclui nem seed nem labels, portanto confirme onde inseri-los.

Encadeando até o limite de 40 segundos

Um salto só preserva todas as suas filmagens se a entrada dele tiver 30 segundos ou menos. Para chegar a 40 sem perder nada, alcance exatamente 30 primeiro.

Salto duration planejada Saída planejada duration sem planejamento Saída sem planejamento
Início 15s 15s 15s 15s
1 10s 25s 10s 25s
2 5s 30s 10s 35s
3 10s 40s 10s 40s, com os primeiros 5s descartados

Two chaining plans compared: the planned chain of 15 seconds plus 10, 5 and 10 reaches 40 seconds with nothing lost, while the naive chain of 15 seconds plus three 10-second hops reaches 40 seconds but drops the first 5 seconds.

A cadeia sem planejamento ganha 5 segundos extras e depois joga fora o início do seu vídeo. A duração do clipe não vai alertá-lo, porque as duas cadeias retornam 40 segundos.

Um início de 15 segundos não economiza chamadas para chegar a 40: começar com 10 também exige três extensões. Ele ajuda em outros casos, já que 25 segundos exigem uma extensão em vez de duas, e 35 exigem duas em vez de três.

Na Gemini API, pare depois do salto 2. O Google não informa o que acontece com uma requisição acima de 30 segundos.

Mantenha os personagens consistentes com imagens de referência e seed

Um personagem que saiu de quadro antes dos últimos 10 segundos fica invisível para o modelo, mesmo que esses quadros permaneçam no clipe. A solução do Google: mencione o personagem novamente ou passe uma imagem de referência no mesmo array input:

{ "type": "image", "uri": "gs://my-bucket/courier.png", "mime_type": "image/png" },
{ "type": "text", "text": "The courier from the reference image walks back into frame." }
  • Reutilize a mesma imagem em todos os saltos que precisarem desse personagem.
  • Escolha com cuidado na Agent Platform. Duas imagens por extensão cobrem apenas o que tem maior chance de sofrer variações.
  • Não envie vídeos de referência. O Google os suporta apenas para geração nova, não para extensão.
  • Informe os tempos com base no novo segmento. 0s no seu prompt significa o início da parte estendida, não o início do clipe.

Defina generation_config.seed para obter resultados reproduzíveis. Isso ajuda principalmente na depuração: execute o mesmo salto novamente com a mesma seed para verificar se uma mudança veio do seu prompt. O Google não garante que uma seed mantenha um personagem consistente entre prompts diferentes, então conte com as referências para isso. Use labels para acompanhar o faturamento por salto.

Quanto custa um clipe de 40 segundos

A página de preços do Google cobra a saída de vídeo do Omni 1.2 a US$ 12,00 por milhão de tokens. Não há informação sobre se uma extensão é cobrada apenas pelos segundos novos ou por todos os segundos retornados. A cadeia planejada gera 40 segundos, mas retorna 15, 25, 30 e 40, o que soma 110.

Resolução Por segundo Se apenas os segundos novos forem cobrados Se todos os segundos retornados forem cobrados
360p US$ 0,023 US$ 0,93 US$ 2,55
720p Cerca de US$ 0,07 US$ 2,78 US$ 7,65
1080p (com upscale) US$ 0,104 US$ 4,17 US$ 11,47
4K (com upscale) US$ 0,209 US$ 8,34 US$ 22,94

Essas são as tarifas da Gemini API, calculadas a partir dos tokens por segundo do Google. Tokens de entrada (US$ 1,50 por milhão) e tokens de raciocínio (US$ 9,00 por milhão) são cobrados à parte.

Até que você verifique, faça o orçamento com base na coluna da direita. Para manter a conta baixa:

  • Faça os rascunhos em 360p e valide toda a cadeia antes de pagar pelo 720p.
  • Escolha a resolução antes de encadear. A página do modelo na Agent Platform limita a entrada de upscale a 15 segundos, então um clipe finalizado de 40 segundos não cabe em uma única passagem.
  • Inclua regenerações de cenas difíceis no orçamento. O anúncio do Google cita ações esportivas rápidas, mudanças velozes de roteiro e física complexa como áreas ainda em aprimoramento.

As requisições para gemini-omni-1.1-flash são direcionadas à versão 1.2 a partir de 3 de dezembro de 2026 e cobradas nas tarifas da 1.2.

Deixe seu agente de codificação testar o fluxo assíncrono com a Apidog CLI

Uma cadeia assíncrona falha em silêncio: um polling que nunca termina, uma execução que termina como failed, um formato de resposta que muda. Deixe seu agente de codificação criar esse teste com a Apidog CLI e executá-lo para você.

npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_TOKEN>
apidog skill install

Depois, dê ao Claude Code, Codex ou Cursor um único [REDACTED PROMPT]
In Apidog project , create endpoints for POST and GET on the Omni
interactions URL. Build a test scenario named omni-extend-async: start a
3-second 360p extension with background set to true, save the interaction
ID, then loop with a 10-second delay on GET until status leaves in_progress.
Assert status is completed and a model_output step holds a video/mp4 item
with a uri or data. Run it and summarize any failures.


O agente valida seu payload e, em seguida, cria e executa o cenário:


bash
apidog cli-schema get test-scenario-update
apidog test-scenario create --project --name "omni-extend-async" --folder-id --priority 1
apidog test-scenario import-steps --project --source endpoint --ids ,
apidog cli-schema validate test-scenario-update --file scenario.json
apidog test-scenario update --project --file scenario.json
apidog run -t --project -e --timeout-request 300000 -r cli,junit --out-dir ./reports




Cada execução gera um clipe real e é cobrada, então rode à noite, e não a cada commit. Um salto de 3 segundos em 360p custa cerca de US$ 0,07 se apenas os segundos novos forem cobrados. A mesma linha se encaixa em um pipeline, como mostra nosso [guia de CI/CD da Apidog CLI](https://apidog.com/pt/blog/apidog-cli-ci-cd-pipeline?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation), e o [guia de configuração do Claude Code](https://apidog.com/pt/blog/apidog-cli-in-claude-code?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation) cobre o lado do agente. O Apidog Free atende até 4 usuários.

## FAQ

**Quanto tempo pode durar um vídeo do Gemini Omni 1.2 Flash?** Uma única geração produz de 3 a 15 segundos. Com extensão, a documentação da Gemini API indica 30 segundos no total, e a da Agent Platform, 40.

**Por que o início do meu vídeo estendido desapareceu?** Na Agent Platform, apenas os últimos 30 segundos da entrada são mantidos. Qualquer entrada com mais de 30 segundos perde o começo. Planeje seus saltos para que o último comece exatamente a partir de 30 segundos.

**Posso estender um vídeo que eu mesmo gravei?** Sim, fora do EEE, da Suíça e do Reino Unido. Faça o upload pela API Files ou aponte para o Cloud Storage na Agent Platform. Não é possível adicionar diálogo a um clipe enviado onde alguém esteja falando.

**Posso estender um clipe de graça?** Não pela API. O Google lista o plano gratuito como "Não disponível" para o Omni 1.2 e 1.1, então até um teste é cobrado. Uma extensão de 3 segundos em 360p é a mais barata que você pode executar.
📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.