Loading...
Loading...
Animate a still image into video with Gemini Omni 1.1 Flash. The source image becomes the first frame and drives the generated motion.
Entre para executar modelos
No output yet
Run the model to see generated results.
import requests
result = requests.post(
'https://api.e2x.ai/v1/jobs/submit',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json'
},
json={
'model': 'google/omni-1.1-flash/image-to-video',
'input': {}
}
)import time
job_id = result.json()['jobId']
while True:
response = requests.get(
f'https://api.e2x.ai/v1/jobs/{'{job_id}'}',
headers={'Authorization': f'Bearer {'{API_KEY}'}'}
)
data = response.json()['data']
if data['status'] == 'completed':
print('Done!', data['outputs'][0]['url'])
break
elif data['status'] == 'failed':
raise Exception(f"Job failed: {'{'}data['error']['message']{'}'}")
time.sleep(2)Custo estimado por geração de acordo com duração e resolução. Você só paga pelo que executar.
O Gemini Omni 1.1 Flash chegou à disponibilidade geral no Google em 27 de agosto de 2026. Ele é da família Gemini, não da Veo, e nós expomos a capability image-to-video dele como google/omni-1.1-flash/image-to-video. Cobramos por segundo de vídeo finalizado — $0.09 o segundo em 720p, contra uma tabela de $0.15, porque um desconto fixo de 40% vale para as quatro capabilities. O clipe padrão de oito segundos sai por $0.72. Obrigatórios: prompt e image_url.
Entenda o que o frame parado é antes da sua primeira chamada. Ele é um contrato. Ele define o primeiro quadro e, junto com ele, o enquadramento, a lente, a paleta, o sujeito e cada defeito que já estava na foto. Seu prompt fica com os segundos seguintes, nada antes deles.
Quase todo resultado sem graça aqui vem de um erro só: um prompt que descreve a fotografia em vez da mudança. Diga o que se move. Diga para onde a câmera vai.
| Duração do clipe | Preço em 720p |
|---|---|
| 4 s | $0.36 |
| 6 s | $0.54 |
| 8 s (padrão) | $0.72 |
| 10 s | $0.90 |
A resolução escala essa taxa: 360p é 0.33× ($0.0297 o segundo), 1080p 1.5× ($0.135), 4K 2× ($0.18). Uma passada de quatro segundos em 360p custa $0.1188 — o jeito mais barato de descobrir se o seu frame parado se mexe.
Dois quadros com o meio entregue ao modelo? Omni 1.1 Flash start-end-frame-to-video. Um sujeito fotografado de vários ângulos, estável ao longo de uma lista de planos? Omni 1.1 Flash reference-to-video. Nenhum material de origem? O Omni 1.1 Flash text-to-video carrega o argumento completo sobre preço.
Trate o job como uma continuação, não como uma interpretação. O modelo aceita o seu frame parado como primeiro quadro e depois inventa vinte e quatro quadros plausíveis por segundo depois dele, todos ancorados no que você entregou. Essa ancoragem é o valor: um key visual já aprovado continua dentro da marca porque ninguém o gerou de novo.
Ela também é a restrição. Um quadro carregado entrega ao modelo mais objetos para manter coerentes enquanto tudo se mexe, e coerência é o ponto fraco desta geração. O model card do Google diz isso: "Manter consistência completa ao longo das edições, gerar cenas com movimento complexo ou renderizar texto perfeitamente correto continua sendo um desafio." Letreiros borram. Multidões embaralham rostos. Um sujeito sobre fundo limpo sobrevive melhor a dez segundos do que a bagunça sobrevive a quatro.
Faça o corte você mesmo. A saída vem em 16:9 ou 9:16 — sem quadrado, sem 4:5, sem ultrawide. Empurre um retrato 4:5 para dentro de um job 16:9 e alguma coisa cede: o modelo preenche as laterais com material que ninguém fotografou, ou a composição escorrega para caber. Você paga $0.09 o segundo de qualquer jeito. Corte antes, enquanto a decisão é de graça.
Não faça upscale para chegar ao 4K. A resolução de origem limita o que a saída consegue honestamente sustentar. Uma miniatura de 640 pixels de largura renderizada em 1080p é um arquivo maior com o mesmo detalhe, a 1.5× da taxa.
Deixe para onde o movimento possa ir. Espaço acima da cabeça do sujeito, estrada à frente do carro. Corte apertado e nada pode se mexer sem ser empurrado para fora do quadro — motivo comum para um clipe parecer uma foto tremendo.
Gere uma key no dashboard e mantenha ela no servidor. Nossa pipeline busca o image_url sozinha, então ele precisa estar acessível pela internet pública — um endereço HTTPS no seu CDN ou object storage, nunca um caminho local, localhost, ou uma URL atrás de login. URLs assinadas servem, desde que com uma janela generosa: os jobs levam uns quatro minutos, e um link de sessenta segundos morre antes.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/omni-1.1-flash/image-to-video",
"input": {
"prompt": "O vapor começa a subir enrolado do bico da chaleira e desliza para a direita. A câmera faz um push-in lento na alça. Zumbido de cozinha, uma chaleira começando a tiquetaquear. Nada mais no quadro se move.",
"image_url": "https://cdn.example.com/stills/copper-kettle-16x9.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8"
}
}'
Você recebe um ID de job de volta. Ou faz polling nele, ou nos passa um webhookUrl e pula o loop:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const start = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/image-to-video",
input: {
prompt:
"Ela se vira para a câmera e o cachecol levanta com o vento. Câmera fixa. Gaivotas, arrebentação ao longe.",
image_url: "https://cdn.example.com/stills/portrait-9x16.png",
aspect_ratio: "9:16",
resolution: "360p",
duration: "10",
},
}),
}).then((r) => r.json());
const { jobId } = start.data;
for (let tick = 0; tick < 360; tick++) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") {
await archive(job.data.outputs[0].url); // copie para algum lugar permanente
break;
}
if (["failed", "cancelled"].includes(job.data.status)) {
throw new Error(job.data.error?.message ?? job.data.status);
}
await new Promise((r) => setTimeout(r, 5000));
}
Um job reporta pending, depois processing, depois completed, failed ou cancelled. Dois detalhes do schema mordem quem passa por aqui: duration e resolution são strings, então mande "10" e não 10; e nenhum toggle de áudio existe, porque o som é gerado junto com a imagem e dirigido pelo seu prompt. As definições dos campos ficam atualizadas na spec legível por máquina.
Escreva só o que muda. Sujeito, luz e composição chegaram junto com o arquivo; repetir isso gasta atenção que o modelo poderia gastar com movimento. Não declare nenhum movimento e você recebe um quadro quase parado, com uma deriva, pagando a taxa cheia.
Um movimento, nomeado. O vapor sobe. Uma porta abre para dentro. O cabelo levanta. Escolha a ação que importa e deixe o resto parado — dizer isso em voz alta ajuda mais do que parece.
Uma instrução de câmera. "Push-in lento", "câmera fixa", "deriva na mão para a esquerda". Gramática simples ganha de um parágrafo de fotografia, e câmera não declarada vira decisão do modelo.
O som por baixo. Ruído de sala, trânsito, um efeito específico. Silêncio não é o padrão; uma mixagem não especificada é inventada para você. Os prompts vão até 50.000 caracteres, então tamanho nunca é o limite — precisão é. Nosso guia de prompt do Gemini Omni aprofunda o fraseado.
Ouça isso de nós em vez de ouvir de uma fatura. O Veo 3.1 Fast image-to-video roda nesta mesma plataforma por $0.01 o segundo — nove vezes abaixo do endpoint desta página.
| Endpoint | Clipe de 8 segundos | Vá nele quando |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.08 | Um frame parado, um clipe, nada depois dependendo dele |
| Omni 1.1 Flash image-to-video | $0.72 | Você precisa de dez segundos, de uma passada de rascunho em 360p, ou que este plano fique ao lado de outros |
| Veo 3.1 Fast text-to-video | $0.08 | O frame parado não está fazendo $0.64 de trabalho |
Os preços e as condições dos produtos podem mudar. Verifique o preço atual de cada provider antes de tomar uma decisão de compra. O preço do Google Batch ou Flex não é diretamente equivalente a um request de API on-demand padrão, porque as condições de agendamento, disponibilidade e processamento são diferentes; por isso ele ficou fora desta comparação. Esta é uma comparação de escopo limitado, não uma afirmação de que a E2X é a opção mais barata do mundo em qualquer configuração.
Leve isso a sério. Uma fotografia, animada uma vez, pertence ao Veo. O prêmio daqui se paga em três casos: sua montagem precisa de dez segundos e o Veo para em oito; você quer rascunhar a $0.0297 o segundo; ou este clipe tem que pertencer a um conjunto. Outros jeitos de animar um frame parado estão na categoria image-to-video, junto do nosso catálogo de modelos.
A saída é 24 fps, de três a dez segundos por geração, com um watermark SynthID em cada quadro que ninguém na cadeia consegue desligar. As URLs de resultado são temporárias — arquive o arquivo dentro do seu handler de conclusão. Um link que você não consegue buscar amanhã é uma renderização que você compra duas vezes.
Uma regra vale especificamente porque você faz upload de uma fotografia: no EEE, na Suíça e no Reino Unido, o Google bloqueia imagens de origem que mostram menores de idade, e algumas pessoas reconhecíveis também. O inglês também é o único idioma de prompt que o Google avaliou. Nossas notas de lançamento do Gemini Omni 1.1 Flash cobrem o que mais mudou em relação ao antecessor que ainda rodamos, descontinuado na origem em 30 de setembro de 2026.
Nove centavos compram um segundo em 720p. O clipe padrão tem oito segundos, então $0.72; dez segundos, o teto, dão $0.90. Essa taxa é 40% abaixo de uma tabela de $0.15, lida no nosso catálogo ao vivo em 28 de agosto de 2026. A resolução mexe no multiplicador — 0.33× em 360p, 1.5× em 1080p, 2× em 4K.
Veo, para a maioria dos frames parados isolados — $0.01 o segundo contra $0.09, ou $0.08 contra $0.72 em oito segundos. Volte para cá quando precisar de dez segundos, quando uma passada de rascunho em 360p economizar no total, ou quando o clipe tiver que combinar com outros feitos a partir do mesmo sujeito.
Só 16:9 e 9:16. Corte a sua origem para a proporção alvo antes de enviar; caso contrário o modelo resolve a diferença por conta própria e você pode perder parte da composição que aprovou.
Em qualquer lugar que a nossa pipeline alcance por HTTPS público — um CDN, um bucket S3 ou GCS, seu próprio servidor web. Caminhos locais, localhost e qualquer coisa atrás de autenticação falham. URLs assinadas funcionam quando a expiração passa com folga dos quatro minutos que um job leva.
Normalmente porque o prompt redescreve a imagem em vez de dirigi-la. O frame parado já fixou o sujeito e o enquadramento; sem movimento e sem movimento de câmera declarados, o modelo não tem em que agir. Reescreva como um movimento mais uma instrução de câmera.
Sim, produzido nativamente junto com a imagem e sincronizado com ela. Não existe campo has_sound nem modo mudo, então descreva a ambiência no prompt. O áudio não pode ser editado depois — mudar significa gerar de novo.
Sim. O Google bloqueia imagens de origem que mostram menores de idade, além de certas pessoas reconhecíveis, para usuários do EEE, da Suíça e do Reino Unido — política dele, aplicada em todos os providers. As saídas também carregam um watermark SynthID invisível, então planeje ter assets de IA rotulados.