Loading...
Loading...
Niveau Veo 3.1 plus rapide et plus économique, couvrant texte-vidéo, image-vidéo, référence-vidéo et transitions entre image de début et de fin.
Connectez-vous pour exécuter des modèles
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)Coût estimé par génération selon la durée et la résolution. Vous ne payez que ce que vous utilisez.
Donnez une image fixe à cet endpoint et elle devient la première frame d'un plan animé et sonorisé. Nous opérons le Veo 3.1 Fast de Google sous google/veo-3.1-fast/image-to-video, et nous facturons à la seconde de sortie : $0.01 la seconde, ×1.5 avec la piste audio active. Un clip de 8 secondes en 720p avec du son revient donc à $0.12 — une image plus un prompt, sans jonglage de références.
Aucune image de départ à exploiter ? Alors votre endpoint est Veo 3.1 Fast text-to-video — même modèle, même prix, prompt seul, et il vous laisse descendre à 4 ou 6 secondes. Si au contraire vous avez plusieurs images et que l'enjeu est de garder un personnage cohérent d'un plan à l'autre, allez sur Veo 3.1 Fast reference-to-video.
Personne ne vend ce modèle à la vidéo. Google, fal.ai, Replicate et nous mesurons tous la sortie seconde par seconde : une comparaison juste doit donc figer la configuration. Voici 8 secondes, 720p, audio actif, lors de notre dernière vérification du 26 août 2026 :
| Provider API | Facturation | Tarif (720p, audio actif) | Clip de 8 secondes | vs. nous |
|---|---|---|---|---|
| E2X (actuel) | à la seconde | $0.01/s ×1.5 audio | $0.12 | — |
| Google Gemini API | à la seconde | $0.10/s | $0.80 | 6,7× notre prix |
| fal.ai | à la seconde | $0.15/s | $1.20 | 10× notre prix |
| Replicate | à la seconde | $0.15/s | $1.20 | 10× notre prix |
| Tarif public E2X (avant remise) | à la seconde | $0.10/s ×1.5 | $1.20 | notre tarif sans remise |
Arrêtez-vous sur cette dernière ligne. Notre tarif public sans remise est de $1.20 pour un clip de 8 secondes — le chiffre identique à ce que facturent fal.ai et Replicate. Les $0.12 que vous payez aujourd'hui en sont le dixième, et restent 6,7× sous l'API de Google elle-même.
La résolution frappe la facture différemment selon où vous achetez. Passer de 720p à 1080p ne coûte rien de plus sur fal.ai ou Replicate ; Google, lui, facture un tarif à la seconde plus élevé. Nous traitons nous aussi la résolution comme un multiplicateur : lisez donc le chiffre en vigueur dans le llms.txt de ce modèle avant de planifier une série en 1080p.
Les prix et les conditions produit peuvent changer. Vérifiez les tarifs en vigueur de chaque provider avant toute décision d'achat. La tarification Google Batch ou Flex n'est pas directement équivalente à une requête API on-demand standard, car les conditions de planification, de disponibilité et de traitement diffèrent ; elle est donc exclue de cette comparaison. Il s'agit d'une comparaison délimitée, et non d'une affirmation selon laquelle E2X serait l'option la moins chère au monde dans toutes les configurations.
Votre image ancre la frame numéro un. Tout ce qui vient après est généré — gardez ce modèle mental, parce qu'il explique à la fois la force et le mode de défaillance.
La force : composition, palette, costume et décor sont déjà réglés. Vous ne pariez pas sur de la prose pour reproduire une photo produit que le client a déjà approuvée. Envoyez l'image fixe, décrivez le mouvement, obtenez un clip qui commence exactement là où l'image commençait.
Le mode de défaillance : plus le clip s'éloigne de cette frame, plus il improvise. Demandez une orbite à 180° en huit secondes et l'autre côté du sujet est de l'invention. Demandez un lent travelling avant et un tour de tête, et il tient.
L'audio suit le mouvement. Google le génère nativement et leur API n'a aucun interrupteur pour le désactiver — dialogue synchrone, pas sur les pas, ambiance de pièce en dessous. Une photographie fixe entre ; quelque chose avec une bande-son ressort.
Les contraintes de Google sur l'image source, sans détour :
image_url au moment où le job tourne, pas au moment où vous le soumettez.Ce dernier point provoque plus d'échecs que tous les autres réunis : les liens signés à courte durée de vie expirent en pleine file d'attente.
Deux champs obligatoires ici : prompt et 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": "Le barista pousse la tasse vers le client et la vapeur monte en volutes. Lent travelling avant sur la crema. Sifflement de la machine à espresso, brouhaha feutré de café derrière.",
"image_url": "https://example.com/counter-shot.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"has_sound": "true"
}
}'
Vous récupérez un job ID. Faites du polling, ou donnez-nous un 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:
"Elle abaisse ses lunettes de soleil et jette un regard hors champ à gauche. L'ourlet se soulève dans le vent. Caméra fixe, mouettes et ressac en fond.",
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));
}
Les jobs passent pending → processing → completed, ou s'arrêtent sur failed / cancelled. Postez un webhookUrl si vous préférez ne pas poller. Nous tablons sur environ quatre minutes ; la fourchette publiée par Google va de 11 secondes au mieux à 6 minutes en pointe.
Attention aux types : duration, resolution et has_sound sont des chaînes. "true", pas true.
Trois portes vers des poids identiques, à un prix à la seconde identique. C'est votre entrée qui décide :
| Endpoint | Clip 8 s, 720p + audio | À choisir quand |
|---|---|---|
| Veo 3.1 Fast image-to-video | $0.12 | Une image fixe validée doit devenir la frame numéro un |
| Veo 3.1 Fast text-to-video | $0.12 | Rien n'existe encore — et vous voulez une option 4 s ou 6 s |
| Veo 3.1 Fast reference-to-video | $0.12 | Jusqu'à trois images doivent définir un visage, un produit ou un lieu récurrent |
Le partage honnête : utilisez cet endpoint quand l'image fixe est la frame d'ouverture. Utilisez reference-to-video quand vos images sont plutôt un guide — le même acteur à travers cinq scènes — et acceptez qu'il vous verrouille à 8 secondes. Vous explorez seulement ? N'uploadez rien : le text-to-video à 4 secondes coûte $0.06 et abat un storyboard à toute vitesse. Parcourez le reste dans la catégorie image-to-video ou dans tout le catalogue de modèles.
L'erreur courante consiste à redécrire l'image que vous venez d'uploader. Le modèle la voit. Chaque mot dépensé sur « une femme en manteau rouge sur un ponton » est un mot non dépensé sur ce qui se passe ensuite — et c'est une invitation à réinterpréter une frame que vous aviez déjà verrouillée.
Écrivez plutôt le changement. Trois habitudes portent l'essentiel de la qualité :
Donnez un seul mouvement principal. Un tour de tête, un travelling avant, une porte qui s'ouvre. Empilez quatre actions dans huit secondes et aucune ne se lit.
Dites où est la caméra et si elle bouge. « Fixe », « lent travelling avant », « caméra portée qui dérive vers la droite ». Le silence sur ce point produit du flottement sans but.
Sonorisez à voix haute. Nommez l'ambiance et toute réplique de dialogue, entre guillemets. L'audio est généré que vous l'ayez prévu ou non : alors prévoyez-le.
Les prompts en anglais sont entièrement supportés. Google n'a pas évalué d'autres langues pour ce modèle : gardez donc les instructions en anglais, même quand la réplique parlée est dans une autre langue.
Deux jours. C'est votre fenêtre de téléchargement. Google conserve la vidéo générée pendant deux jours — leur formulation : vous devez télécharger votre vidéo dans les 2 jours suivant la génération. Tirez outputs[0].url vers votre propre stockage dans le chemin de code même qui le lit. Le lien renvoyé est temporaire.
SynthID est sur chaque frame. Google watermarke toutes les sorties Veo avec son marqueur de provenance imperceptible, vérifiable via leur plateforme. Aucun provider ne peut le désactiver, nous compris.
Les personnes dans les régions régulées. Dans toute l'UE, au Royaume-Uni, en Suisse et dans la région MENA, personGeneration est plafonné à allow_adult.
Accordez l'aspect ratio à votre source. Une image fixe en 16:9 avec 9:16 demandé force le modèle à inventer les bords.
Nous facturons $0.01 par seconde de vidéo générée, multiplié par 1,5 quand l'audio est actif. Cela met un clip de 8 secondes en 720p avec du son à $0.12. Les résolutions supérieures appliquent leur propre multiplicateur : vérifiez donc la page modèle en direct avant de budgéter un batch en 1080p ou 4k.
Moins de 8 Mo, au moins 720p, et en 16:9 ou 9:16. Nous allons la chercher à l'image_url que vous fournissez : le lien doit donc encore résoudre au moment où le job tourne — les URL signées qui expirent sont ici la cause d'échec la plus fréquente.
Pas sur cet endpoint — il prend exactement une image_url. Si plusieurs images doivent guider une génération, utilisez reference-to-video, qui accepte un tableau de trois au maximum.
Oui, et c'est une raison majeure de se tourner vers ce modèle. Google produit nativement dialogue, effets et ambiance synchronisés, sans interrupteur dans sa propre API. Notre schema expose has_sound, par défaut à true, qui porte le multiplicateur ×1.5.
Jusqu'à 8 secondes. Cet endpoint accepte 4, 6 ou 8, mais une sortie en 1080p ou 4k exige les 8 complètes. Rien dans la famille Veo 3.1 Fast ne dépasse 8 secondes en un seul appel.
Chaque vidéo Veo porte SynthID, le watermark de provenance IA imperceptible de Google, et cela se vérifie sur leur plateforme de vérification. Personne n'offre le moyen de le désactiver.
Tablez sur environ quatre minutes par job. Les chiffres officiels de Google placent le plancher à 11 secondes et le plafond en heures de pointe à 6 minutes : un webhook vaut donc mieux qu'une boucle de polling dès que vous tournez à un volume réel.