Installer la compétence CLI belt :
npx skills add belt-sh/cli
Production de vidéos avec présentateur virtuel
Créez des vidéos avec présentateur virtuel utilisant des avatars IA et le lipsync via l'interface en ligne de commande inference.sh.
Démarrage rapide
Nécessite l'interface en ligne de commande
beltde inference.sh. Instructions d'installation
belt login
# Recommandé : P-Video-Avatar (TTS intégré, le plus rapide, le moins cher)
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenue dans notre visite guidée du produit. Aujourd'hui, je vais vous montrer trois fonctionnalités qui vous feront gagner des heures chaque semaine.",
"voice": "Zephyr (Femme)"
}'
Exigences sur le portrait
L'image source du portrait est cruciale. Un mauvais portrait donne une vidéo de mauvaise qualité.
Obligations
| Exigence | Pourquoi | Spécification |
|---|---|---|
| Cadré au centre | L'avatar a besoin d'un visage dans une position prévisible | Visage centré dans le cadre |
| Tête et épaules | Le corps visible pour des gestes naturels | Recadrer en dessous de la poitrine |
| Yeux vers la caméra | Crée une connexion avec le spectateur | Regard frontal direct |
| Expression neutre | Point de départ pour l'animation | Un léger sourire acceptable, pas de rire ou de froncement |
| Visage dégagé | Le modèle doit détecter les traits | Pas de lunettes de soleil, ombres fortes ou obstructions |
| Haute résolution | Préservation des détails | Zone du visage min. 512x512, idéalement 1024x1024+ |
Générer un portrait
# Générer un portrait professionnel avec P-Image
belt app run pruna/p-image --input '{
"prompt": "portrait professionnel d'une personne d'affaires sympathique, éclairage studio doux, fond gris propre, tête et épaules, contact visuel direct, expression neutre agréable, photoréaliste",
"aspect_ratio": "9:16"
}'
Options d'arrière-plan
| Type | Quand l'utiliser |
|---|---|
| Couleur unie | Professionnel, propre, facile à composer |
| Flou artistique (bokeh) | Naturel, style de vie |
| Bureau/studio | Contexte professionnel |
| Dynamique (P-Video-Avatar) | Utiliser video_prompt pour définir l'arrière-plan |
Sélection du modèle
Commencez par P-Video-Avatar — il est 18 fois plus rapide et 6 fois moins cher que les alternatives, avec un TTS intégré.
| Modèle | ID d'application | TTS intégré | Meilleur pour |
|---|---|---|---|
| P-Video-Avatar | pruna/p-video-avatar | Oui (30 voix, 10 langues) | Meilleur global : rapidité, coût, qualité |
| OmniHuman 1.5 | bytedance/omnihuman-1-5 | Non | Multi-personnages, gestes |
| OmniHuman 1.0 | bytedance/omnihuman-1-0 | Non | Personnage unique |
| Fabric 1.0 | falai/fabric-1-0 | Oui | L'image parle avec lipsync |
| PixVerse Lipsync | falai/pixverse-lipsync | Non | Lipsync réaliste |
Comparaison coût et vitesse
| Modèle | Vitesse (par seconde de vidéo) | Coût par seconde |
|---|---|---|
| P-Video-Avatar | ~1,83 s/s | 0,025 $ |
| OmniHuman 1.5 | ~28 s/s (15x plus lent) | 0,16 $ (6,4x plus cher) |
| Fabric 1.0 | ~34 s/s (18x plus lent) | 0,14 $ (5,6x plus cher) |
Workflows de production
Simple : Script texte -> Vidéo (P-Video-Avatar)
Aucune étape de TTS séparée nécessaire — P-Video-Avatar dispose de voix intégrées :
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bonjour ! Je suis ravi de partager quelque chose avec vous aujourd'hui.",
"voice": "Puck (Homme)",
"voice_language": "Français",
"resolution": "720p"
}'
Avec contrôle du style
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "C'est une nouvelle passionnante pour notre communauté !",
"voice": "Aoede (Femme)",
"voice_prompt": "Ton enthousiaste et énergique, rythme légèrement plus rapide",
"video_prompt": "La personne présente sur une scène avec un éclairage dramatique",
"resolution": "1080p"
}'
Piloté par l'audio (tout modèle)
Fournissez votre propre fichier audio :
# P-Video-Avatar avec audio personnalisé
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"audio": "https://speech.mp3"
}'
# OmniHuman avec audio personnalisé
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "https://speech.mp3"
}'
Workflow complet : Générer un portrait + avatar
# 1. Générer une image portrait
belt app run pruna/p-image --input '{
"prompt": "portrait professionnel d'une jeune femme, fond neutre, regardant la caméra, éclairage studio, photoréaliste",
"aspect_ratio": "9:16"
}'
# 2. Créer une vidéo avatar avec TTS intégré
belt app run pruna/p-video-avatar --input '{
"image": "<url-image-depuis-étape-1>",
"voice_script": "Bonjour ! Laissez-moi vous présenter nos dernières fonctionnalités.",
"voice": "Zephyr (Femme)"
}'
Avec TTS séparé (pour les modèles sans TTS)
# 1. Générer la parole
belt app run falai/dia-tts --input '{
"prompt": "[S1] Votre script de narration ici."
}'
# 2. Créer le présentateur virtuel
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "<url-audio-depuis-étape-1>"
}'
Dialogue multi-personnages
OmniHuman 1.5 prend en charge jusqu'à 2 personnages :
# 1. Générer un dialogue avec deux intervenants
belt app run falai/dia-tts --input '{
"prompt": "[S1] Alors, parlez-moi de la nouvelle fonctionnalité. [S2] Bien sûr ! Nous avons créé un tableau de bord qui affiche des analyses en temps réel. [S1] Ça a l'air génial. Combien de temps cela a-t-il pris ? [S2] Environ deux semaines du concept au lancement."
}'
# 2. Créer une vidéo avec deux personnages
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait-deux-personnes.png",
"audio_url": "<url-audio>"
}'
Contenu long (clips assemblés)
Pour un contenu de plus de ~60 secondes, divisez en segments :
# Générer des clips avec le même portrait pour la cohérence
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment un..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment deux..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segment trois..."}' --no-wait
# Fusionner tous les segments
belt app run infsh/media-merger --input '{
"media": ["segment1.mp4", "segment2.mp4", "segment3.mp4"]
}'
Contenu multilingue
P-Video-Avatar prend en charge 10 langues avec TTS intégré :
# Espagnol
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenidos a nuestra demostración de producto.",
"voice": "Kore (Femme)",
"voice_language": "Spanish"
}'
# Japonais
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "こんにちは、製品デモへようこそ。",
"voice": "Leda (Femme)",
"voice_language": "Japanese"
}'
Doubler une vidéo existante
# 1. Transcrire la vidéo originale
belt app run infsh/fast-whisper-large-v3 --input '{"audio_url": "https://video.mp4"}'
# 2. Traduire le texte (manuellement ou avec un LLM)
# 3. Générer la parole dans la nouvelle langue
belt app run infsh/kokoro-tts --input '{"text": "<texte-traduit>"}'
# 4. Synchroniser les lèvres de la vidéo originale avec le nouvel audio
belt app run infsh/latentsync-1-6 --input '{
"video_url": "https://video-originale.mp4",
"audio_url": "<url-nouvel-audio>"
}'
Qualité audio (pour les workflows sans TTS)
Lorsque vous fournissez votre propre audio, la qualité impacte directement la précision du lipsync.
| Paramètre | Cible | Pourquoi |
|---|---|---|
| Bruit de fond | Aucun/minimal | Le bruit perturbe la synchronisation labiale |
| Volume | Cohérent tout au long | Empêche la dérive de synchronisation |
| Fréquence d'échantillonnage | 44,1 kHz ou 48 kHz | Qualité standard |
| Format | MP3 128 kbps+ ou WAV | Compatible avec tous les outils |
Voix disponibles (P-Video-Avatar)
Femme : Zephyr, Kore, Leda, Aoede, Callirrhoe, Autonoe, Despina, Erinome, Laomedeia, Achernar, Gacrux, Pulcherrima, Vindemiatrix, Sulafat
Homme : Puck, Charon, Fenrir, Orus, Enceladus, Iapetus, Umbriel, Algenib, Algieba, Schedar, Achird, Zubenelgenubi, Sadachbia, Sadaltager, Alnilam, Rasalgethi
Langues : Anglais (États-Unis), Anglais (Royaume-Uni), Espagnol, Français, Allemand, Italien, Portugais (Brésil), Japonais, Coréen, Hindi
Directives de cadrage
┌─────────────────────────────────┐
│ Espace au-dessus (minimal) │
│ ┌───────────────────────────┐ │
│ │ │ │
│ │ ● ─ ─ Yeux à 1/3 ─ ─│─ │ ← Yeux sur la ligne du tiers supérieur
│ │ /|\ │ │
│ │ | Tête et épaules │ │
│ │ / \ visibles │ │
│ │ │ │
│ └───────────────────────────┘ │
│ Recadrer sous la poitrine │
└─────────────────────────────────┘
Erreurs courantes
| Erreur | Problème | Correction |
|---|---|---|
| Portrait basse résolution | Visage flou, mauvais lipsync | Utiliser une zone de visage 1024x1024+ |
| Angle de profil/incliné | Le lipsync ne peut pas bien suivre la bouche | Utiliser une vue frontale ou quasi-frontale |
| Audio bruyant | Le lipsync dérive, aspect non naturel | Utiliser le TTS intégré ou enregistrer proprement |
| Clips trop longs | La qualité se dégrade | Diviser en segments, assembler |
| Lunettes de soleil/obstruction | Les traits du visage sont cachés | Visage dégagé requis |
| Éclairage incohérent | Effet étrange lors de l'animation | Éclairage uniforme et doux |
Compétences connexes
# Compétence dédiée P-Video-Avatar
npx skills add inference-sh/skills@p-video-avatar
# Tous les modèles d'avatar
npx skills add inference-sh/skills@ai-avatar-video
# Tous les modèles de génération vidéo
npx skills add inference-sh/skills@ai-video-generation
# Synthèse vocale
npx skills add inference-sh/skills@text-to-speech
# Génération d'images (pour les portraits)
npx skills add inference-sh/skills@ai-image-generation
Parcourir toutes les applications : belt app list