Aller au contenu principal

Combiner édition et extension

Mis à jour le 29 juillet 2026

Pipelines de production avancés

Pris isolément, chaque endpoint a ses limites : la génération plafonne à 15 secondes, l’édition à 8.7, l’extension à 10 secondes ajoutées. Assemblés, ils composent des chaînes de production qui dépassent largement ces bornes et, surtout, qui vous donnent un point de contrôle après chaque segment. Cette leçon décrit trois pipelines réels, du clip produit à la déclinaison stylistique, puis la façon de les rendre fiables.

Pipeline 1 : une promo produit de 15 secondes

Le scénario est classique : vous disposez d’une photo de smartphone et vous devez livrer une vidéo promotionnelle de 15 secondes. Le pipeline se construit en trois segments de 5 secondes, chacun validé avant le suivant.

Le premier segment anime la photo produit — rotation, jeux de reflets — via l’image-to-video étudié en section précédente.

{
  "model": "grok-imagine-video",
  "prompt": "Rotation élégante du smartphone sur fond sombre, reflets lumineux sur l'écran",
  "image": "https://exemple.com/smartphone.jpg",
  "duration": 5,
  "aspect_ratio": "16:9",
  "resolution": "720p"
}

Le deuxième prolonge ce plan par une extension qui rapproche la caméra de l’écran, en réinjectant l’URL obtenue à l’étape précédente.

{
  "model": "grok-imagine-video",
  "prompt": "Zoom progressif vers l'ecran du smartphone qui s'allume, affichant une interface coloree",
  "video_url": "{url_video_etape_1}",
  "duration": 5
}

Le troisième referme la séquence sur un plan large, en repartant cette fois de la sortie du deuxième segment.

{
  "model": "grok-imagine-video",
  "prompt": "Zoom arrière révélant le smartphone pose sur un bureau design, lumière douce, léger flou d'arrière-plan",
  "video_url": "{url_video_etape_2}",
  "duration": 5
}

Quinze secondes générées à $0.05 la seconde : le coût total du pipeline s’établit à $0.75, hors itérations.

Pipeline 2 : cinq contenus, un seul style

Autre situation, autre logique : vous devez produire cinq vidéos de 5 secondes pour une campagne sociale, avec un rendu visuel homogène. Ici, ce n’est plus le chaînage qui structure le travail mais les images de référence, identiques pour toutes les générations. Les cinq prompts décrivent des scènes différentes, le style reste tenu par les deux mêmes visuels.

references = [
    {"url": "https://exemple.com/style-campagne-1.jpg"},
    {"url": "https://exemple.com/style-campagne-2.jpg"}
]

prompts = [
    "Un café qui se verse dans une tasse en céramique blanche, vapeur montante",
    "Des mains tapant sur un clavier, écran flou en arrière-plan",
    "Un carnet ouvert avec un stylo qui écrit, lumière naturelle",
    "Une plante verte qui pousse en accélère dans un pot en terre",
    "Un livre dont les pages tournent au vent sur une terrasse"
]

for prompt in prompts:
    resp = httpx.post(
        "https://api.x.ai/v1/videos/generations",
        headers=headers,
        json={
            "model": "grok-imagine-video",
            "prompt": prompt,
            "reference_images": references,
            "duration": 5,
            "aspect_ratio": "9:16",
            "resolution": "720p"
        }
    )

Cinq clips de 5 secondes reviennent à $1.25. Notez le format 9:16 appliqué à toutes les requêtes : sur une campagne verticale, c’est le genre d’oubli qui coûte une régénération complète.

Pipeline 3 : décliner une vidéo en variantes

Le troisième schéma ne chaîne rien du tout : il applique en parallèle plusieurs éditions différentes à une même vidéo source. Vous obtenez ainsi quatre versions d’un même clip, à proposer en test A/B ou à répartir sur des supports aux identités distinctes.

video_source = "https://exemple.com/video-base.mp4"

variations = [
    "Style noir et blanc cinématographique, grain de film",
    "Couleurs saturees pop art, contrastes forts",
    "Ambiance nuit, lumieres neon violettes et bleues",
    "Style aquarelle, contours doux et couleurs delayees"
]

for variation in variations:
    resp = httpx.post(
        "https://api.x.ai/v1/videos/edits",
        headers=headers,
        json={
            "model": "grok-imagine-video",
            "prompt": variation,
            "video": {"url": video_source}
        }
    )

Ces trois pipelines mobilisent quatre endpoints, dont voici le récapitulatif complet.

EndpointMéthodeEntréeSortieDurée max
/v1/videos/generationsPOSTPrompt + optionsNouvelle vidéo1-15s
/v1/videos/editsPOSTVidéo + promptVidéo modifiée8.7s
/v1/videos/extensionsPOSTVidéo + promptVidéo prolongée2-10s
/v1/videos/{id}GETrequest_idStatut + URL-

Rendre une chaîne résistante à l’échec

Dès que vous enchaînez des opérations, la probabilité qu’au moins une échoue devient significative, et un échec au troisième maillon fait perdre les deux premiers si rien n’est prévu. La fonction suivante encapsule chaque étape dans une boucle de tentatives et n’avance à l’étape suivante qu’une fois l’URL obtenue.

async def pipeline_avec_retry(etapes, max_retries=2):
    video_url = None
    for i, etape in enumerate(etapes):
        for tentative in range(max_retries + 1):
            try:
                if etape["type"] == "generation":
                    result = await generer_video(etape["params"])
                elif etape["type"] == "extension":
                    etape["params"]["video_url"] = video_url
                    result = await etendre_video(etape["params"])
                elif etape["type"] == "edition":
                    etape["params"]["video"]["url"] = video_url
                    result = await editer_video(etape["params"])

                video_url = await attendre_resultat(result["request_id"])
                break
            except Exception as e:
                if tentative == max_retries:
                    raise Exception(f"Etape {i+1} echouee : {e}")
                await asyncio.sleep(10)
    return video_url

Autour de ce squelette, cinq habitudes font la différence entre un prototype et un service. Téléchargez le résultat à chaque étape, puisque les URL sont temporaires et qu’une reprise sur incident exige de disposer des versions intermédiaires. Validez visuellement chaque segment avant d’engager le suivant, sinon vous payez trois générations pour découvrir que la première ne convenait pas. Gérez les erreurs avec des tentatives espacées par un backoff exponentiel. Calculez le budget complet avant de lancer une chaîne longue, en comptant les itérations probables. Et parallélisez ce qui peut l’être : dans le pipeline 2 comme dans le pipeline 3, aucune génération ne dépend d’une autre, elles peuvent donc partir simultanément.

Tarifs relevés le 5 août 2026 — les prix évoluent régulièrement : avant tout calcul de budget, vérifiez la grille en vigueur sur la page officielle des modèles et tarifs xAI.

Points clés à retenir

  • Les trois endpoints (génération, édition, extension) se combinent en pipelines
  • Les images de référence assurent la cohérence stylistique entre plusieurs vidéos
  • L’édition itérative permet de décliner une vidéo en plusieurs versions
  • Téléchargez les résultats intermédiaires et gérez les erreurs à chaque étape
  • Calculez le budget total avant de lancer des pipelines complexes