Vidéo IA

Production vidéo IA auto-hébergée : l'expérience — des vidéos talking-head entièrement générées sur votre propre matériel

Production vidéo IA auto-hébergée : l'expérience — des vidéos talking-head entièrement générées sur votre propre matériel

Production vidéo IA auto-hébergée : l'expérience — des vidéos talking-head entièrement générées sur votre propre matériel

Un rapport d'expérience : nous avons testé jusqu'où mène le matériel local pour générer entièrement des vidéos talking-head — de ComfyUI et MiniMax-H3 jusqu'à la synchronisation labiale d'une voix clonée. Le résultat : étonnamment proche, mais pas prêt pour la production. Tous les chiffres, réglages et impasses.

De quoi parle cet article ?

Les vidéos IA avec des personnes qui parlent sont partout : clips LinkedIn, explications produit, formats réseaux sociaux. Les outils habituels tournent dans le cloud — vous téléchargez des photos, choisissez une voix, et le serveur de quelqu'un d'autre produit la vidéo. C'est pratique, mais il y a trois inconvénients : chaque clip coûte plusieurs euros, les enregistrements des clients quittent votre infrastructure, et les réglages disponibles sont limités. Quiconque veut un contrôle précis et reproductible — la même personne, la même pièce, la même esthétique caméra — se heurte vite à un mur.

C'est pourquoi nous avons mené l'expérience inverse chez Context Studios : un pipeline où chaque composant tourne sur notre propre matériel — une expérience pour comprendre ce qu'un seul appareil de bureau permet aujourd'hui. Cet article explique de façon accessible comment ce pipeline est construit, quelles décisions nous avons prises, ce qui a bien mesuré et ce qui a échoué — avec les chiffres que ce genre de rapport omet d'habitude.

Les briques d'un pipeline vidéo auto-hébergé

Avant d'entrer dans le détail, une orientation rapide. Quatre composants travaillent ensemble :

Le matériel. Un ASUS Ascent GX10 — un mini PC plat et compact basé sur la plateforme NVIDIA DGX Spark. Dans la puce GB10, un CPU Arm et un GPU Blackwell partagent 128 Go de mémoire unifiée.

La couche image. Avant toute vidéo, la personne doit être juste — comme un réalisateur connaît les photos de son actrice avant le tournage. Un modèle d'image (chez nous Qwen-Image-2.1) génère ou valide des photos de référence de la personne clé : visage, coiffure, barbe, lunettes, vêtements.

Le modèle vidéo. MiniMax-H3 prend les photos de référence et un prompt scénario, et génère un clip vidéo — y compris le mouvement des lèvres et même la parole générée.

La voix. Un clone vocal (chez nous via ElevenLabs) prononce le texte allemand dans la voix de marque du client. Le point crucial : cette voix et le mouvement des lèvres dans la vidéo doivent être synchronisés — c'est une étape à part entière, avec ses propres outils et ses propres pièges.

text
Le flux de données en une phrase :
Photos de référence → le modèle d'image valide l'identité → le
modèle vidéo génère un avatar parlant → le clone vocal produit
l'audio → le lip-sync aligne les lèvres sur l'audio → post-look → QC

Le setup en détail

Notre pipeline tourne dans ComfyUI. Imaginez un plateau de brassage pour modèles IA : on câble des briques à la souris pour former un enchaînement, et le tout peut en plus être piloté automatiquement par des programmes (via une « API HTTP ») — exactement ce qu'exige l'automatisation. Sur la DGX Spark on trouve :

  • MiniMax-H3, quantifié en int8 (détail plus loin), comme modèle vidéo — rendu vertical en 768×1344 pixels, le format 9:16 classique des clips sociaux
  • Qwen3-VL-32B comme cerveau textuel : un modèle de langage qui lit le prompt scénario et le traduit dans une forme exploitable par le modèle vidéo
  • Deux décodeurs VAE séparés — des composants traducteurs qui retransforment les données internes du modèle en vraies images et en son : un pour les images vidéo, un pour l'audio. H3 génère les deux ensemble
  • Une gestion dynamique de la mémoire : le modèle vidéo ne précharge que 19,9 Go et rapatrie le reste au moment où il en a besoin — comme on ne sort les outils de l'armoire que lorsqu'on en a vraiment besoin
text
Temps de rendu (clip de 5 secondes, 24 fps) :
864×480 baseline :                280 secondes
768×1344, 20 étapes d'échantillonnage : ~23 minutes décodage inclus

Une constatation inattendue : la puce GB10 se bride thermiquement. Au-dessus de 85 °C de température du die, elle réduit sa fréquence d'environ dix pour cent. Sur une session de rendu de cinq heures, cela a totalisé 81 minutes de bride active — et explique pourquoi des rendus identiques prenaient tantôt 53, tantôt 105 secondes par étape. Quiconque compare des benchmarks doit penser au refroidissement.

Étape 1 : la personne doit être juste — la couche image

Le modèle vidéo vaut ce que valent ses références. Nous avons utilisé trois photos d'une personne réelle et testé systématiquement quels réglages maximisent l'identité (la ressemblance avec la vraie personne) et le réalisme (peau naturelle, micro-expressions naturelles).

Quantification : int8 plutôt que fp8. Les deux variantes donnent des métriques de texture de peau identiques. int8 gagne car il charge plus vite — un gain de vitesse gratuit.

Moins d'étapes d'échantillonnage peut être mieux. 20 étapes avec l'échantillonneur euler et le planificateur beta57 ont produit des micro-expressions nettement plus naturelles (sourcils, plis des yeux, clignements) que le rendu original bien plus long dont nous disposions pour comparaison.

Le compromis du Realism-LoRA. Un LoRA est un petit modèle additionnel qui pousse un modèle de base dans une direction — ici, une peau photoréaliste. Notre test a confirmé l'effet : pores, filaments de barbe, plis des yeux devenaient visiblement plus naturels. Mais il y avait un hic qu'on ne voit qu'au second regard : le LoRA modifiait aussi les traits d'identité — la ligne de cheveux devenait plus marquée, la barbe plus grise et dense, les lunettes différentes. Notre solution : réduire la force du LoRA de 1,0 à 0,7. Le gain de texture reste, l'écart devient acceptable.

Le piège que personne ne voit venir. Notre prompt contenait délibérément beaucoup d'attributs « réalisme iPhone » : léger tremblement de main, autofocus hésitant, respiration d'exposition. L'effet était frappant — et contre-productif : le modèle transférait l'esthétique iPhone sur la scène et réinterprétait le décor. Du mur vert sauge intérieur, on passait à un mur de béton avec briques, en extérieur. La leçon : les attributs de réalisme et le décor doivent être ancrés séparément et explicitement. Notre prompt de décor dit désormais, en substance : « INDOOR : exactement le mur vert sauge de la photo de référence 1, pas d'extérieur, pas de béton, pas de briques. »

Étape 2 : le modèle vidéo — le dialogue intégré au rendu

MiniMax-H3 possède une propriété qui simplifie considérablement le pipeline : il génère la vidéo et l'audio ensemble. Le dialogue se place dans une balise spéciale du prompt scénario, et H3 produit un avatar qui prononce ce texte — avec le mouvement labial correspondant et une parole audible.

Lors de notre test, le modèle a prononcé la phrase allemande « Die meisten Leute machen KI-Video viel zu kompliziert. Drei lokale Modelle reichen vollkommen aus » de façon intelligible. Nous ne nous sommes pas contentés d'écouter : un modèle de reconnaissance vocale a transcrit l'audio généré mot à mot.

Le grand avantage de cette co-génération : le mouvement des lèvres et le son naissent dans le même processus, leur synchronisation est donc mécaniquement parfaite. La barbe reste intacte, les expressions naturelles. L'inconvénient : la voix générée sonne générique — ce n'est pas la voix de la marque. Pour la voix de marque, il faut les étapes 3 et 4.

Étape 3 : la voix — et le piège des hallucinations

Pour la voix de marque, nous utilisons un clone vocal chez ElevenLabs : un modèle qui forge une voix à partir d'enregistrements de référence d'un vrai locuteur. Notre clone (en interne « CS-Klon ») devait prononcer la phrase de test allemande. À la première écoute, le résultat semblait banal. Puis nous avons fait le test décisif : transcrire l'audio mot à mot, sans rien lisser :

text
Texte visé :   Die meisten Leute machen KI-Video viel zu kompliziert.
               Drei lokale Modelle reichen vollkommen aus.

Réellement prononcé : Ähm, und die meisten Leute machen KI-Video viel zu
               kompliziert und drei lokale Modelle, ähm, reichen
               vollkommen aus. Wir machen das, ähm

Trois « ähm », deux « und » insérés et une phrase supplémentaire entièrement inventée et interrompue — rien de tout cela ne figurait dans le prompt. Nous avons aussi mesuré la mélodie de la voix par suivi de pitch : la fréquence fondamentale fluctuait de façon incontrôlée (écart-type de 64 Hz autour d'une moyenne de 143 Hz — un coefficient de variation de près de 45 pour cent, contre un peu plus de 28 pour cent après le correctif). Et l'hésitation du débit allait de 5,6 à 10,4 secondes pour le même texte avec des réglages identiques.

Pourquoi cela arrive — d'après la documentation officielle

L'explication était entièrement dans la documentation ElevenLabs ; il fallait simplement l'assembler.

Premièrement : l'Instant Voice Cloning est une procédure zero-shot. Le système mélange le matériel de référence avec des données génériques d'un modèle de fondation — et imite tout ce qu'il entend dans ce matériel. Si le matériel contient des respirations ou des sons de remplissage, le clone produit exactement cela. La doc le formule sans détour : « The AI will attempt to mimic everything it hears in the audio. »

Deuxièmement : le paramètre de style de la voix est plus dangereux que son nom ne le suggère. La page de dépannage recommande de le laisser à 0 en permanence, car il provoque « inconsistent speed, mispronunciation and the addition of extra sounds ». Nous avions des valeurs jusqu'à 0,45 — le suspect principal des sons supplémentaires.

Troisièmement : une stabilité basse n'est pas un bouton d'expression, c'est un bouton de variance. La doc met en garde contre des « performances trop aléatoires qui font parler le personnage trop vite ». Et sans seed fixée (une valeur de départ pour le générateur aléatoire), chaque génération est différente — « determinism is not guaranteed ».

Le stack de correctifs et ses métriques

Nos réglages finaux : stabilité fixée à 0,55, similarité 0,75, style 0,0, speaker boost activé, seed fixé par clip, nombres et acronymes écrits en toutes lettres, pas de points de suspension. Plus une porte qualité : chaque génération est transcrite par reconnaissance vocale — dès qu'un seul « ähm » apparaît, elle est régénérée.

text
                         avant                après
Fillers en STT :         3× « ähm » + phrase  →  0 (6 générations sur 6)
Variance de pitch (CV) : 44,8 %               →  28,0 %
Variance de durée :      5,6–10,4 s           →  ±0,1 s (avec seed)
Dynamique (LRA) :        0,3–3,4 LU aléatoire →  stable 1,4 LU
Loudness :               −33 LUFS             →  −16 LUFS (niveau production)

À l'écoute comparative de deux générations de modèles, multilingual_v2 a gagné (court, percutant, prosodie calme) face au plus récent v4 (débit plus naturel, plus de présence vocale). Et le correctif le plus propre reste à venir : reconstruire le clone à partir de 60 à 120 secondes de matériel de référence soigneusement monté, sans respiration — car le clone imite ce qu'il entend.

Étape 4 : la synchronisation labiale — trois approches comparées

Quand la vidéo et l'audio viennent de sources différentes, la bouche doit être recalculée. Un marché d'outils existe pour cela — nous avons testé trois approches.

Approche 1 : tout au même endroit (H3 natif)

Comme H3 génère le son et l'image ensemble, la synchronisation est parfaite par construction. Allemand intelligible, barbe impeccable, expressions naturelles. Pour itérer vite, c'est la meilleure voie. Le prix : la voix est celle du modèle, pas celle du client.

Approche 2 : voix étrangère plus une passe de lip-sync externe

Pour une vraie voix de marque, une passe de sync est incontournable : un modèle spécialisé recalcule le mouvement des lèvres pour qu'il colle à l'audio. Nous avons testé la famille lipsync-2 de sync.so via l'infrastructure fal.ai :

Le modèle standard synchronisait proprement — mais la barbe autour de la bouche était presque entièrement effacée. L'effet « fraîchement rasé ». Le modèle pro (avec une garantie explicite barbe et dents) conservait nettement plus de structure de barbe, même si un affinage léger subsistait. La raison est conceptuelle : ces modèles re-rendent toute la partie inférieure du visage.

Un deuxième levier était le mode de synchronisation : remap au lieu de cut_off. En mode par défaut, l'audio est coupé brutalement à la durée de la vidéo ; en mode remap, il est mappé sur le mouvement des lèvres. Cela a amélioré de façon mesurable la qualité de synchro et la préservation de la barbe.

Plus important encore, la leçon côté rendu : les modèles de lip-sync de cette famille exigent une bouche activement parlante en entrée. Notre première tentative — rendre la vidéo avec les lèvres fermées puis faire animer la bouche — ne produit, selon la doc, que des « résultats génériques ». Rendez avec une performance ouverte et parlante ; l'audio (faux) du modèle est de toute façon jeté à la passe de sync.

Approche 3 : l'open source sur sa propre machine

Pour la solution durable sans coûts d'API, le paysage open source 2026 se résume ainsi : KeySync de l'Imperial College est le modèle libre le plus solide — diffusion en deux étapes, gestion explicite des occlusions (crucial pour les lunettes !), et mesurablement meilleur que la fameuse alternative ByteDance LatentSync dans la comparaison scientifique ; LatentSync n'a plus eu de version depuis mi-2025. LTX-LipDub est intrigant mais text-driven et non audio-driven — la mauvaise approche pour des fichiers de voiceover. MuseTalk est éliminé pour les barbes.

KeySync est sur notre feuille de route : l'intégration ComfyUI existe, les checkpoints pèsent environ 24 Go. La question ouverte est le build sur la puce GB10 — il n'existe pas encore d'expérience documentée à ce sujet ; nous ferons un retour.

L'expérience en 7 étapes

text
1. Valider les photos de référence (frontal, détails, décor)
2. Modèle d'image : vérification d'identité de la personne
3. Rendu H3 : 768×1344, 20 étapes, euler/beta57, seed fixe,
   Realism-LoRA 0,7, dialogue dans la balise de langue,
   performance ouverte et parlante, décor ancré explicitement
4. Clone vocal avec le stack de correctifs + porte STT anti-fillers
5. lipsync-2-pro en mode remap
6. Post-look : contraste subtil, grain léger, tons chauds —
   esthétique iPhone sans brillance HDR
7. QC : inspection d'images plus vérification STT du mix final

Environ 30 minutes par clip, dont 23 minutes de rendu H3. La chaîne est entièrement automatisable et a fonctionné de façon reproductible lors de notre test — comme un montage expérimental, pas une chaîne de production.

Ce que nous avons appris

Ce qui fonctionne : l'audio co-généré pour itérer vite. La voix de marque externe avec lip-sync pro et mode remap. Le stack de correctifs documenté contre les hallucinations des clones vocaux. L'analyse STT mot à mot comme porte qualité automatique — elle a révélé des problèmes inaperçus à l'oreille. La fixation du seed pour des prises reproductibles. La quantification int8 comme gain de vitesse gratuit.

Ce qui ne fonctionne pas : l'exagération de style sur les clones vocaux (documenté, mais facile à rater). Une stabilité basse comme bouton « expression ». Des lèvres fermées comme cible de sync. Le mode de sync par défaut avec des durées audio/vidéo inégales. Espérer que la barbe et le contour des lunettes survivent à un lip-sync standard.

L'impression d'ensemble honnête : l'expérience fonctionne. Sur un seul appareil de bureau, un clip aux lèvres synchronisées et à la voix étrangère naît en une demi-heure. Pour une mise en production, il est selon nous encore trop tôt — la qualité est bonne, pas assez bonne pour en générer simplement du contenu et le publier. Le dernier reste d'artificialité ne se situe plus dans la synchronisation mais dans les micro-expressions : un œil exercé reconnaît la limite de la génération de modèles actuelle. C'est précisément ce presque-vrai qui nous a conduit à documenter le projet comme une expérience plutôt qu'à le mettre en production.

Regarder les résultats

Pour que ce rapport ne se contente pas d'affirmer ce qu'il explique : voici les deux clips finaux du test. Le premier montre la variante voix de marque — voiceover allemand issu du clone vocal, lip-sync via la passe pro, post-look esthétique iPhone. Le second montre la variante H3 native, où le modèle vidéo génère la parole et le mouvement labial ensemble, rendant la synchronisation mécaniquement parfaite.

Variante A : voix du clone CS avec lipsync-2-pro

Variante A : voix du clone CS (ElevenLabs) avec lipsync-2-pro et mode remap — le workflow final.

Variante B : H3 natif, audio co-généré

Variante B : H3 natif — parole et bouche issues d'un même passage de diffusion, barbe et expressions intactes.

Les deux clips proviennent du même rendu (seed identique, prompt de scène identique) — la différence tient entièrement à la chaîne audio et sync. Cette comparaison nous a montré où réside la force de chaque méthode.

Le pipeline en diagramme

Le flux de données complet d'un coup d'œil — des photos de référence au rendu H3 jusqu'aux deux variantes de résultat :

Flux de données du pipeline vidéo IA auto-hébergé : photos de référence, vérification d'identité Qwen-Image, rendu MiniMax-H3, clone vocal ElevenLabs avec porte STT, lipsync-2-pro remap, post-look et contrôle qualité
Flux de données du pipeline vidéo IA auto-hébergé : photos de référence, vérification d'identité Qwen-Image, rendu MiniMax-H3, clone vocal ElevenLabs avec porte STT, lipsync-2-pro remap, post-look et contrôle qualité

Sources

Questions fréquentes

Pourquoi s'auto-héberger alors que le lip-sync et les modèles vidéo existent en API ?

Trois raisons. D'abord le coût : un clip de 5 secondes coûte vite plusieurs euros via les API cloud, et le travail itératif multiplie la facture. Ensuite le contrôle des données : les enregistrements clients et les photos de référence ne quittent jamais votre infrastructure. Enfin la maîtrise de chaque réglage : seed, sampler, scheduler, force du LoRA et chemin de rendu ne sont entièrement accessibles qu'en auto-hébergement — précisément les leviers dont nous avons eu besoin pour corriger la dérive d'identité et les erreurs de décor. L'API reste dans notre pipeline là où elle est meilleure : la passe de lip-sync.

La synchronisation labiale avec un fichier voiceover étranger est-elle vraiment propre ?

Oui, mais pas en plaquant simplement l'audio. Nous rendons la vidéo avec une performance ouverte et parlante, laissons un modèle spécialisé recalculer le mouvement des lèvres pour correspondre exactement à l'audio — en mode remap, qui mappe l'audio sur le mouvement au lieu de le couper — et vérifions le résultat par inspection d'images. Le compromis documenté : la barbe autour de la bouche s'affine légèrement, car le modèle re-rend la partie inférieure du visage. Le modèle pro atténue nettement cet effet ; les modèles open source avec masques d'occlusion sont l'étape suivante.

Pourquoi un clone vocal hallucine-t-il des mots de remplissage comme « ähm » jamais présents dans le texte ?

L'Instant Voice Cloning est une procédure zero-shot : le modèle mélange le matériel de référence avec des données génériques de fondation et imite tout ce qu'il entend — y compris la respiration et les sons de remplissage. Si le prompt contient en plus des acronymes, des nombres ou des points de suspension, le modèle improvise davantage. Les contremesures sont officiellement documentées et ont fonctionné chez nous : matériel de référence propre sans respiration, paramètre de style à 0, stabilité entre 0,5 et 0,65, un seed fixé, tout écrire sous forme développée — et vérifier le résultat par reconnaissance vocale avant qu'il n'entre dans le pipeline.

Le résultat est-il proche d'une vraie vidéo iPhone ?

Plus proche que prévu, avec une limite claire. La combinaison d'attributs caméra portée dans le prompt, de grain subtil, de tons chauds et de l'absence de brillance HDR tient bien la comparaison à l'image fixe. L'œil exercé reste sur les micro-expressions : clignements et sourcils paraissent naturels, mais l'éventail des expressions faciales est plus étroit que sur une vraie prise. Pour des clips sociaux de 5 à 15 secondes avec une caméra calme, la différence est presque invisible ; pour les formats longs, il manque selon nous une génération de modèles.

Un tel appareil vaut-il le coup pour des expériences vidéo ?

Pour notre expérience : oui — les yeux ouverts. Les 128 Go de mémoire partagée permettent de garder le modèle vidéo et le modèle d'image chargés simultanément, et environ 25 minutes par clip sont acceptables pour une production itérative. En face : la bride thermique en charge soutenue et le désavantage d'écosystème — les modèles open source récents n'ont pas de build documenté pour cette puce, et certaines bibliothèques graphiques exigent des correctifs. Le GX10 n'est pas un remplaçant de ferme de rendu mais un appareil d'expérimentation fascinant pour une personne ou une petite équipe — et c'est exactement ainsi que nous l'avons utilisé.

Quelle est la prochaine étape pour gommer le dernier reste d'artificialité ?

Trois leviers par ordre de priorité. D'abord KeySync localement sur la machine : un lip-sync préservant la barbe sans coûts d'API, l'effort de build sur l'architecture GB10 étant réel. Ensuite la reconstruction du clone vocal à partir de 60 à 120 secondes de matériel sans fillers ni respiration — le correctif documenté à la racine des hallucinations. Enfin la sélection best-of-N : générer plusieurs prises par clip et choisir automatiquement la meilleure via reconnaissance vocale et métriques d'image, au lieu de miser sur une seule génération.

Un sujet pour votre équipe ? Parlons-en 30 minutes.

Nous identifions ce qui fonctionne vraiment dans votre entreprise — concret, sans avalanche de slides.

Sans engagement · 30 minutes · Devis sous 48 h