
Pour obtenir plusieurs visages qui jouent la même scène, le prompt vidéo ne suffit pas toujours. Une petite application peut d’abord jouer la performance, l’enregistrer comme guide de mouvement, puis transmettre ce rythme à Seedance 2.5 avec une image de référence et une piste audio.
Voici le workflow issu de FACSimile, réorganisé pour être transmissible : ce que Claude Code peut construire, ce que le moteur open source Chimera expose réellement, et ce que la direction artistique doit encore contrôler à l’œil et à l’oreille.
Ce qu’il faut retenir
- Le guide de mouvement est une prise de direction : il porte un rythme, des poses, des pauses et des intentions observables avant de demander un nouveau visage.
- Seedance 2.5 est officiellement présenté comme un modèle audio-vidéo avec références et édition ; cela ne garantit ni un contrôle FACS natif ni une synchronisation parfaite.
- Claude Code est utile pour découper l’app en données, contrôles, capture et tests. Il ne remplace ni l’écoute d’une voix ni la validation d’un mouvement.
- Le dépôt CHIMERA vocal synth fournit un synthétiseur vocal physique dans le navigateur, avec Rust, WebAssembly et AudioWorklet. Il ne fournit pas une couche FACS prête à l’emploi.
- Pour une agence, l’actif transmissible n’est pas seulement l’interface : c’est la partition versionnée, le prompt, le fichier de référence et la grille de revue.
Le problème : demander une performance à Seedance trop tôt
Dans le cas FACSimile, l’application jouait une tête filaire qui chantait. Le premier réflexe aurait été de demander directement à Seedance de faire chanter un portrait avec une émotion donnée. Le résultat choisissait alors son propre cadrage, son propre degré de mouvement et sa propre manière de terminer la phrase.
Le changement de méthode est simple : l’app joue d’abord la scène. Sa sortie devient une vidéo guide. Seedance reçoit ensuite trois rôles distincts :
- une vidéo pour le rythme, l’inclinaison de la tête et le moment des mouvements ;
- une image pour l’identité, les cheveux, les vêtements et la lumière ;
- un audio pour le chant et le mouvement des lèvres.
La page officielle de Seedance 2.5 parle de génération audio-vidéo, de vidéos allant jusqu’à 30 secondes et de références vidéo capables de transmettre une intention, un cadrage et un langage cinématographique. Elle ne décrit pas une commande FACS native. Les notations @Video 1, @Image 1 et @Audio 1 reprises plus bas viennent de l’interface du cas local ; elles ne doivent pas être prises pour une syntaxe universelle de l’API. Dans une autre interface, joignez les mêmes fichiers par les contrôles prévus.
Cette séparation évite une confusion fréquente : une référence n’est pas une preuve de résultat. Elle indique au modèle ce qu’il doit essayer de préserver. Le mouvement final doit encore être relu.
Ce que Chimera apporte vraiment
Le dépôt amont jamesondh/chimera-vocal-synth décrit un synthétiseur vocal par modélisation physique. Le son est produit par un modèle de conduit vocal, et non par la lecture d’échantillons. L’interface navigateur sait jouer, parler, chanter et faire du beatbox ; l’architecture associe un moteur Rust, une compilation WebAssembly et un AudioWorklet.
Le code expose une liste d’articulateurs et de sources vocales. Côté interface, les clés comprennent notamment jaw, tbX, tbY, ttX, ttY, lipAp, lipProt, lipWidth, velum, larynx et dorsum, ainsi que f0, vibrato, breath et closure. L’objet Gesture permet de définir un début, une fin, une entrée progressive, une sortie progressive, une intensité, des cibles et un libellé. AudioEngine reçoit ensuite des changements d’articulation, des changements de source ou une partition de gestes.
Ce sont des contrôles de voix et de conduit vocal, pas des unités d’action faciale. AU6 et AU12 peuvent rester une couche de direction visuelle : la table FACS du NCBI décrit notamment les joues relevées pour AU6 et les commissures relevées pour AU12. Rien dans le dépôt Chimera ne permet d’affirmer qu’il simule directement les muscles du visage ou qu’AU6 possède un effet vocal mesuré.
La bonne architecture conserve donc deux partitions :
1. une partition expressive, qui décrit ce que l’on veut voir — par exemple « tristesse », « sourire sincère », « yeux fermés » — avec les indices observables à contrôler ; 2. une partition vocale, qui décrit les gestes que Chimera sait réellement jouer — hauteur, ouverture de la mâchoire, forme des lèvres, position de la langue et paramètres de source.
Claude Code peut relier ces deux couches dans un fichier de session. Il ne doit pas inventer une équivalence physiologique entre elles.
L’architecture minimale de l’app compagnon
Pour construire le même genre d’instrument que FACSimile, ne commencez pas par refaire tout le moteur vocal. Ajoutez une couche de direction au-dessus du dépôt amont :
Chimera pilote une bouche, une langue et un larynx, pas un visage
Les 22 clés de contrôle du dépôt Chimera, placées sur une coupe du conduit vocal. Cliquez sur un point rouge pour voir ce qu’il pilote, ou sur un cercle pointillé du visage pour voir ce qui n’y correspond pas.
Coupe d’une tête montrant le conduit vocal. Les 22 clés de Chimera pilotent la mâchoire, la langue (corps, pointe, dos et racine), les lèvres, le voile du palais, le larynx et la source glottique (hauteur, vibrato, souffle, fermeture). Aucune ne pilote les sourcils, les paupières, les joues ou les commissures, que décrivent les unités FACS AU1, AU4, AU6, AU12, AU15 et AU43.
src/wasm/types.ts du dépôt CHIMERA vocal synth, rôles repris de docs/architecture.md ; schéma anatomique simplifié et emplacements indicatifs.| Couche | Rôle | Livrable contrôlable |
|---|---|---|
| Chimera | Produire et visualiser la voix simulée | Audio, état des articulateurs, télémétrie |
| Partition | Décrire les moments, poses et gestes | JSON versionné, libellés, durées |
| Direction | Convertir un retour de DA en critère | Écart mesurable ou décision à revoir |
| Capture | Enregistrer la performance | Vidéo guide, audio, horloge commune |
| Seedance | Réinterpréter la performance | Plans générés à comparer au guide |
| Revue | Décider si le plan est exploitable | Grille, captures, commentaire humain |
Un premier fichier de partition peut rester volontairement petit :
{
"version": 1,
"duration": 8,
"cues": [
{"at": 0.0, "label": "sorrow", "visual": {"au1": 0.3, "au4": 0.7, "au15": 0.3}, "voice": {"jaw": 0.12}},
{"at": 2.8, "label": "quiet_joy", "visual": {"au6": 0.5, "au12": 0.5}, "voice": {"lipWidth": 0.35}},
{"at": 6.5, "label": "last_note", "visual": {"au43": 0.8}, "voice": {"f0": 0.2}}
],
"audio_offset_frames": 0,
"references": {"video": "guide.mp4", "image": "portrait.png", "audio": "voice.wav"}
}
Les noms et valeurs visuels ci-dessus sont des intentions d'exemple, pas des commandes natives de Chimera. Les clés voice doivent être validées contre les types du dépôt avant d'être envoyées au moteur. Une partition ainsi structurée peut être relue par un DA, diffée dans Git et rejouée par un collègue.
Mode d'emploi : construire l'app avec Claude Code
1. Préparer un dépôt propre
Claude Code est documenté comme un outil de développement en terminal. Sur une machine qui dispose de Git, Bun, Rust et de la cible WebAssembly, récupérez le dépôt officiel et vérifiez d'abord son état :
git clone https://github.com/jamesondh/chimera-vocal-synth.git
cd chimera-vocal-synth
bun install
bun run typecheck
bun run test
Le README du dépôt indique aussi bun run dev pour lancer Vite sur localhost après la compilation WebAssembly. Le contexte localhost est important : l'AudioWorklet demande un contexte sécurisé. Si vous ne voulez pas modifier le moteur, faites une branche dédiée à l'app compagnon et conservez le premier commit sans changement sonore.
2. Demander une cartographie avant la moindre fonctionnalité
Lancez Claude Code dans le dépôt, donnez-lui d'abord une tâche d'inspection et exigez un rapport. La première sortie utile n'est pas du code : c'est la carte des fichiers, des messages AudioWorklet, des types d'articulation et des tests à protéger.
La même horloge pilote ce qu’on veut voir et ce que la voix joue
La partition d’exemple de l’article tient en 8 secondes et trois repères. Lancez la lecture : chaque repère active une intention visuelle et un geste vocal, sur deux pistes qui ne se confondent jamais.
Partition de 8 secondes en trois repères. À 0 seconde, sorrow : AU1 à 0,3, AU4 à 0,7 et AU15 à 0,3 côté visage, jaw à 0,12 côté voix. À 2,8 secondes, quiet_joy : AU6 et AU12 à 0,5, lipWidth à 0,35. À 6,5 secondes, last_note : AU43 à 0,8, f0 à 0,2. Les intentions visuelles et les gestes vocaux partagent l’horloge sans équivalence entre eux.
3. Construire une tranche verticale
La première version doit faire quatre choses : charger une partition JSON, afficher une timeline, envoyer un petit nombre de gestes à Chimera et exporter la partition avec son horloge. Ne demandez pas encore une capture automatique parfaite ni une exportation vidéo universelle.
L'app peut s'appuyer sur les points d'entrée existants : AudioEngine.setArtic, setSource, schedule, onTelemetry et onPlanned. Les tests doivent vérifier les limites, les unités, l'ordre des gestes et le comportement lorsque l'audio n'est pas encore démarré.
4. Ajouter la capture après le contrôle de la partition
Une vidéo guide n'a de valeur que si l'audio, le mouvement et l'horloge sont alignés. Ajoutez donc un repère de départ, un compte en images et une note d'offset. Si vous utilisez MediaRecorder, demandez à Claude Code de documenter les codecs réellement disponibles dans le navigateur courant et de fournir un plan de repli ; ne promettez pas le même conteneur sur tous les navigateurs.
Le cas FACSimile a trouvé un décalage de plusieurs images entre lèvres et son. Ce type de mesure aide à corriger la prise, mais ne prouve pas que Seedance reproduira la voix au même endroit. Mesurez la sortie générée séparément.
5. Brancher Seedance comme une étape de production
Exportez trois fichiers cohérents, nommés par version : guide-v03.mp4, portrait-v03.png, voice-v03.wav. Dans l'interface Seedance ou dans le mode reference-to-video exposé par votre fournisseur, joignez-les avec la consigne de mouvement. Le mode reference-to-video documenté par Higgsfield liste des paramètres de référence, de durée, de résolution, de ratio et d'audio ; il ne valide pas la syntaxe locale de chaque interface.
Commencez par une prise courte. Contrôlez le cadrage, le rythme, la forme de la bouche, la continuité de l'identité et le statut de l'audio. Ne lancez une série de visages qu'après avoir observé une sortie qui suit réellement la partition.
Les prompts à copier dans Claude Code et Seedance
Les cartes Claude Code ci-dessous demandent explicitement au modèle d'inspecter le dépôt avant d'éditer. Les cartes Seedance décrivent une intention de référence.
Prompt : Cartographier Chimera avant de coder
Modèle et mode vérifiés : Claude Code dans un terminal, dépôt amont CHIMERA vocal synth ; la documentation officielle de Claude Code confirme le flux de travail dans un dépôt local. Objectif : produire une carte d'architecture avant toute modification. Variables à adapter : [branche], [objectif de la tranche], [navigateur de test].
Tu travailles dans le dépôt [branche] de CHIMERA vocal synth.
Ne modifie aucun fichier pour cette tâche.
Lis README.md, AGENTS.md, CLAUDE.md, package.json, src/audio/AudioEngine.ts,
src/worklet/protocol.ts, src/wasm/types.ts, src/wasm/wire.ts et les tests qui
concernent les gestes, l'expression et le transport.
Pour l'objectif [objectif de la tranche], produis un rapport avec :
1. les fichiers à lire et les fichiers à modifier ;
2. les types et messages existants à réutiliser ;
3. les contrôles réellement exposés par Chimera ;
4. ce qui n'existe pas encore pour une partition visuelle FACS ;
5. les tests unitaires, navigateur et audio à ajouter ;
6. les limites du navigateur [navigateur de test] pour l'audio et MediaRecorder.
N'invente ni API, ni clé d'articulation, ni capacité d'export. Cite le chemin
de chaque preuve dans le rapport et arrête-toi sans écrire de code.
Pourquoi cette structure : elle force la séparation entre le moteur existant, l'UI et la couche de direction. C'est le garde-fou principal contre un prototype qui semble fonctionner mais appelle des types imaginaires. Limites : la cartographie ne teste pas le son et ne prouve pas qu'une capture produira une vidéo exploitable par Seedance.
Prompt : Ajouter une partition de mouvement sans toucher au moteur sonore
Modèle et mode vérifiés : Claude Code dans un dépôt TypeScript/Rust local ; les commandes de vérification viennent du README et d'AGENTS.md du dépôt CHIMERA. Objectif : créer une tranche verticale : JSON versionné, timeline, gestes Chimera et export de session. Variables à adapter : [nom du composant], [durée], [cues], [fichiers de test].
Implémente [nom du composant] dans une nouvelle tranche isolée.
Ne modifie pas le DSP Rust et ne change pas les valeurs de référence du son.
Construis :
- un schéma JSON versionné pour une partition de [durée] secondes ;
- des cues avec timecode, libellé, intensité et distinction visual/voice ;
- une timeline React qui affiche, édite et rejoue les cues ;
- un adaptateur qui ne transmet à AudioEngine que les clés présentes dans
src/wasm/types.ts et les messages déjà définis dans src/worklet/protocol.ts ;
- un export JSON qui conserve la version, les références, l'offset audio et
les contrôles réellement utilisés.
Ajoute des tests pour : cue hors durée, cue inversé, valeur hors intervalle,
partition vide, audio non démarré et ordre stable des gestes. Ajoute une note
dans la documentation qui dit explicitement que AU6/AU12 sont des intentions
visuelles et ne sont pas des contrôles natifs Chimera.
Avant de terminer, exécute les checks appropriés indiqués par AGENTS.md,
rapporte les commandes, les résultats et ce qui n'a pas été testé.
Pourquoi cette structure : elle construit un instrument transmissible sans faire croire que le moteur vocal connaît la direction faciale. Elle protège aussi le son existant grâce aux tests de non-régression. Limites : il faut encore une capture vidéo et une revue humaine. L'adaptateur ne mesure pas la qualité de la réinterprétation Seedance.
Prompt : Transformer un retour de DA en contrôle mesurable
Modèle et mode vérifiés : Claude Code dans le dépôt de l'app ; le prompt ne suppose aucun outil externe ni aucun accès automatique au film final. Objectif : faire passer une remarque floue à une correction limitée et vérifiable. Variables à adapter : [remarque], [fichier de référence], [fenêtre temporelle], [critère].
Voici le retour de direction artistique : « [remarque] ».
Ne modifie rien avant d'avoir répondu.
1. Reformule la remarque en une phrase observable.
2. Propose au maximum trois mesures possibles sur [fichier de référence]
dans [fenêtre temporelle].
3. Sépare ce qui peut être mesuré par le code de ce qui exige l'œil ou l'oreille.
4. Choisis une seule cause à tester et indique le fichier ou l'export concerné.
5. Donne un critère d'acceptation et un critère de rejet.
Après mon accord, applique une seule correction, conserve le fichier source,
écris un journal de version et rapporte les contrôles effectués. Ne prétends
pas avoir entendu l'audio ou regardé une vidéo en mouvement si tu n'y as pas
accédé.
Pourquoi cette structure : une phrase comme « le visage est trop statique » devient une fenêtre temporelle, une mesure de mouvement et une décision de revue ; elle ne devient pas automatiquement une nouvelle esthétique. Limites : une mesure de pixels ou de landmarks ne juge pas une intention, une voix ou une ressemblance culturelle.
Prompt : Faire de Chimera un guide de performance pour Seedance 2.5
Modèle et mode vérifiés : Seedance 2.5 en mode de référence vidéo/audio tel qu'annoncé par ByteDance ; les tokens de pièces jointes ci-dessous sont une notation de travail observée dans le cas FACSimile, pas un contrat universel d'API. Objectif : demander une réinterprétation cadrée par la performance locale. Variables à adapter : [durée], [portrait], [guide], , [timecodes], [style documentaire].
Use [guide] as the motion reference for head timing, jaw timing and pauses.
Use [portrait] for identity, hair, clothes and frontal lighting.
Use [audio] as the only voice and keep the lip movement aligned to it.
Keep the camera locked: no pan, no tilt, no zoom and no reframing.
For [duration] seconds:
[timecodes]
At each transition, preserve the order and duration of the actions in the
motion guide, but reinterpret the person as [style documentaire].
Do not show the wireframe, control labels, UI, subtitles or extra text.
Do not invent a second voice, music or room sound.
Return one take that can be compared with the guide on the same timeline.
Pourquoi cette structure : elle donne un rôle distinct à chaque référence et demande une comparaison temporelle. Elle ne décrit pas Seedance comme un moteur de FACS ni comme une garantie de lip-sync. Limites : le modèle peut déplacer un regard, un cadrage ou un phonème. Testez d'abord une durée courte et vérifiez la sortie dans son intégralité.
Ce qu'il faut vérifier avant de parler d'un résultat
Le cas local FACSimile rapporte des retards de lèvres, des prises comparées et des décisions de DA. Ce sont des preuves de ce cas, pas des caractéristiques garanties de Seedance ni du dépôt Chimera. Pour conserver cette distinction, utilisez une fiche courte :
| Contrôle | Ce que le code peut signaler | Ce que l'humain doit décider |
|---|---|---|
| Horloge | durée, nombre d'images, offset | si le raccord paraît naturel |
| Mouvement | amplitude, activité par fenêtre, ordre des cues | si le jeu est vivant ou mécanique |
| Visage | présence approximative d'un indice visuel | si l'émotion est lisible sans surjeu |
| Audio | durée, niveau, alignement de fichiers | si la voix est intelligible et crédible |
| Identité | différences entre références et sorties | si le personnage reste acceptable pour le projet |
| Modèle | paramètres et fichiers réellement envoyés | si la prise répond au brief |
Cette logique rejoint la partition de mouvement pour Genjutsu : la source porte déjà une intention, mais il faut écrire les gestes, les pauses et les éléments critiques avant de demander une transformation. Ici, Chimera rend la partition jouable et Seedance la réinterprète ; aucun des deux ne remplace la revue.
Ce que l'app change pour une équipe
Une app maison est intéressante quand elle transforme une intuition isolée en objet partageable. Elle devient fragile quand tout repose sur les souvenirs de la personne qui l'a construite. Le minimum à transmettre est donc :
- le schéma de partition et son numéro de version ;
- la liste des contrôles Chimera réellement utilisés ;
- les fichiers source avec leur empreinte et leur rôle ;
- les prompts et variables, séparés des résultats ;
- la grille de revue et les raisons de rejet ;
- les limites connues, les coûts observés et les tests encore manuels.
Cette discipline ressemble à un registre de commandes partagé pour une app créative : la valeur d'un outil agentique vient moins de la promesse d'autonomie que de la capacité à refaire une action, inspecter son résultat et savoir où l'humain reprend la main.
Pour une agence, l'hypothèse est la suivante : une partition courte pourrait faciliter la transmission entre DA, motion designer et creative technologist. Cette hypothèse n'est pas mesurée par le cas FACSimile. L'objection à traiter est aussi saine : formaliser une émotion ne doit pas rigidifier la direction ni donner une fausse précision à un modèle génératif.
Avant de demander à Claude Code de générer une fonctionnalité, écrivez donc un brief versionné avec des critères avant génération. Distinguez ce qui est fourni par le client, ce qui est proposé et ce qui reste à clarifier. La partition de mouvement est un livrable de production, pas un prétexte à automatiser une décision qui n'a pas encore été prise.
Dans le cas FACSimile, la question n'est pas seulement de faire sourire un visage. Il faut décider ce que « sourire sincère » veut dire à l'image, puis le traduire en gestes et en repères. Le guide Diriger l'émotion, l'expression et le mouvement dans les images et films IA aide à poser ce vocabulaire avant le prompt. Pour tester rapidement les formulations FACS et comparer leurs indices visuels, Expression Lab fournit le point de départ opérationnel ; le résultat doit ensuite être vérifié sur le plan, la voix et le brief.

De l’intention à la scène : prolonger le workflow en formation
Un guide de mouvement ne commence pas au bouton « Générer ». Il commence quand une intention devient une scène lisible : une émotion, un rythme, une référence, une limite et une manière de vérifier la prise. C'est précisément le passage que prolonge la formation Réaliser des vidéos IA : prompts, plans, personnages et montage : elle relie intention, images sources, mouvement, cohérence des plans, audio, montage et grille de qualité.
Sources et références
Sources officielles consultées et revalidées le 11 novembre 2026 :
- Seedance 2.5 — page officielle ByteDance Seed, capacités annoncées, durée et références vidéo.
- Introducing Seedance 2.5, annonce et périmètre de la génération audio-vidéo.
- Seedance 2.5 reference-to-video — API Higgsfield, paramètres exposés par cette voie de référence.
- Claude Code — documentation officielle, installation, terminal et démarrage dans un dépôt.
- CHIMERA vocal synth — dépôt amont, architecture, commandes et licence MIT relues sur le commit courant.
- FACS — table NCBI, définition des unités utilisées comme vocabulaire d'observation.
AUTEUR
Fondateur de CreativeAI.fr · Expert IA & workflows créatifs · 20+ ans d’expérience en direction créative (Marcel, Leo Burnett). 600+ professionnels formés depuis 2023 aux usages, méthodes et workflows IA. 4,7/5 de satisfaction moyenne.
Guides Pratiques & outils

Gemini 4 Argon : du brief éclaté au monde 3D cohérent
Un projet 3D devient vite fragile lorsque les références, les contraintes et les décisions restent dispersées entre fichiers et conversations. Gemini 4 Argon peut aider à transformer ce chaos en une bible de monde structurée.

Kling 4 Omni Reference : attribuer un rôle à chaque référence vidéo
Kling 4 Omni Reference devient utile quand une équipe cesse d’empiler des images et commence à déclarer ce que chacune doit contrôler. Le produit, le personnage, le décor, le mouvement, la caméra et la voix ne sont pas une seule matière de référence. Ils jouent des rôles différents.

Le réalisme imparfait : créer des photos IA qui semblent prises sur le vif
Une photo IA naturelle commence par une situation plausible : qui photographie, quoi, quand, avec quel appareil et quelle lumière ? Ce guide aide les directeurs artistiques et les équipes créatives à formuler ces choix, à doser les imperfections et à transmettre une direction visuelle.

Repose Studio : changer la pose sur une photo sans refaire le shooting
Pour changer la pose d’une personne sur une photo, Repose Studio combine l’image de départ et une carte qui indique où placer le corps. Essayez cette méthode si le geste change après le shooting.

