Aller au contenu principal

Extension de video avec /v1/videos/extensions

Prolonger une video existante

L’endpoint d’extension vous permet d’allonger une video en generant une suite coherente. C’est la fonctionnalite ideale quand vous avez un clip trop court ou quand vous souhaitez developper une scene au-dela de sa duree initiale.

L’endpoint POST /v1/videos/extensions

{
  "model": "grok-imagine-video",
  "prompt": "Continue la scene avec un zoom arriere revelant le paysage complet",
  "video_url": "https://exemple.com/video-courte.mp4",
  "duration": 5
}

Parametres

  • model : grok-imagine-video
  • prompt : description de ce qui doit se passer dans la suite
  • video_url : URL de la video a prolonger
  • duration : duree de l’extension, entre 2 et 10 secondes (defaut : 6 secondes)

Differences avec l’edition

AspectEdition (/edits)Extension (/extensions)
ObjectifModifier le contenuAjouter de la duree
Parametre videovideo.url (objet)video_url (string)
Duree sortieMax 8.7s2-10s supplementaires
Contenu originalModifiePreserve

Notez la difference de syntaxe : l’edition utilise un objet video avec une propriete url, tandis que l’extension utilise directement video_url comme chaine de caracteres.

Strategies d’extension

Continuer le mouvement

Le cas le plus simple : demander au modele de poursuivre ce qui se passe dans la video :

{
  "model": "grok-imagine-video",
  "prompt": "Le personnage continue sa marche le long de la plage, les vagues deferlent doucement",
  "video_url": "https://exemple.com/promenade.mp4",
  "duration": 6
}

Introduire un changement

Vous pouvez demander un changement de direction ou un nouvel element :

{
  "model": "grok-imagine-video",
  "prompt": "La camera pivote vers la droite revelant un phare au loin, la lumiere du phare commence a tourner",
  "video_url": "https://exemple.com/plage.mp4",
  "duration": 8
}

Transition vers une conclusion

Pour terminer une sequence de maniere naturelle :

{
  "model": "grok-imagine-video",
  "prompt": "La scene se termine avec un fondu progressif vers le noir, les dernieres lueurs du soleil disparaissent a l'horizon",
  "video_url": "https://exemple.com/coucher-soleil.mp4",
  "duration": 4
}

Chainer les extensions

Vous pouvez etendre une video plusieurs fois pour creer des sequences plus longues. Le principe est simple : chaque extension produit une nouvelle video, dont l’URL peut servir de source pour l’extension suivante.

import httpx
import time

api_key = "votre_cle"
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}

def attendre_video(request_id):
    """Interroge le statut jusqu'a completion."""
    while True:
        resp = httpx.get(
            f"https://api.x.ai/v1/videos/{request_id}",
            headers=headers
        ).json()
        if resp["status"] == "done":
            return resp["video_url"]
        if resp["status"] == "failed":
            raise Exception("Generation echouee")
        time.sleep(5)

# Video de base
video_url = "https://exemple.com/video-initiale.mp4"

# Chainer 3 extensions
prompts = [
    "Le personnage traverse le pont, vue de profil",
    "Il s'arrete au milieu et regarde la riviere en contrebas",
    "Il reprend sa marche vers l'autre rive, la camera le suit"
]

for prompt in prompts:
    resp = httpx.post(
        "https://api.x.ai/v1/videos/extensions",
        headers=headers,
        json={
            "model": "grok-imagine-video",
            "prompt": prompt,
            "video_url": video_url,
            "duration": 5
        }
    ).json()
    video_url = attendre_video(resp["request_id"])
    print(f"Extension terminee : {video_url}")

Attention au chainage

  • Chaque extension est facturee separement
  • La coherence visuelle peut se degrader au fil des extensions
  • Telechargez chaque version intermediaire (URLs temporaires)
  • Limitez-vous a 3-4 extensions enchainees pour preserver la qualite

Combinaison generation + extension

Un workflow courant consiste a generer une video courte (3-5 secondes) puis a l’etendre :

  1. Generation initiale : video de 3 secondes avec un prompt precis -> POST /v1/videos/generations
  2. Extension : ajout de 5 secondes de suite -> POST /v1/videos/extensions
  3. Extension finale : ajout de 4 secondes de conclusion -> POST /v1/videos/extensions

Resultat : une video de 12 secondes, construite etape par etape avec un controle precis sur chaque segment.

Points cles a retenir

  • L’extension prolonge une video existante de 2 a 10 secondes (defaut 6)
  • Le parametre est video_url (string), pas video.url (objet)
  • Le chainage permet de creer des sequences longues etape par etape
  • La coherence se degrade au-dela de 3-4 extensions successives
  • Combinez generation initiale + extensions pour un controle precis du contenu