Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Comment maintenir la continuité vidéo IA entre plusieurs clips
2026/08/27

Comment maintenir la continuité vidéo IA entre plusieurs clips

Étendez une vidéo IA entre clips avec ledger d'état, cadres limites, prompts de continuation et appels API pour une cohérence visuelle et narrative fiable.

La continuité vidéo IA s'améliore quand chaque clip se termine par une transmission écrite et visuelle au clip suivant. L'image finale fait partie de cette transmission, mais ce n'est pas suffisant. Vous avez également besoin d'un ledger d'état qui enregistre où se tiennent les personnages, dans quelle direction ils font face, ce qu'ils tiennent, ce qui a changé et ce que le prochain plan est autorisé à faire.

Ce tutoriel construit une séquence plus longue qu'un seul appel de modèle. L'exemple utilise deux générations Seedance 2.5 car ByteDance documente les clips jusqu'à 30 secondes et l'extension multi-tours.[1] La méthode du ledger d'état s'applique également aux modèles plus courts et aux éditions de plans distincts.

Résumé exécutif

  • Planifiez la séquence complète avant de générer le premier clip.
  • Divisez-vous dans un état visuel stable, pas au milieu de l'action la plus difficile.
  • Enregistrez l'identité, la position, la direction, les accessoires, l'environnement, la lumière, la caméra et l'action non résolue dans un ledger d'état.
  • Demandez la dernière image du premier clip et utilisez-la comme ancre limite.
  • Commencez le prompt de continuation en réaffirmant l'état hérité.
  • Examinez la jonction image par image, puis à la vitesse normale.
  • Réparez uniquement la limite ou le clip affecté ; ne régénérez pas l'histoire entière.

Flux de travail de continuité vidéo IA longue forme, de la séquence principale et du ledger d'état par la limite et la génération de continuation à l'examen de la jonction et la réparation sélective

Pourquoi une image finale seule ne préserve pas la continuité

Une image montre l'apparence et la position à un instant. Elle n'explique pas pleinement la direction du mouvement, l'intention du personnage, l'historique des accessoires, le timing audio ou ce qui doit se passer ensuite.

Imaginez un cycliste au bord droit du cadre. L'image ne dit pas à la génération suivante si le cycliste venait de la gauche, est sur le point de sortir à droite ou s'est arrêté et va faire demi-tour. Le ledger d'état fournit l'information temporelle manquante.

Pensez à la continuité comme huit états connectés :

ÉtatExemple
Identitémême cavalier, casque, veste bleue, vélo noir
Positioncavalier au tiers droit, vélo parallèle à la route
Directionse déplaçant de gauche à droite, sans inversion
Pose/actionpied droit au sol, mains sur le guidon, en décélération
Accessoiressac à dos rouge reste sur le cavalier ; gourde dans cage
Environnementroute de montagne humide, sapins, brouillard matinal
Lumièrelumière arrière douce du coin supérieur gauche
Caméra/audiovue de suivi basse ; bruit de pneu continue sous la coupure

Une séquence stable préserve les huit sauf si l'histoire change intentionnellement l'une d'elles.

Étape 1 : Planifiez la séquence complète avant le premier appel

Écrivez l'action complète en langage clair. Divisez-la ensuite en clips en fonction des états de transmission naturels.

Séquence complète :
Un cycliste descend dans le brouillard, freine avant une branche tombée, porte le vélo
autour d'elle, remonte et continue vers une ouverture ensoleillée.

Clip 1 :
Descente et freinage. Se termine avec le vélo arrêté sur le côté droit de la route,
roue avant légèrement tournée à gauche, pied droit du cavalier au sol.

Clip 2 :
Le cavalier descend, porte le vélo autour de la branche, remonte et sort
vers l'ouverture ensoleillée.

La division se produit après que l'action de freinage se soit stabilisée. Elle ne se produit pas tandis que la roue avant tourne ou le pied se déplace vers le sol. Les transmissions stables donnent à la continuation moins d'ambiguïté.

Étape 2 : Créez la bible de continuité principale

La bible de continuité contient les détails qui s'appliquent à toute la séquence.

{
  "character": {
    "identity": "même cycliste adulte",
    "wardrobe": "casque noir mat, veste pluie bleue, pantalon noir",
    "fixed_details": "sac à dos rouge, pas de gants"
  },
  "vehicle": {
    "type": "vélo de montagne hardtail noir",
    "fixed_details": "gourde dans cage de tube inférieur, pas de suspension arrière"
  },
  "world": {
    "location": "route de montagne humide à travers forêt de sapins",
    "weather": "léger brouillard, pas de pluie active",
    "light": "lumière arrière douce du matin du coin supérieur gauche"
  },
  "camera_language": {
    "height": "suivi basse hauteur taille",
    "lens": "apparence modérément large",
    "movement": "lisse avec légère vibration naturelle",
    "screen_direction": "gauche à droite"
  },
  "audio": {
    "bed": "bruit de pneu, léger vent, oiseaux lointains",
    "music": "aucune"
  }
}

Réutilisez cette information à travers chaque clip. Un guide de cohérence des caractères séparé couvre la conception de référence ; le ledger de continuité enregistre les décisions de production qui entourent l'identité.

Étape 3 : Ajoutez un ledger d'état spécifique au clip

Le ledger a trois colonnes : l'état hérité, les changements pendant ce clip et l'état final requis.

{
  "clip_id": "01-descent-and-stop",
  "inherits": {
    "rider_position": "left third",
    "direction": "left to right",
    "speed": "moderate downhill",
    "hands": "both on handlebars",
    "bike": "upright and rolling"
  },
  "changes": [
    "fallen branch becomes visible",
    "rider brakes without reversing",
    "bike moves to right side of road",
    "right foot lowers to ground"
  ],
  "end_state": {
    "rider_position": "right third",
    "direction": "still facing right",
    "speed": "stopped",
    "right_foot": "on ground",
    "left_foot": "on pedal",
    "front_wheel": "turned slightly left",
    "hands": "both on handlebars",
    "branch": "two meters ahead",
    "camera": "stable low three-quarter view",
    "hold": "one second"
  }
}

L'objet inherits du clip suivant doit correspondre à cet end_state. S'ils diffèrent, vous avez trouvé un problème de continuité avant de dépenser pour la génération.

Étape 4 : Générez le premier clip avec une transmission délibérée

Le prompt devrait consacrer suffisamment d'attention à l'état final.

Le même cycliste dans un casque noir mat, veste pluie bleue, pantalon noir et sac à dos rouge chevauche un vélo de montagne hardtail noir de gauche à droite sur une route forestière humide. Caméra de suivi basse hauteur taille, lumière arrière douce du matin du coin supérieur gauche.

Le cycliste voit une branche tombée, freine graduellement sans inverser, se déplace vers le côté droit de la route et s'arrête. Le pied droit se baisse vers le sol tandis que le pied gauche reste sur la pédale. Les deux mains restent sur le guidon. La roue avant pointe légèrement à gauche. Terminez sur une vue stable basse trois-quarts avec la branche deux mètres devant. Maintenez l'état final exact pendant une seconde. Pas de coupure, changement de garde-robe, cavalier supplémentaire ou inversion de direction.

Demandez la dernière image dans l'appel API :

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.5-face",
    "prompt": "The cyclist rides left to right, brakes before a fallen branch, and stops on the right side of the road. Right foot on ground, left foot on pedal, both hands on handlebars, front wheel slightly left. Hold the exact final state for one second. Preserve rider, bicycle, wardrobe, road, light, and direction.",
    "image_urls": ["https://example.com/rider-and-bike-reference.jpg"],
    "resolution": "720p",
    "size": "16:9",
    "duration": 12,
    "generate_audio": true,
    "return_last_frame": true
  }'

Quand la tâche se termine, reAPI retourne l'URL vidéo générée et, lorsque demandé, output.last_frame_url.[2]

Étape 5 : Auditez la limite avant de continuer

Ne transmettez pas automatiquement la dernière image. Confirmez qu'elle représente l'état final écrit.

{
  "identity": "pass",
  "screen_direction": "pass",
  "right_foot_grounded": "pass",
  "left_foot_on_pedal": "repair",
  "both_hands_on_handlebars": "pass",
  "front_wheel_direction": "pass",
  "branch_distance": "pass",
  "stable_hold": "pass"
}

Si une condition de continuité difficile échoue, réparez le clip un ou choisissez une image valide antérieure. Transmettre une mauvaise limite fait que la génération suivante hériterait de l'erreur.

Étape 6 : Construisez la demande de continuation

Commencez le deuxième prompt en réaffirmant l'état hérité, puis décrivez uniquement les nouveaux changements.

Commencez exactement à partir de Image 1. Le même cycliste est arrêté sur le côté droit de la route humide, face à droite. Le pied droit est au sol, le pied gauche est sur la pédale, les deux mains tiennent le guidon, la roue avant pointe légèrement à gauche, et la branche tombée est à deux mètres. Préservez le même cavalier, casque, veste bleue, sac à dos rouge, vélo noir, gourde, brouillard et direction lumineuse.

Le cavalier descend du côté gauche sans tourner le vélo autour, lève le vélo par le cadre, marche autour de l'extrémité proche de la branche, remet les deux roues sur la route face à droite, remonte et chevauche vers l'ouverture plus claire. Maintenez la direction d'écran de gauche à droite. Terminez avec le cavalier sortant du cadre à droite. Pas de nouveaux accessoires, changements de garde-robe, changements météorologiques ou coupures.

Utilisez l'image retournée comme première image explicite :

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubao-seedance-2.5-face",
    "prompt": "Begin exactly from Image 1. Preserve rider, wardrobe, bicycle, prop placement, fog, light, and left-to-right direction. The rider dismounts, carries the bicycle around the branch without reversing it, remounts, and exits frame right. No cuts or new objects.",
    "image_with_roles": [
      {
        "url": "LAST_FRAME_URL_FROM_CLIP_1",
        "role": "first_frame"
      }
    ],
    "resolution": "720p",
    "size": "adaptive",
    "duration": 14,
    "generate_audio": true,
    "return_last_frame": true
  }'

Sur la route reAPI actuelle, les rôles de première image utilisent image_with_roles, nécessitent un dimensionnement adaptatif et ne peuvent pas être mélangés avec image_urls, video_urls ou audio_urls dans la même demande. C'est une règle de passerelle qui devrait être traitée dans la validation des demandes plutôt que découverte après la soumission.[2]

Si vous avez besoin de plusieurs références d'identité au lieu d'un rôle de cadre difficile, utilisez un flux de travail d'image de référence et décrivez le cadre final précédent comme l'une des entrées ordonnées. Cela fournit plus de preuves d'identité mais une limite plus souple. Le bon choix dépend de quel échec est plus coûteux.

Étape 7 : Examinez la jonction à trois vitesses

Placez les clips côte à côte dans un éditeur.

Image par image

Comparez l'image finale du clip un et les premières images du clip deux pour la forme du corps, la garde-robe, la position de la main, la position des accessoires, la géométrie du vélo, la lumière et la hauteur de la caméra.

Demi-vitesse

Vérifiez si le mouvement redémarre anormalement, une roue saute, un membre change de support ou la caméra accélère à la coupure.

Vitesse normale

Jugez si un spectateur remarque la jonction. Une petite différence de texture peut être invisible en mouvement ; une inversion de direction ne le sera pas.

Utilisez un rapport de limite :

{
  "visual_match": "pass",
  "screen_direction": "pass",
  "action_continuation": "repair",
  "camera_velocity": "pass",
  "audio_bed": "repair in edit",
  "note": "clip 2 lifts the left foot before the hands shift to the frame"
}

Étape 8 : Réparez la plus petite rupture de continuité

Pas chaque discordance ne nécessite une régénération.

ProblèmePlus petite réparation pratique
Une ou deux images limites mauvaisesRogner à un point plus net
Les changements d'ambiance audioRemplacer par un lit sonore continu en édition
La caméra fait une pause à la jonctionAjouter une courte superposition ou choisir une coupure stable
Les accessoires changent de mainsRégénérer le beat de continuation affecté
Les changements de caractères ou de véhiculesRenforcer le flux de travail limite/référence et régénérer le clip deux
La direction d'écran s'inverseRéécrire la direction héritée et régénérer le clip deux
La lumière change légèrementÉvaluer en post-production si l'identité et la géométrie passent

La continuité n'est pas l'identité des pixels. L'objectif est une transmission crédible où l'histoire, l'espace et l'action restent lisibles.

Étape 9 : Mettez à l'échelle le ledger pour plus de clips

Pour un projet plus long, stockez une bible principale et un ledger par clip.

/sequence
  master-continuity.json
  clip-01-ledger.json
  clip-02-ledger.json
  clip-03-ledger.json
  /references
  /boundary-frames
  /generated
  /approved

Avant de générer le clip trois, comparez :

clip-02.end_state == clip-03.inherits

Un agent peut effectuer cette vérification de cohérence automatiquement. Un humain devrait toujours approuver l'identité, les ressemblances sensibles, l'intention narrative et la coupure finale.

Erreurs courantes des débutants

Division lors d'une action rapide

Choisissez un arrêt, une tenue, un contact ou un geste complété. Les limites en mouvement forcent la génération suivante à déduire l'élan à partir d'une image.

Décrire uniquement ce qui change

La continuation a également besoin de faits hérités. Réaffirmez la direction, les accessoires, la position, la lumière et les conditions de la caméra avant la nouvelle action.

Transmettre une image finale invalide

Examinez-la d'abord. Une main déformée ou un accessoire manquant devient la preuve de départ pour le clip suivant.

Résoudre la continuité visuelle en ignorant l'audio

Utilisez un lit d'ambiance sur la jonction quand les générations distinctes produisent un changement tonal ou de volume.

Régénérer tous les clips après un échec tardif

Gellez les clips approuvés. Réparez la limite ou la première continuation échouée.

Foire aux questions

La dernière image est-elle suffisante pour continuer une vidéo IA ?

Elle aide à l'apparence et à la position, mais pas à la direction, l'intention, l'historique des accessoires ou l'action future. Associez-la à un ledger d'état et un prompt de continuation.

Où dois-je diviser une longue séquence ?

Divisez après qu'une action se soit stabilisée : un arrêt, un atterrissage, un objet placé, une porte fermée, une pose tenue ou un cadre de caméra stable.

Combien de détails appartiennent au ledger d'état ?

Enregistrez tout ce dont le changement inexpliqué distrairait un spectateur ou briserait l'action suivante. Ignorez les détails décoratifs qui peuvent varier en toute sécurité.

Puis-je combiner un rôle de première image avec d'autres références ?

Non sur la surface de demande reAPI Seedance 2.5 actuelle. image_with_roles ne peut pas être combiné avec les autres champs de référence de média, donc choisissez entre une limite de cadre difficile et un ensemble de référence plus large.

Chaque clip devrait-il utiliser la durée maximale ?

Non. Choisissez la durée autour des actions naturelles et des transmissions. Un beat complété plus court est plus facile à contrôler qu'un long clip rempli à sa limite.

Conclusion

La continuité vidéo IA est une discipline de transmission. Planifiez la séquence complète, terminez chaque clip sur un état stable, vérifiez le cadre limite et faites en sorte que le prompt suivant hérite d'un ledger écrit avant d'introduire une nouvelle action. Cela n'élimine pas la variation, mais cela transforme « le faire continuer » en un processus de production que vous pouvez inspecter, réparer et automatiser.

Références

  1. ByteDance Seed. One-take Creation, Flexible Referencing: Introducing Seedance 2.5. July 31, 2026. seed.bytedance.com
  2. reAPI. Seedance 2.5 API — Parameters, Modes & Billing. Retrieved August 27, 2026. reapi.ai
  3. ByteDance Seed. Seedance 2.0 Official Launch. February 12, 2026. seed.bytedance.com