Loading...
Loading...
Generate smooth video transitions between two key frames with Gemini Omni 1.1 Flash. Provide a start frame, an end frame and a text prompt to guide the in-between motion.
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/omni-1.1-flash/start-end-frame-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.
Gemini Omni 1.1 Flash, c'est le gemini-omni-1.1-flash de Google, en disponibilité générale depuis le 27 août 2026 et modèle de la famille Gemini plutôt que Veo. Nous opérons sa capability à deux images sous google/omni-1.1-flash/start-end-frame-to-video et facturons à la seconde de sortie — $0.09 en 720p, soit une remise permanente de 40 % sur le tarif catalogue de $0.15. Le clip de huit secondes par défaut coûte $0.72.
Trois champs entrent : une image de départ, une image de fin, un prompt. Votre première image devient l'image un, la seconde devient la dernière, et tout ce qui se trouve entre les deux est inventé. Ce n'est pas une demande de clip mais une demande de pont, et un pont vaut ce que valent ses deux rives.
Nouveau ici aussi — la génération Omni Flash précédente est sortie sans cette capability, la preuve la plus nette de l'argument développé dans notre compte rendu de la sortie 1.1. Une version de continuité, pas une version de qualité.
Nos tarifs, vérifiés le 28 août 2026 :
| Durée | 360p | 720p | 1080p | 4K |
|---|---|---|---|---|
| 4 s | $0.1188 | $0.36 | $0.54 | $0.72 |
| 6 s | $0.1782 | $0.54 | $0.81 | $1.08 |
| 8 s (par défaut) | $0.2376 | $0.72 | $1.08 | $1.44 |
| 10 s | $0.297 | $0.90 | $1.35 | $1.80 |
Le 1080p et la 4K sont upscalés, pas natifs.
Le tweening est le mauvais modèle mental. Un outil de tweening mélange le pixel A vers le pixel B. Ce modèle-ci lit les deux images, décide quel événement a plausiblement mené la scène de l'une à l'autre, et rend cet événement — audio compris, généré nativement depuis le même prompt. Pas de champ has_sound, pas d'interrupteur muet.
À 24 fps, un pont de quatre secondes fait quatre-vingt-seize images, dont deux que vous avez fournies. Les quatre-vingt-quatorze autres sont une thèse sur la physique, défendue qu'elle tienne ou non. Le cadrage est 16:9 ou 9:16 ; comptez quatre minutes par job.
Trois questions tranchent la paire. Même sujet ? Pas semblable — le même. Même lumière ? Direction de la source, température de couleur, contraste. Une caméra aurait-elle pu faire ce mouvement ? Si vous ne pouvez pas l'énoncer en une phrase qu'un opérateur suivrait, le modèle ne le peut pas non plus.
Quand la réponse est non, rien ne renvoie d'erreur — le modèle masque le trou, de quatre façons :
Un clip inutilisable coûte le prix d'un clip utilisable.
À $0.0297 la seconde, un test de quatre secondes en 360p coûte $0.1188 ; le final de huit secondes en 720p coûte $0.72, cinq fois plus. Et le 360p, trop petit pour juger un visage, suffit largement pour juger le milieu. Une coupe est une coupe à n'importe quelle résolution. Un morphing est un morphing. Google annonce aussi que ce palier tourne jusqu'à 60 % plus vite — formulation de blog de lancement, pas chiffre de référence API.
Cela rend le travail de storyboard abordable à itérer. Deux images clés par temps, la liste de plans passée à quatre secondes et en 360p, rejouée en animatique — douze temps pour environ $1.73. Les échecs viennent presque toujours d'un problème de paire d'images, réglé en redessinant une planche plutôt qu'en réécrivant le prompt cinq fois. Ne rendez que les survivants. Veo 3.1 Fast start-end-frame-to-video n'a aucun palier de brouillon.
duration accepte 4, 6, 8 ou 10, sous forme de chaîne. Chaque seconde coûte pareil, ce qui donne l'impression d'un bouton de budget. C'est un bouton de mise en scène.
Les deux mêmes images à quatre secondes et à dix secondes donnent deux plans différents. Quatre force le trajet — la caméra s'engage, peu de place pour inventer. Dix doit être rempli, et le modèle trouvera son propre remplissage : une dérive, un temps tenu, un second geste. Ce jeu de scène inventé est la sortie la moins prévisible de cette page.
Accordez la longueur à la distance : deux angles produit séparés de trente degrés, étirés sur dix secondes, vous achètent un rampement et du vide. Dix est le plafond d'Omni et un vrai avantage — Veo s'arrête à huit.
Générez une clé, gardez-la côté serveur, soumettez le job. prompt, start_frame_url et end_frame_url sont obligatoires, et nous allons chercher les deux images : chaque URL doit donc répondre à une requête non authentifiée.
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/start-end-frame-to-video",
"input": {
"prompt": "La caméra décrit un arc vers la droite autour de la machine à espresso pendant que la vapeur monte. Ronronnement du moulin, brouhaha de café.",
"start_frame_url": "https://example.com/07a-left.jpg",
"end_frame_url": "https://example.com/07b-right.jpg",
"duration": "6",
"resolution": "360p"
}
}'
Faites du polling sur le job id, ou passez un webhookUrl :
const headers = {
Authorization: `Bearer ${process.env.E2X_API_KEY}`,
"Content-Type": "application/json",
};
const { data } = await fetch("https://api.e2x.ai/v1/jobs/submit", {
method: "POST",
headers,
body: JSON.stringify({
model: "google/omni-1.1-flash/start-end-frame-to-video",
input: {
prompt: "Une lente descente de grue depuis la rambarde du toit jusqu'à la table de la cour. Un seul mouvement continu.",
start_frame_url: "https://example.com/12a-roof.jpg",
end_frame_url: "https://example.com/12b-courtyard.jpg",
duration: "10",
resolution: "720p",
},
}),
}).then((r) => r.json());
let url = null;
while (!url) {
const job = await fetch(`https://api.e2x.ai/v1/jobs/${data.jobId}`, { headers })
.then((r) => r.json());
if (job.data.status === "completed") url = job.data.outputs[0].url;
else if (["failed", "cancelled"].includes(job.data.status))
throw new Error(job.data.error?.message ?? job.data.status);
else await new Promise((r) => setTimeout(r, 5000));
}
Le statut passe par pending, processing, completed, ou atterrit sur failed/cancelled. Deux pièges de schema : duration et resolution sont des chaînes, et les champs s'appellent start_frame_url et end_frame_url, pas le image_url au singulier utilisé ailleurs. Les valeurs en vigueur se trouvent dans la spécification lisible par machine.
Veo 3.1 Fast fait le même travail pour un neuvième de la somme :
| Endpoint | 8 s en 720p | À sortir quand |
|---|---|---|
| Veo 3.1 Fast start-end-frame-to-video | $0.08 | Les images se relient et huit secondes suffisent |
| Omni 1.1 Flash start-end-frame-to-video | $0.72 | Il vous faut dix secondes, la 4K, ou une passe de brouillon |
| Omni 1.1 Flash image-to-video | $0.72 | Une seule extrémité du plan est fixée |
| Omni 1.1 Flash reference-to-video | $0.72 | Un sujet doit rester lui-même sur de nombreux plans |
| Omni 1.1 Flash text-to-video | $0.72 | Il n'existe aucune image source |
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.
Commencez sur Veo. Revenez ici quand son mur des huit secondes vous gêne, quand le livrable est en 4K, ou quand une passe de brouillon fait économiser plus qu'elle ne coûte. Le reste se trouve sous image-to-video et text-to-video, et tout le catalogue de modèles tient sur une page.
Décrivez le trajet, pas le décor — le modèle voit déjà les deux extrémités. Nommez le mouvement qui les relie (« arc vers la droite », « descente de grue », « bascule de point vers la fenêtre du fond »), puis dites comment ça doit sonner : l'audio s'écrit sur cette même ligne. Ne demandez pas d'événements qu'aucune des deux images n'implique. Davantage de vocabulaire de caméra dans notre guide de prompting Omni ; l'anglais est la seule langue de prompt évaluée.
Trois choses avant que cela n'approche un client. Chaque image porte SynthID, le marqueur de provenance invisible de Google, et aucun provider ne peut l'enlever. La model card de Google est franche : « maintenir une cohérence totale d'un bout à l'autre des retouches, générer des scènes au mouvement complexe ou rendre du texte parfaitement exact reste un défi » — et le mouvement complexe, c'est précisément ce qu'exige un grand écart entre deux images. Dans l'EEE, en Suisse et au Royaume-Uni, vous ne pouvez pas uploader d'images contenant des mineurs ou certaines personnes reconnaissables — une limite sur vos entrées. Les URL de résultat sont temporaires : ré-hébergez-les dans le handler de complétion.
Nous facturons $0.09 chaque seconde de sortie 720p : un clip de huit secondes revient donc à $0.72 et le maximum de dix secondes à $0.90 — soit 40 % de remise sur un tarif catalogue de $0.15. La résolution multiplie le tout, ce qui met un brouillon de quatre secondes en 360p à $0.1188 et un rendu de dix secondes en 4K à $1.80. Vérifié le 28 août 2026.
Le même sujet, le même dispositif lumineux, et un mouvement de caméra qui pourrait physiquement aller de l'une à l'autre dans le temps demandé. Deux images d'un même tournage, à quelques minutes d'écart, fonctionnent presque toujours. Des images prises dans des conditions différentes obligent le modèle à résoudre l'écart à l'écran.
Rien ne renvoie d'erreur. Vous obtenez un clip qui masque le trou de quatre façons possibles : une coupe inventée, un morphing à travers une géométrie impossible, un saut de lumière, ou des silhouettes qui surgissent du néant. Toutes se facturent comme un bon rendu, et c'est pour cela que le brouillon à $0.1188 se rembourse tout seul.
Veo 3.1 Fast d'abord, dans la plupart des cas — il fait le départ-et-fin à $0.01 la seconde contre nos $0.09, donc huit secondes coûtent $0.08 et non $0.72. Omni justifie l'écart sur trois points : la durée de dix secondes, la sortie 4K et le palier de test en 360p.
De trois à dix secondes par appel. L'enum duration porte 4, 6, 8, 10, toutes en chaînes. Dix est le plafond dur, et tout ce qui dépasse se recoud à partir de plusieurs jobs.
Oui. Toutes deux sont récupérées côté serveur : chacune doit donc répondre à une requête non authentifiée jusqu'à la fin du job. Les URL signées à durée courte, les buckets privés, les adresses localhost et les data URI échouent.
Oui — chaque image est marquée avec SynthID, le signal de provenance imperceptible de Google, invisible pour les spectateurs et vérifiable via leur outillage. Aucun provider ne peut le désactiver. Réglez ce point avec votre client si un contrat interdit les assets IA étiquetés.