Loading...
Loading...
Nível Veo 3.1 mais rápido e econômico, com texto em vídeo, imagem em vídeo, referência em vídeo e transições entre quadro inicial e final.
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/veo-3.1-fast/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.
Entregue uma imagem parada a este endpoint e ela vira o primeiro frame de um plano com movimento e som. Rodamos o Veo 3.1 Fast do Google como google/veo-3.1-fast/image-to-video, e cobramos por segundo de saída: $0.01 por segundo, ×1.5 com a trilha de áudio ligada. Então um clipe de 8 segundos em 720p com som é $0.12 — uma imagem mais um prompt, sem malabarismo de referências.
Não tem imagem inicial para trabalhar? Então o seu endpoint é o Veo 3.1 Fast text-to-video — mesmo modelo, mesmo preço, só prompt, e ele deixa você descer para 4 ou 6 segundos. Se em vez disso você tem várias imagens e o objetivo é manter um personagem consistente entre planos, vá para o Veo 3.1 Fast reference-to-video.
Ninguém vende este modelo por vídeo. Google, fal.ai, Replicate e nós medimos a saída segundo a segundo, então uma comparação justa precisa fixar a configuração. Aqui estão 8 segundos, 720p, áudio ligado, na última vez em que checamos, em 26 de agosto de 2026:
| Provider de API | Cobrança | Taxa (720p, áudio ligado) | Clipe de 8 segundos | vs. nós |
|---|---|---|---|---|
| E2X (atual) | por segundo | $0.01/s ×1.5 áudio | $0.12 | — |
| Google Gemini API | por segundo | $0.10/s | $0.80 | 6,7× o nosso preço |
| fal.ai | por segundo | $0.15/s | $1.20 | 10× o nosso preço |
| Replicate | por segundo | $0.15/s | $1.20 | 10× o nosso preço |
| E2X, preço de tabela (antes do desconto) | por segundo | $0.10/s ×1.5 | $1.20 | a nossa taxa sem desconto |
Fique um instante na última linha. O nosso preço de tabela sem desconto é $1.20 por um clipe de 8 segundos — o número idêntico ao que a fal.ai e a Replicate cobram. Os $0.12 que você paga agora são um décimo disso, e ainda 6,7× abaixo da própria API do Google.
A resolução pesa na conta de formas diferentes dependendo de onde você compra. Subir de 720p para 1080p não custa nada a mais na fal.ai nem na Replicate; o Google cobra uma taxa por segundo mais alta. Nós também tratamos resolução como multiplicador, então leia o número atual no llms.txt deste modelo antes de planejar uma rodada em 1080p.
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 sua imagem ancora o frame um. Tudo depois dele é gerado — segure esse modelo mental, porque ele explica tanto a força quanto o modo de falha.
A força: composição, paleta, figurino e cenário já estão resolvidos. Você não está apostando na prosa para reproduzir uma foto de produto que o cliente já aprovou. Alimente a imagem, descreva o movimento, receba um clipe que começa exatamente onde a imagem começava.
O modo de falha: quanto mais longe o clipe viaja daquele frame, mais ele improvisa. Peça uma órbita de 180° em oito segundos e o outro lado do sujeito é invenção. Peça um push-in lento e uma virada de cabeça, e ele segura.
O áudio vem junto na carona. O Google gera nativamente e a API deles não tem botão para desativar — diálogo em sincronia, passos na pisada certa, som de ambiente por baixo. Entra uma fotografia parada; sai algo com trilha.
As restrições do Google para a imagem de origem, sem rodeio:
image_url quando o job roda, não quando você envia.Esse último causa mais falhas que todos os outros juntos: links assinados de vida curta expiram no meio da fila.
Dois campos obrigatórios aqui: prompt e image_url.
curl -X POST https://api.e2x.ai/v1/jobs/submit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1-fast/image-to-video",
"input": {
"prompt": "O barista empurra a xícara para a frente e o vapor sobe em espiral. Push-in lento na crema. Chiado da máquina de espresso, conversa baixa de café ao fundo.",
"image_url": "https://example.com/counter-shot.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
Você recebe um job ID de volta. Faça polling nele, ou nos passe um webhook:
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const submitted = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/veo-3.1-fast/image-to-video",
input: {
prompt:
"Ela abaixa os óculos escuros e olha para fora do quadro, à esquerda. A barra do vestido levanta com o vento. Câmera fixa, gaivotas e arrebentação por baixo.",
image_url: "https://example.com/lookbook-03.jpg",
aspect_ratio: "9:16",
resolution: "720p",
duration: "8",
has_sound: "true",
seed: 88117,
},
}),
}).then((r) => r.json());
const jobId = submitted.data.jobId;
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 || "Animation failed");
}
await new Promise((r) => setTimeout(r, 5000));
}
Os jobs passam por pending → processing → completed, ou param em failed / cancelled. Poste um webhookUrl se preferir não fazer polling. Planejamos algo em torno de quatro minutos; a faixa publicada pelo Google é 11 segundos no melhor caso, 6 minutos no pico.
Olho nos tipos: duration, resolution e has_sound são strings. "true", não true.
Três portas para os mesmos pesos, com preço por segundo idêntico. O seu input decide qual delas:
| Endpoint | Clipe de 8s, 720p + áudio | Escolha quando |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.12 | Uma imagem já aprovada deve virar o frame um |
| Veo 3.1 Fast text-to-video | $0.12 | Nada existe ainda — e você quer a opção de 4s ou 6s |
| Veo 3.1 Fast reference-to-video | $0.12 | Até três imagens precisam definir um rosto, produto ou lugar recorrente |
A divisão honesta: use este endpoint quando a imagem é o frame de abertura. Use reference-to-video quando as suas imagens são orientação — o mesmo ator em cinco cenas — e aceite que ele te trava em 8 segundos. Só explorando? Não suba nada: text-to-video em 4 segundos custa $0.06 e queima um storyboard rápido. Veja o resto na categoria image-to-video ou no catálogo de modelos inteiro.
O erro comum é redescrever a imagem que você acabou de subir. O modelo consegue vê-la. Cada palavra gasta com "uma mulher de casaco vermelho num píer" é uma palavra não gasta com o que acontece em seguida — e convida à reinterpretação de um frame que você já tinha travado.
Escreva a mudança. Três hábitos carregam a maior parte da qualidade:
Dê um movimento principal. Uma virada de cabeça, um push de câmera, uma porta abrindo. Empilhe quatro ações em oito segundos e nenhuma delas se lê.
Diga onde a câmera está e se ela se move. "Fixa", "dolly in lento", "câmera na mão derivando para a direita". Silêncio nesse ponto produz flutuação sem rumo.
Sonorize em voz alta. Nomeie a ambiência e qualquer fala entre aspas. O áudio é gerado quer você planeje ou não, então planeje.
Prompts em inglês têm suporte completo. O Google não avaliou outros idiomas para este modelo, então mantenha as instruções em inglês mesmo quando a fala for em outro.
Dois dias. Essa é a sua janela de download. O Google guarda o vídeo gerado por dois dias — a formulação deles: você precisa baixar o seu vídeo em até 2 dias depois da geração. Puxe outputs[0].url para o seu próprio armazenamento no mesmo trecho de código que faz a leitura. O link devolvido é temporário.
SynthID está em todo frame. O Google marca toda saída do Veo com o seu marcador de proveniência imperceptível, verificável pela plataforma deles. Nenhum provider consegue desativar, nós inclusive.
Pessoas em regiões reguladas. Na UE, no Reino Unido, na Suíça e no MENA, personGeneration fica limitado a allow_adult.
Combine o aspect ratio com a sua origem. Uma imagem 16:9 com 9:16 pedido obriga o modelo a inventar as bordas.
Cobramos $0.01 por segundo de vídeo gerado, multiplicado por 1,5 quando o áudio está ligado. Isso faz um clipe de 8 segundos em 720p com som custar $0.12. Resoluções maiores aplicam o próprio multiplicador, então confira a página do modelo ao vivo antes de orçar um batch em 1080p ou 4k.
Abaixo de 8 MB, no mínimo 720p, e 16:9 ou 9:16. Buscamos ela pelo image_url que você fornece, então o link ainda precisa resolver quando o job rodar — URLs assinadas que expiram são a falha mais comum aqui.
Neste endpoint não — ele aceita exatamente um image_url. Se várias imagens precisam guiar uma geração, use o reference-to-video, que aceita um array de até três.
Vem, e é um motivo central para recorrer a este modelo. O Google produz diálogo sincronizado, efeitos e ambiência nativamente, sem botão de desligar na própria API deles. O nosso schema expõe has_sound, com padrão true, carregando o multiplicador ×1.5.
Até 8 segundos. Este endpoint aceita 4, 6 ou 8, mas saída em 1080p e 4k exige os 8 completos. Nada na família Veo 3.1 Fast passa de 8 segundos numa única chamada.
Todo vídeo do Veo carrega SynthID, o watermark imperceptível de proveniência de IA do Google, e dá para conferir na plataforma de verificação deles. Ninguém oferece um jeito de desligar.
Conte com uns quatro minutos por job. Os números oficiais do Google colocam o piso em 11 segundos e o teto em horário de pico em 6 minutos, então um webhook ganha do loop de polling assim que você estiver rodando qualquer volume real.