Production Vidéo IA
Un système de production qui a livré plus de 40 reels et épisodes longs. Il est subjectif : chaque règle ci-dessous provient d'un échec réel ou d'une décision explicite du propriétaire. Les choix spécifiques au projet (marque, logos, voix, budgets) ne sont pas ici — chaque nouveau projet définit les siens (voir "Configuration par projet").
Principes fondamentaux
- Validation avant dépense. Le script + le storyboard sont d'abord soumis au propriétaire ; aucune génération payante (TTS, images, vidéo, lip-sync) n'est lancée tant que les deux ne sont pas approuvés. La recherche de séquences et les listes de sources sont autorisées avant approbation. Tout changement de contenu substantiel après approbation est présenté à nouveau. Chaque publication publique nécessite sa propre approbation.
- Le propriétaire décide des dates. Ne jamais proposer de dates de production ou de publication/calendrier à moins que le propriétaire n'ait défini une cadence régulière. Tenez un fichier de calendrier de contenu et mettez-le à jour immédiatement après chaque production et chaque publication (statut, date réelle, ID de publication) — la tâche n'est terminée que lorsque c'est fait.
- Motion design d'abord, IA ensuite. Avant de commander un clip IA, demandez : "cela peut-il être construit en code ?" Si quelque chose peut être montré (carte, jauge, chronologie, liste de contrôle, nombre, comparaison, carte de règle, allégorie), construisez-le dans Remotion/SVG à coût zéro. L'IA uniquement pour ce qui doit être vu (visages, scènes historiques, peintures, atmosphère). Chaque vidéo — y compris les reels de 30 secondes — utilise du motion design construit en code. Étiquetez le calque de chaque plan du storyboard (code / IA / lip-sync) et indiquez la part du motion design.
- Chaque vidéo IA commence à partir d'une image de référence approuvée (image-vers-vidéo, référence-vers-vidéo ou première-dernière image). Pas de texte-vers-vidéo.
- L'audio provient toujours d'un outil audio dédié (ElevenLabs) : narration, crochets, musique, SFX. Désactivez l'audio propre des modèles vidéo (cela double aussi souvent le prix).
- Les plafonds budgétaires sont appliqués par l'outillage, pas par la mémoire. Utilisez
scripts/fal_jobs.pyavec un plafond ; il refuse de soumettre si l'estimation dépasse le plafond ou si une image coûte ≥ 1 $. - Je ne peux pas entendre l'audio ni juger les visages de manière fiable. Mesurez plutôt : F0 pour le genre de la voix, LUFS pour le volume, STT pour le libellé, arrêts sur image/planches contact pour les visuels. Demandez au propriétaire d'écouter les noms et les mots ambigus.
- Consignez les décisions. Gardez un fichier
DECISIONS.md(règles du propriétaire + leçons, daté) et unPRODUCTION_WORKFLOW.md(règles actuelles). Les connaissances/recherches vont dans un fichier séparé avec des niveaux de confiance ; cela ne devient une règle que lorsque le propriétaire l'approuve.
Ordre de production
- Examiner le texte source et l'objectif → 2. rédiger le script + storyboard (marquer les shorts et leurs hooks maintenant ; limiter la réutilisation des séquences à ~25 %) → 3. extraire la liste exacte des éléments → 4. vérifier les éléments existants, télécharger uniquement les lacunes à partir de sources sous licence → 5. vérifier les téléchargements (sujet, durée, résolution) → 6. finaliser le script/storyboard par rapport aux fichiers réels → 7. montrer au propriétaire, s'arrêter jusqu'à approbation → 8. générer (TTS → images de référence → I2V → lip-sync) → 9. assembler dans Remotion + contrôle technique → 10. examiner le montage pour approbation de publication → 11. télécharger après approbation → 12. mettre à jour le calendrier + journal d'analyse.
Pipeline scripté (détails dans references/pipeline.md) : turns.py → tts.py → stt_check.py → build_audio.py (→ timing.ts + sous-titres) → Remotion → scripts/master.sh (double passe −14 LUFS + QC).
Répartition des outils par défaut (à remplacer par projet)
| Tâche | Outil | Remarques |
|---|---|---|
| Images | D'abord des agents gratuits (Codex image_gen / Antigravity via un MCP inter-agents) si disponibles ; sinon fal (nano-banana-2 nouveau, nano-banana-pro/edit pour la cohérence de style et i2i ; Flux 2 Pro comme solution de repli quand Nano Banana refuse) | cible ≤ 0,30 $/image, jamais ≥ 1 $ |
| Vidéo (I2V) | fal : Veo 3.1 (incl. lite/fast, première-dernière image pour les transitions), Gemini Omni Flash 1.1, Wan 3.0, Kling 2.6 Pro | toujours définir la résolution explicitement — le prix en dépend |
| Lip-sync | Hedra hedra-character-3 uniquement | souvent moins cher par seconde que I2V → raconter l'histoire à travers un personnage quand c'est possible |
| Voix, musique, SFX | ElevenLabs, dernier modèle TTS phare (list_models ; ne jamais copier un ancien model_id) | voix de bibliothèque uniquement, jamais de voix conçues |
| Nettoyage de voix enregistrée | fal veed/clean-audio → fal-ai/lava-sr (débruitage désactivé) → léger polish | amélioration, pas génération |
| Montage / rendu | Remotion (+ @remotion/three pour au plus une scène héroïque 3D) | |
| Master / QC | ffmpeg | scripts/master.sh, scripts/qc.sh |
Détails des modèles/prix et pièges : references/ai-generation.md.
Règles durement acquises (celles qui ont coûté de l'argent)
- Ne concevez jamais une nouvelle voix TTS (
text_to_voice). Les voix conçues prononcent mal les langues non anglaises et la STT ne peut pas détecter les erreurs vocaliques. Choisissez dans la bibliothèque existante ; si rien ne convient, demandez. - Faites correspondre le personnage à la voix avant de générer un visage lip-sync. Mesurez la F0 médiane (~85–155 Hz homme, ~165–255 Hz femme) et lisez le transcript. Un avatar masculin sur une voix féminine a gaspillé tout un rendu.
- Ne présumez jamais du genre ou de l'identité d'une personne à l'écran dans les séquences du propriétaire — il s'agit généralement du propriétaire.
- Le TTS en écriture persane/arabe a besoin de diacritiques (en particulier l'ezafe kasra et les mots ambigus courts) dans le texte TTS uniquement ; les sous-titres restent en clair. Une diacritique mal placée est pire que pas de diacritique. Voir
references/audio.md. - La musique doit être clairement audible : ~10–13 dB sous la parole avec ducking, plus forte dans les pauses/cover/end card. Des nappes fixes à un gain de 0,06 étaient inaudibles.
fal_pricingne renvoie que le niveau le plus bas (par exemple 360p). Budgétisez à partir du tableau par résolution.- Les visages photoréalistes de personnes réelles ne sont pas reconstruits. Utilisez des silhouettes/vues de dos/mains, étiquetées "reconstruction symbolique". Des caricatures évidentes de personnalités publiques ne peuvent prononcer que des citations documentées, datées et sourcées, étiquetées comme telles.
- Ne mettez jamais de texte lisible dans une invite de modèle d'image/vidéo — cela produit du charabia ; ajoutez le texte dans Remotion. Ne mettez pas de noms de personnages dans les invites (le modèle les écrit sur l'image) ; dites "simple, sans symboles" pour les drapeaux/accessoires.
- Surveillez la fin de chaque clip IA — le contenu se dégrade souvent dans les dernières secondes ; raccourcissez
clipLen.
Règles pour le contenu court (résumé — version complète dans references/short-form.md)
- Le hook agit sur 3 niveaux simultanément dans les 0–3 s : image frame 0, première ligne parlée (commence à 0,05 s, pas de préambule, promesse principale avant la 4e seconde), texte à l'écran lisible sans son. ≤ 8 mots. Rédigez 2–3 hooks de types différents par reel.
- Frame 0 = la couverture (le fondu d'entrée est réduit à une image).
- Plafond dur du reel : 160 s, zone idéale ~80–90 s ; Instagram ne recommande que ≤ 3 min aux non-abonnés.
- Fin : voix = suivez avec une raison (de préférence : un teaser nommé de la prochaine partie) ; à l'écran = question de contenu ; légende = question de commentaire + suivi. Invitation à partager ("envoyez-le à quelqu'un qui…") uniquement sur les posts pratiques.
- Ne posez jamais de questions qui révèlent le groupe, l'identité, la localisation ou les activités du spectateur lorsque le public peut être en danger.
- ≤ 5 hashtags ; mot-clé principal explicitement dans les lignes 1–2 de la légende (les légendes sont indexées dans la recherche).
- Alternez les familles visuelles, les types de hooks, les narrateurs et les modèles de couverture — des reels consécutifs qui se ressemblent sont ignorés comme "la publication précédente".
Règles d'analyse (résumé — version complète dans references/analytics.md)
- Comparez les publications uniquement à âge égal (24 h / 48 h / 7 j) et dans le même statut de collaboration ; les publications de moins de 24 h sont "provisoires".
- Les valeurs aberrantes (pilotées par un partage externe par un grand compte, un fait d'actualité, etc.) sont exclues des références jusqu'à ce que leur modèle soit reproduit en modifiant des paramètres que vous contrôlez. Demandez au propriétaire les partages externes avant d'attribuer le mérite au contenu — l'API ne peut pas les voir.
- Ne revendiquez pas de shadowban/restriction sans preuve provenant de l'état du compte de l'application.
- Le timing d'acceptation des collaborations est imprévisible ; n'attribuez pas les pics de portée aux collaborations sans preuve.
- Jugez le succès par l'engagement (partages, sauvegardes, commentaires par portée, suivis par 1k de portée), pas seulement par la portée.
- Deux vitesses : enregistrez les données à chaque fois ; proposez des changements de règles uniquement lors d'une revue hebdomadaire et uniquement si ≥ 3 publications du même âge montrent le modèle.
Configuration par projet (demander ou lire au début d'un nouveau projet)
Palette de marque, polices et ensemble de logos · voix du narrateur + voix secondaires tournantes · formulation de la divulgation IA · plafonds budgétaires par reel/vidéo · modèles autorisés/interdits · où se trouvent les clés API (noms de service Keychain / variables d'environnement) · comptes de publication et carte des collaborateurs · emplacements du calendrier de contenu et du fichier d'analyse · contraintes de sécurité du public · si le propriétaire peut apparaître à l'écran.
Fichiers de référence
| Fichier | Lire quand |
|---|---|
references/pipeline.md | construire le pipeline TTS → timing → Remotion scripté ; organisation des dossiers ; livrables |
references/remotion.md | écrire ou déboguer des compositions Remotion, polices, texte RTL, 3D, contrôle qualité du rendu |
references/audio.md | paramètres TTS, diacritiques, chaîne vocale, ducking musical, volume, SFX |
references/ai-generation.md | choisir/tarifer les modèles fal, règles I2V, Hedra Character-3, montage vidéo Omni, matting, LUTs, agents d'image gratuits |
references/short-form.md | catalogue de hooks, CTA, shorts en boucle, signaux de classement Instagram, écart de curiosité, principes d'explication, cadrage |
references/analytics.md | effectuer une analyse Instagram/YouTube, schémas CSV, règles de comparaison |
scripts/fal_jobs.py | exécuteur de travaux d'image/vidéo fal avec plafond budgétaire (estimer / soumettre / interroger / télécharger) |
scripts/stt_check.py | vérifier les tours TTS par rapport au script avec ElevenLabs STT |
scripts/master.sh | master à double passe de volume + QC de volume/noir/gel |
scripts/qc.sh | grille d'images + planche contact + vérifications techniques avant livraison |