Skill de style : cordel
Cette skill produit des vidéos toujours avec la même apparence. Le STYLE est défini dans references/estilo.md (la bible).
Le CONTENU vient de la demande. Ne copiez jamais de personnages, logos ou textes de la vidéo qui a inspiré le style.
SKILL_DIR = le dossier de ce fichier. Les scripts se trouvent dans SKILL_DIR/scripts/ et s'exécutent avec python3.
Travaillez dans un dossier de projet vidéo (par défaut : le dossier actuel). Tout va dans saida/ et final/ de ce dossier.
Avant tout
- Lisez
references/estilo.md,references/regras-storyboard.md,references/regras-video.mdet, si elle existe,references/licoes.md(ce qui a déjà mal fonctionné avec ce style). - Vérifiez les outils :
ffmpeg -version,python3 -c "import PIL". Si quelque chose manque → dites quoi installer et arrêtez.
Étape 1 — les 5 données (demandez en texte libre ce qui manque, en suggérant la valeur par défaut)
| donnée | options | défaut |
|---|---|---|
| thème | une phrase | — (obligatoire) |
| format | 9:16 · 16:9 · 1:1 | 9:16 |
| durée | secondes ; devient multiple de 2,5 | 15 |
| résolution | ex : 1080x1920 | celle du format (9:16 → 1080x1920, 16:9 → 1920x1080, 1:1 → 1080x1080) |
| moteur | local (gratuit, testé) · kling · seedance (prompts uniquement, non testés) | local |
Étape 2 — plan des scènes
python3 SKILL_DIR/scripts/cenas.py --tema "<thème>" --duracao <s> --formato <f> --resolucao <LxH> --motor <m>
Affiche le nombre de scènes (2,5 s chacune) et de storyboards (jusqu'à 6 scènes chacun). S'il prévient que la durée a été normalisée, informez-en l'utilisateur.
Étape 3 — script (vous écrivez)
Écrivez roteiro.json en suivant references/regras-video.md (parole de maximum 6 mots par scène, un
mot-clé important par scène, la 1ʳᵉ scène commence par la douleur ou le désir du spectateur, en « vous ») :
{"personagem": "qui apparaît dans plusieurs scènes, décrit toujours de la même façon (vêtement, couleur, accessoire)",
"cenas": [{"texto_tela": "MOT", "fala": "phrase courte prononcée", "acao": "ce que l'on voit", "camera": "zoom_in"}]}
personagem est utilisé pour chaque demande de storyboard (sans lui, chaque storyboard invente une personne). Ensuite :
python3 SKILL_DIR/scripts/cenas.py ... --roteiro roteiro.json # même commande + le script
Étape 4 — storyboards dans le style
Préparez les demandes (une par storyboard) à partir du modèle + bible + plan + personnage :
python3 SKILL_DIR/scripts/pedido_storyboard.py # → saida/storyboards/pedido-storyboard-N.txt
Envoyez chaque demande, sans la réécrire, à votre outil d'image (Codex : image_gen ; Claude Code : l'outil d'image
dont vous disposez, ou demandez à l'utilisateur de générer et d'enregistrer). Sauvegardez dans saida/storyboards/storyboard-N.png.
Pour modifier la demande, modifiez le modèle (modelos/prompt-storyboard.md) ou la bible, pas le texte généré.
- Générez-les un par un. À partir du 2ᵉ, transmettez le storyboard précédent comme image de référence (continuité).
- Ouvrez l'image et vérifiez-la avec la liste de
regras-storyboard.md(grille correcte, mot exact lettre par lettre, style, continuité). Agrandissez les mots pour vérifier. Mauvais → refaites (jusqu'à 2 fois) et notez dansreferences/licoes.md.
Étape 5 — découper
python3 SKILL_DIR/scripts/recortar.py --plano saida/plano.json # --respiro 0.08 (défaut) protège le mot du zoom
Étape 6 — animer
python3 SKILL_DIR/scripts/animar.py # moteur local : zoom/déplacement lent + fondu enchaîné
python3 SKILL_DIR/scripts/animar.py --motor kling --so-prompts # NON TESTÉ : écrit seulement les commandes
python3 SKILL_DIR/scripts/animar.py --motor seedance --so-prompts # NON TESTÉ : écrit seulement les prompts
Avec kling/seedance, c'est l'utilisateur qui exécute, sur son propre compte ; ensuite les clips reviennent dans saida/clipes/.
Étape 7 — narration (une seule voix)
python3 SKILL_DIR/scripts/narrar.py --arquivo voix.wav # l'utilisateur a tout enregistré
python3 SKILL_DIR/scripts/narrar.py --falas-dir falas/ # l'utilisateur a enregistré une parole par scène
python3 SKILL_DIR/scripts/narrar.py --comando '<tts> {texte} {sortie}' # n'importe quel TTS local
python3 SKILL_DIR/scripts/narrar.py --inemavox --inemavox-dir <dossier> --ref <voix.wav>
python3 SKILL_DIR/scripts/narrar.py --edge # NON TESTÉ (service en ligne)
Avec TTS, narrar.py coupe la « queue » que la voix invente parfois après la phrase et regénère la parole trop
longue pour le nombre de mots (--tentativas 3). S'il prévient qu'une parole dépasse la scène, raccourcissez la parole dans le
script et relancez. Si possible, vérifiez la narration avec une transcription locale (les phrases correspondent-elles au script ?) ;
parole problématique → narrar.py ... --refazer N refait seulement la scène N.
Étape 8 — montage avec piste unique
python3 SKILL_DIR/scripts/montar.py [--trilha assets/trilha/x.mp3] [--volume 0.5]
Sans piste dans assets/trilha/ → demandez à l'utilisateur quelle musique utiliser (la sienne ou sous licence). Plusieurs → demandez-lui de choisir.
Étape 9 — vérifier (obligatoire)
python3 SKILL_DIR/scripts/validar.py --duracao <s> --resolucao <LxH>
python3 SKILL_DIR/scripts/folha.py # final/folha-final.jpg : une image de chaque scène
Ne dites « prêt » qu'après que validar.py a affiché PASSE et que vous avez REGARDÉ la final/folha-final.jpg
(texte lisible, aucune lettre échangée, style identique sur tous les panneaux). En cas d'échec, dites ce qui manque.
Étape 10 — améliorez la skill
Après chaque vidéo, écrivez dans references/licoes.md (une ligne par élément) ce qui a mal fonctionné et la règle qui
l'aurait évité. S'il s'agit d'une règle de style ou de storyboard, modifiez aussi estilo.md/regras-storyboard.md, pas uniquement le prompt.