DEV Community

Cover image for Comment prolonger une vidéo jusqu'à 40 secondes avec Gemini Omni 1.1 Flash
Antoine Laurent
Antoine Laurent

Posted on Originally published at apidog.com

Comment prolonger une vidéo jusqu'à 40 secondes avec Gemini Omni 1.1 Flash

Gemini Omni 1.1 Flash génère des clips de 10 secondes. L’extension de scène permet d’aller plus loin : chaque appel ajoute 10 secondes, jusqu’à une durée cumulée maximale de 40 secondes.

Essayez Apidog aujourd’hui

Le mécanisme existait déjà dans le modèle d’aperçu, mais il exploitait seulement la dernière seconde de la séquence. Les couleurs restaient relativement cohérentes, mais les vêtements changeaient et les mouvements de caméra se réinitialisaient. La version GA du 27 août 2026 utilise désormais 10 secondes de contexte précédent, ce qui améliore la cohérence visuelle et l’adhésion narrative.

Ce guide montre comment appeler l’extension, quelles sont ses limites et comment éviter qu’une séquence de 40 secondes ne dérive au troisième segment.

Appeler une extension

L’extension utilise l’API Files : téléchargez le clip, puis fournissez son URI avec une invite décrivant la suite de la scène.

import base64
from google import genai

client = genai.Client()

video_file = client.files.upload(file="my_video.mp4")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue the scene."},
    ],
)

with open("extended.mp4", "wb") as f:
    f.write(base64.b64decode(interaction.output_video.data))
Enter fullscreen mode Exit fullscreen mode

Le traitement du fichier est asynchrone. Attendez donc qu’il soit prêt avant de créer l’interaction :

import time

while video_file.state == "PROCESSING":
    time.sleep(10)
    video_file = client.files.get(name=video_file.name)

if video_file.state == "FAILED":
    raise ValueError(video_file.state)
Enter fullscreen mode Exit fullscreen mode

Si la vidéo provient d’Omni dans la même session, utilisez plutôt l’ID de l’interaction précédente. Cette méthode coûte moins de jetons et conserve davantage de contexte :

res2 = client.interactions.create(
    model="gemini-omni-1.1-flash",
    previous_interaction_id=res1.id,
    input="The camera pulls back to reveal the whole street.",
)
Enter fullscreen mode Exit fullscreen mode

Le tutoriel de l’API détaille les options de résolution et de livraison.

Ajouter un personnage à une extension

Vous pouvez joindre des médias de référence et les cibler dans l’invite. Les fichiers sont accessibles via des emplacements tels que <IMAGE_REF_0> :

video_file = client.files.upload(file="my_video.mp4")
character_img = client.files.upload(file="character.png")

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "document", "uri": character_img.uri},
        {"type": "text", "text": "Extend this video: have the character shown in <IMAGE_REF_0> enter the scene and wave."},
    ],
)
Enter fullscreen mode Exit fullscreen mode

Les références vidéo sont également prises en charge, avec une limite de trois clips de trois secondes. Elles servent à transmettre le mouvement et l’apparence ; leur audio est ignoré.

Limites à prendre en compte

  • 40 secondes maximum : une génération initiale de 10 secondes, suivie de trois extensions.
  • Ajout en fin de clip uniquement : impossible d’insérer une séquence au début ou au milieu. Si le segment deux est incorrect, il faut le régénérer ainsi que tous les segments suivants.
  • 10 secondes pour une vidéo téléchargée : cette limite concerne l’entrée envoyée via l’API Files. Les chaînes utilisant previous_interaction_id ne sont pas concernées.
  • Pas de dialogue avec les téléchargements étendus : vous pouvez étendre silencieusement une vidéo téléchargée, mais pas ajouter de dialogue pendant cette extension.
  • Restrictions régionales : le téléchargement et l’édition vidéo ne sont pas disponibles dans l’EEE, en Suisse ni au Royaume-Uni. Les vidéos générées par le modèle restent extensibles dans ces régions avec previous_interaction_id.
  • Une seule vidéo d’entrée : le modèle ne raisonne pas sur plusieurs vidéos simultanément.

Prototyper l’arc complet avant le rendu final

Une séquence de 40 secondes en 720p coûte environ 4,06 $ en sortie vidéo. Si l’histoire dérive au troisième segment, vous devrez souvent régénérer les segments trois et quatre, avec le risque de modifier une partie qui fonctionnait déjà.

Commencez par un prototype en 360p. Cette résolution est générée jusqu’à 60 % plus rapidement et coûte environ un tiers du prix : les quatre segments reviennent alors à environ 1,35 $. Une fois l’arc validé, relancez-le en 720p ou dans une résolution supérieure. Consultez l’article sur les tarifs pour le détail du calcul.

Définissez la résolution dans le format de réponse :

interaction = client.interactions.create(
    model="gemini-omni-1.1-flash",
    input=[
        {"type": "document", "uri": video_file.uri},
        {"type": "text", "text": "Continue the scene."},
    ],
    response_format={"type": "video", "resolution": "360p"},
)
Enter fullscreen mode Exit fullscreen mode

Écrire des invites cohérentes sur quatre segments

Décrire le changement

Le modèle dispose déjà de 10 secondes de contexte. Décrivez donc l’action suivante plutôt que toute la scène :

La caméra zoome sur la porte.

Une nouvelle description complète du décor pourrait pousser le modèle à réinterpréter ce qui est déjà à l’écran.

Limiter chaque segment à un mouvement

Une extension qui demande deux actions risque de les précipiter toutes les deux. Pour dix secondes, prévoyez une seule action principale.

Utiliser des ancres de continuité

Indiquez explicitement ce qui doit rester identique, par exemple :

  • « la même veste rouge » ;
  • « le même angle de caméra en plongée » ;
  • « le même éclairage ».

Ces ancres donnent au modèle des éléments stables à conserver au raccord.

Planifier dans l’ordre de lecture

L’extension ne fonctionne que vers l’avant. Organisez donc la séquence dans son ordre définitif : corriger le début après coup implique de régénérer tout ce qui suit.

Le guide d’invite de Veo présente des principes également utiles pour les modèles vidéo.

Tester chaque extension

Une chaîne de quatre appels crée quatre points de rupture possibles. Enregistrez chaque étape comme une requête distincte dans Apidog, et stockez l’URI du fichier ainsi que l’ID d’interaction dans des variables d’environnement. Vous pourrez ainsi rejouer un segment précis sans reconstruire toute la chaîne.

Vérifiez également la forme de la réponse : une extension haute résolution peut dépasser 4 Mo et remplacer une vidéo base64 inline par un URI. Prévoyez un délai d’attente supérieur à celui de la génération initiale, car le modèle doit d’abord lire les 10 secondes de contexte.

Téléchargez Apidog pour configurer ce harnais de test.

FAQ

Quelle est la durée maximale d’une vidéo Gemini Omni ?

40 secondes : une génération initiale de 10 secondes, puis trois extensions de 10 secondes.

Puis-je étendre une vidéo que j’ai filmée moi-même ?

Oui, jusqu’à 10 secondes d’entrée, hors EEE, Suisse et Royaume-Uni. Téléchargez-la avec l’API Files et transmettez son URI.

Puis-je ajouter une séquence au début d’un clip ?

Non. L’extension ajoute uniquement du contenu à la fin.

Pourquoi mon personnage change-t-il d’apparence entre les segments ?

L’invite redécrit peut-être la scène au lieu de décrire uniquement le changement, ou l’ancre de continuité est trop vague. Indiquez ce qui doit rester identique et utilisez éventuellement une image de personnage comme référence.

Chaque extension coûte-t-elle plus cher ?

Oui. Chaque appel facture ses 10 secondes de sortie vidéo ainsi que les jetons d’entrée correspondant au contexte lu.

Que faire si j’ai besoin de plus de 40 secondes ?

Veo 3.1 étend les vidéos par tranches de 7 secondes, jusqu’à 148 secondes, uniquement en 720p. Consultez la comparaison des modèles et le guide de l’API Veo.

L’extension de scène transforme Omni d’une démonstration en outil exploitable, à condition de planifier correctement. Découpez votre scénario en quatre actions, prototypez l’arc complet en 360p, limitez chaque invite à un mouvement et ne passez en 720p qu’une fois la séquence validée.

Top comments (0)