Loading...
Loading...
Generate video from up to seven reference images with Gemini Omni 1.1 Flash. The reference images carry character and style consistency into the result.
0/7 itens
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/reference-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.
Uma campanha nunca é um clipe só. É uma lista de planos — onze linhas, a mesma bolsa de entregador em todas elas, e nenhum orçamento para a tarde em que a bolsa fica cinza na linha seis. O reference-to-video mantém a bolsa sendo a mesma bolsa. Rodamos essa capability como google/omni-1.1-flash/reference-to-video e cobramos $0.09 por segundo de saída em 720p, então o clipe padrão de oito segundos sai por $0.72, áudio incluído.
O campo que faz o trabalho é o image_urls — um array, com minItems: 1 e maxItems: 7 no nosso schema. É por causa desse teto que esta página existe. Sete vagas mostram um sujeito de ângulos suficientes para o modelo parar de inventar os que você não deu.
Outro material, outra porta: um frame parado sozinho é Omni 1.1 Flash image-to-video, as duas pontas de um plano com um vão entre elas são start-end-frame-to-video, e um briefing sem nenhum asset é Omni 1.1 Flash text-to-video, que carrega a tabela de preços completa.
Nossa taxa, lida no catálogo ao vivo em 28 de agosto de 2026:
| Duração do clipe | Preço em 720p |
|---|---|
| 4 segundos | $0.36 |
| 6 segundos | $0.54 |
| 8 segundos (padrão) | $0.72 |
| 10 segundos | $0.90 |
A tabela é $0.15 o segundo; um desconto fixo de 40% leva isso a $0.09. A resolução escala a partir daí — $0.0297 em 360p, $0.18 em 4K, então uma renderização de dez segundos em 4K custa $1.80. E aí vem o número que decide como você constrói: anexe uma referência ou sete, nada acima se mexe. duration e resolution são a fórmula inteira. Referências são peso grátis.
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.
A API busca cada URL do array, então elas precisam estar onde os nossos workers alcancem por HTTPS simples — um bucket público, um link assinado ainda válido, nada atrás de login.
Sete é um máximo validado, não uma linha numa página de docs. Mande uma oitava e o request é rejeitado antes de encostar em uma GPU. Isso soa como um limite; trate como um orçamento. Um conjunto que merece as sete usa três quartos de perfil, perfil, costas, um detalhe que carrega a marca, um na distância em que o clipe vai enquadrar, e um sob luz neutra. Ângulos heróicos duplicados desperdiçam vaga. Ângulos que você omitir serão chutados.
Essa é a virada em relação à geração anterior. Nosso endpoint reference-to-video do Gemini Omni Flash roda a mesma ideia a $0.075 o segundo, sem nenhum teto documentado — o Google nunca publicou um, então nos recusamos a imprimir um número que não podíamos sustentar. É o endpoint mais barato, em vinte por cento, e dá para ver por quê: não há máximo validado de sete vagas nem nível de 360p onde ensaiar um conjunto de referências antes de gastar. O Google aposenta aquele modelo em 30 de setembro de 2026. Se alguma pipeline ainda aponta para lá, a migração é uma troca de slug, custa um quinto a mais por segundo e cai aqui.
Monte o array uma vez. Guarde as sete URLs ao lado da sua lista de planos e poste esse mesmo array em cada job. O conjunto é o termo fixo; o prompt é a variável.
Essa inversão é o workflow. Como as referências carregam o sujeito, cada prompt para de descrever como a coisa é e começa a descrever o que acontece com ela — câmera, o que se move, a luz, o som. Os prompts encurtam e os clipes ficam mais consistentes, o que não é a troca que as pessoas esperam. Fixe um seed quando estiver comparando duas versões do mesmo plano, para saber se quem ajudou foi a reescrita ou o dado.
Conte com 240 segundos por job e dispare a lista em paralelo. E mantenha a calibragem no que o model card do Google admite:
"Manter consistência completa ao longo das edições, gerar cenas com movimento complexo ou renderizar texto perfeitamente correto continua sendo um desafio."
Sete referências estreitam a deriva. Não a abolem.
Dois campos são obrigatórios: prompt e image_urls. Mantenha a sua key no servidor e poste o job.
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/reference-to-video",
"input": {
"prompt": "A imagem 1 é a bicicleta dobrada, a imagem 2 é a dobradiça, a imagem 3 é o ciclista. Pátio de paralelepípedos ao amanhecer. O ciclista desdobra a bicicleta e trava o quadro. Plano geral fixo. Canto de pássaros, um bonde ao longe.",
"image_urls": [
"https://example.com/bike-folded.jpg",
"https://example.com/bike-hinge.jpg",
"https://example.com/rider.jpg"
],
"duration": "8",
"aspect_ratio": "16:9"
}
}'
Volta um data.jobId. As renderizações levam minutos, então faça polling devagar — ou passe um webhookUrl e pule o polling.
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
// Um array, reaproveitado por todos os prompts.
const image_urls = [
"https://example.com/fox-puppet-front.jpg",
"https://example.com/fox-puppet-muzzle.jpg",
"https://example.com/fox-puppet-profile.jpg",
];
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/reference-to-video",
input: {
prompt:
"A imagem 1 é o fantoche de raposa. Ele se inclina para dentro pela esquerda do quadro e vira a cabeça de lado. Dolly lento para dentro. Farfalhar de papel, ruído de sala suave.",
image_urls,
duration: "10",
aspect_ratio: "9:16",
resolution: "1080p",
seed: 70413,
},
}),
}).then((r) => r.json());
const { jobId } = submitted.data;
while (true) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") { console.log(job.data.outputs[0].url); break; }
if (job.data.status === "failed") throw new Error(job.data.error?.message);
await new Promise((r) => setTimeout(r, 5000));
}
Os status correm pending → processing → completed, ou param em failed / cancelled. Uma armadilha: duration e resolution são strings. "10", nunca 10. Schema e preço estão na spec legível por máquina.
O Veo 3.1 Fast reference-to-video custa $0.01 o segundo nesta mesma plataforma. Nove vezes menos. Oito segundos lá são $0.08 contra $0.72 aqui, e não vamos enterrar isso embaixo de uma tabela.
Então a resposta padrão é Veo. Se uma lista de planos precisa de três referências, oito segundos e 720p, chamar qualquer outra coisa é gastar dinheiro com nada.
Quatro coisas viram o jogo. Você precisa de mais referências do que o Veo aceita, e ele para em três contra as nossas sete — a diferença entre cobrir um sujeito e amostrá-lo. Você precisa de dez segundos, que o Veo não te dá. Você precisa de 4K. Ou você quer a faixa de 360p, onde vinte rascunhos custam menos que um clipe finalizado e o vencedor é renderizado de novo a partir do mesmo array e da mesma seed. Fora esses quatro casos, vá de barato. Tem mais na categoria reference-to-video, e o resto no catálogo de modelos.
Suas referências são uploads de coisas reais, e às vezes de pessoas reais. O Google bloqueia uploads de imagem que mostram menores de idade, ou certas pessoas reconhecíveis, para usuários do Reino Unido, da Suíça e do Espaço Econômico Europeu. Aqui isso é uma restrição de elenco, não uma nota de rodapé. Coloque no briefing, não num job que falha às duas da manhã.
Cada quadro carrega o SynthID. O watermark invisível do Google está em toda saída e nenhum provider consegue desligar, nós inclusive. Resolva qualquer contrato que proíba assets de IA rotulados antes de integrar.
O som vem de palavras. O áudio é gerado junto com a imagem e dirigido pelo mesmo prompt — sem toggle has_sound, sem upload de referência de áudio.
As URLs de resultado expiram. Copie cada saída para o seu próprio storage no handler que lê outputs[0].url. Uma campanha que você renderiza de novo é uma campanha que você pagou duas vezes.
O inglês é o único idioma de prompt com suporte completo, e o Google incorporou o Vertex AI à Gemini Enterprise Agent Platform em 22 de abril de 2026 — é lá que este modelo aparece para compradores corporativos. O contexto está no nosso texto de lançamento.
Anexar sete imagens diz ao modelo o que existe. Não diz qual é a protagonista. Isso você faz em prosa: a imagem 1 é a chaleira, a imagem 2 é a tampa esmaltada, a imagem 3 é a cozinha. Numeradas, na primeira linha, antes de qualquer direção.
Depois pare de descrever o sujeito. Um prompt que re-especifica a cor e a forma de algo que você já anexou discute com as suas próprias referências, e o modelo racha a diferença. Gaste as palavras no que o array não consegue carregar: câmera, um movimento, a luz, a ambiência. Mantenha cada prompt em um único plano contínuo — peça uma narrativa de três cenas e você recebe um borrão. Nosso guia de prompt do Gemini Omni aprofunda o vocabulário de plano.
Sete, e o limite é publicado em vez de chutado: image_urls é validado com minItems: 1 e maxItems: 7, então uma oitava entrada falha no submit. O antecessor não tinha teto documentado. Essa é a maior diferença prática.
Não. Cobramos por segundo de vídeo finalizado, escalado pela resolução; a contagem de referências não entra nessa conta. Uma referência ou sete, um clipe de oito segundos em 720p custa $0.72. Duração e resolução são as únicas alavancas.
Numere elas no prompt — qual imagem tem o produto, qual tem o detalhe, qual tem o ambiente — e então descreva a ação. O image_urls é uma lista crua até a sua prosa distribuir os papéis.
É exatamente o formato pensado. Guarde o array uma vez e poste ele sem alteração em cada prompt, variando só a direção. Um seed fixado mantém a luz estável o bastante para os clipes montarem juntos.
Quase sempre, a $0.01 o segundo — o Veo 3.1 Fast é nove vezes mais barato para um request equivalente. Venha para cá quando três referências não derem cobertura suficiente, quando a montagem precisar de dez segundos, quando a entrega for em 4K, ou pelo loop de rascunho em 360p.
360p, 720p, 1080p ou 4K, em 16:9 ou 9:16, com 4, 6, 8 ou 10 segundos, sempre a 24 fps. As duas resoluções de cima são upscale em vez de renderizadas nativamente, então julgue a nitidez no seu próprio material.
O Google descontinua o gemini-omni-flash-preview nessa data, e todo provider que roda aqueles pesos para no mesmo dia. Aponte seus jobs para cá: mesmo formato de request, teto de referências documentado. A página antiga de reference-to-video fica no ar como referência de migração.