Digital Human Video · Agent Skill
Objectif
Recevoir un sujet ou un script prêt, produire une vidéo verticale de présentateur numérique IA : script -> MiniMax TTS -> HeyGen synchronisation labiale -> FFmpeg ajout sous-titres, titre, identifiant IA, incrustation/BGM optionnel -> MP4 + texte de publication. Lors du premier lancement, créer uniquement l’ID Look du digital human et l’ID Voice clonée ; les réutiliser ensuite sans recréation. Proposer un aperçu de 15 secondes (payant via HeyGen) ; par défaut, l’utilisateur doit valider l’aperçu avant de générer la version complète. Ne lancer les deux étapes qu’après approbation explicite de l’utilisateur.
Installation et vérification
- Placer le skill dans
~/.codex/skills/digital-human-videoou~/.claude/skills/digital-human-video, en vous assurant queSKILL.mdse trouve à la racine du dossier. - Python 3.10+,
pip install -r requirements.txt,ffmpeg/ffprobeinstallés sur le système (aveclibasset encodeur H.264), police chinoise disponible pour un rendu optimal. - Copier
.env.examplevers.env, définir les clés via un canal local sécurisé ; ne pas demander à l’utilisateur de coller ses clés, photos ou enregistrements vocaux dans le chat. Ne jamais inclure.envdans Git. - D’abord exécuter :
python scripts/dhv.py doctor, puispython scripts/dhv.py run --topic '...' --out ./outputs/example --dry-run.
Processus opérationnel (dans l’ordre)
- Confirmer les autorisations et les ressources. N’accepter que des visages et voix réels appartenant à l’utilisateur ou disposant d’une autorisation complète. Interdire la réplication, l’usurpation ou l’induction en erreur sans consentement. Vérifier séparément les droits pour les photos/vidéos et les enregistrements audio ; la vidéo synthétisée par IA doit comporter un marquage explicite. La musique et les incrustations doivent être sous licence.
- Création unique de profil. Échantillon vocal propre de 30 à 60 secondes idéal (MiniMax accepte de 10 s à 5 min, ≤20 Mo, mp3/m4a/wav). Télécharger la vidéo/photo sur HeyGen v3 pour créer l’Avatar ; photo de face de préférence en haute définition. L’entraînement vidéo peut nécessiter un consentement/vérification séparé – obligatoire, et asynchrone. Utiliser
avatarspour lister les Look ID déjà entraînés. FournirMINIMAX_VOICE_IDetHEYGEN_AVATAR_IDau pipeline suivant. - Rédiger le script parlé. Si l’utilisateur n’a pas fourni de texte, le LLM écrit automatiquement : accroche de 3 secondes → 2~3 arguments → conclusion, en précisant le public, la plateforme et la durée prévue. Ne pas inventer de données invérifiables. La mise en scène/les idées de montage peuvent être traitées par Claude Opus 5.5 ou par Codex ; le modèle gère le script et l’ordonnancement, le traitement média réel est assuré par FFmpeg.
- Aperçu.
run --mode preview: privilégier la réutilisation destate.jsonetscript.txt; synthétiser l’audio pour les ~55 premiers caractères (≈15 secondes), animer le digital human, produirepreview_final.mp4. La durée de l’aperçu n’est pas garantie strictement de 15 secondes selon le débit. - Plan de montage. Si l’agent actuel est Claude Opus 5.5 ou peut déléguer à Opus, lui confier
script.txt, le sujet, la marque et la liste des ressources pour généreredit-plan.json, strictement conforme aux clés deexamples/edit-plan.json:headline,brand,key_points[{text,start,end}],pip_start/end,subtitle_font_size,music_volume(0~0.3). Les timings doivent être dans la durée totale de la vidéo.--edit-planfait exécuter par FFmpeg les animations de cartes texte, la timeline d’incrustation, le style des sous-titres et le volume de la musique ; sans Opus, Codex/l’agent courant génère ce même JSON. Le modèle ne fait que décider, il ne prétend pas rendre la vidéo lui-même. - Révision et exécution. L’utilisateur vérifie la synchronisation labiale, la netteté, les droits, les sous-titres, le réalisme. Une fois approuvé :
run --mode full --approve; si autorisation donnée et option « pas de révision humaine » choisie explicitement :run --mode full --auto-approvepour produire les deux étapes automatiquement. Ne pas publier directement sur les réseaux sociaux sans autorisation. - Validation et livraison. Vérifier la durée de
full_final.mp4, la synchro audio-vidéo, les sous-titres, le chevauchement du titre, le volume de la musique, le marquage IA, et livrerpublish.md. Avant publication, demander une vérification des faits et des règles AIGC de la plateforme.
Utilisation en ligne de commande (à la racine du skill)
# Initialisation : portrait et audio personnels, n’utiliser le flag consent que si droits légalement acquis
python scripts/dhv.py avatar --file ./myself.mp4 --kind digital_twin --name 'My Presenter' --i-own-the-likeness
python scripts/dhv.py avatars # l’entraînement peut nécessiter une attente + validation officielle
python scripts/dhv.py clone --file ./myvoice.wav --voice-id MyBrandVoice2026 --i-own-the-voice
# Aperçu : par défaut, le script est généré par le modèle de texte MiniMax ; on peut aussi passer --script-file pour bypasser le LLM
python scripts/dhv.py run --topic 'Comment l’IA aide les entreprises à réduire les tâches répétitives' --out ./outputs/ai-workflow --mode preview --edit-plan ./examples/edit-plan.json
# Lancer la version complète après validation utilisateur
python scripts/dhv.py run --topic 'Comment l’IA aide les entreprises à réduire les tâches répétitives' --out ./outputs/ai-workflow --mode full --approve
# Approbation explicite pour mode sans surveillance : aperçu + version finale en une commande (les appels API vidéo sont facturés séparément pour chaque segment)
python scripts/dhv.py run --topic 'Le digital human en une minute' --out ./outputs/demo --mode full --auto-approve
# Ressources optionnelles
python scripts/dhv.py run --script-file ./script.txt --out ./outputs/manual --mode preview --music ./licensed-bgm.mp3 --broll ./owned-broll.mp4
Règles de conduite pour l’agent
- Ne pas décrire
--dry-runou des tests unitaires comme « HeyGen/MiniMax réellement fonctionnels ». Sans clé payante valide ni ressources autorisées, seule la validation du rendu hors-ligne/format de requête est possible. - En cas de timeout d’appel API asynchrone, afficher le
video_iddepuisstate.jsonet le réutiliser ; ne pas reconstruire directement pour éviter une double facturation. - Le clonage vocal nécessite une vérification d’identité MiniMax ; si
voice_idn’a pas été utilisé pour du TTS réel pendant 7 jours, il peut expirer ; privilégier la réutilisation des voix existantes, ne pas re-cloner silencieusement. - Les fichiers de sous-titres de la plateforme peuvent ne pas être précis mot à mot ; si aucun SRT utilisable n’est retourné, l’outil génère des sous-titres estimés et les marque
approximatedansstate.json. Vérifier avant livraison ; pour une précision mot à mot, envisager un alignement ASR supplémentaire. - En cas de limites de taille vidéo, de politique d’entraînement, d’authentification ou de quota, signaler l’erreur spécifique, ne pas prétendre que tout est automatisé.
- Ne pas se connecter ni publier automatiquement sur Douyin, Kuaishou, WeChat Channels, Xiaohongshu, Bilibili, etc., car aucune API d’autorisation n’est intégrée ; seulement produire
publish.mden attente de révision. - Éviter de commettre les clés API, les fichiers originaux, les voix similaires et les ressources générées brutes dans un dépôt public.
Références
- Détails des API et configuration régionale dans
references/api.md. - Livraison et dépannage dans
README.md.