Estilo anúncio
La règle unique : la partie supérieure (ou la bande de la poitrine) MONTRE le mécanisme de ce qu'elle dit ; ne retapez jamais la phrase — les sous-titres le font déjà. Chaque idée prononcée devient un schéma qui change sur le mot.
Avant de commencer, lisez ../perfil-criadora.md et chargez (ou créez) le perfil.json à la racine. Demandez aussi,
dans un seul message, ce qui manque : le nom du produit/offre, l'appel à l'action final (CTA : "commente X" ou "clique sur le lien") et
les images réelles qu'elle veut montrer (couverture du produit, captures de résultats avec les chiffres, cadres de vidéos d'elle).
Enregistrez les images dans assets/img/ du projet. N'inventez jamais de logo, couverture, chiffre, prix ou résultat.
src/index.template.html (copié de template/index.template.html) est un catalogue de 15 schémas prêts, avec
des temps d'exemple. Conservez le CSS et les helpers ; réécrivez le titre et choisissez/retimez les schémas pour son discours ;
supprimez les blocs que vous n'utilisez pas. L'ancien modèle, uniquement textuel, est dans src/classico.template.html (utilisez-le seulement si
elle demande ce visuel : copiez-le par-dessus index.template.html).
Structure : titre puis schémas (obligatoire)
- 0 → ~5 s : uniquement le titre. Un grand titre (ligne blanche + ligne dans la couleur d'accentuation, ~90–125 px, soulignement optionnel balayant le mot-clé). Pas de schéma, pas d'écran d'appli, pas d'image.
- Après le titre : un schéma par idée prononcée, changeant sur le mot. Texte dans le schéma uniquement en étiquettes courtes (1–3 mots : "avant", "avec IA", "votre entreprise").
- Quand le produit vend un processus, montrez la complexité de l'ancienne méthode à côté de la simplicité de la nouvelle (timeline chargée + horloge + ✕ × une commande + ✓).
Schémas du catalogue (réutilisez et retimez) :
| Idée prononcée | Schéma | Bloc |
|---|---|---|
| "j'ai fait X → je suis passé par Y → c'est devenu Z" | carte de téléphone (cadre réel) → flèche en pointillés + point qui avance → nœud rond → flèche → carte résultat | B2 |
| enlève les erreurs / pauses | onde audio : les parties-problèmes deviennent bleu/rouge avec étiquette et disparaissent ; horloge diminue | B3 |
| arrive tout seul | téléphone où les éléments apparaissent seuls + compteur "0 clics" | B4 |
| ancienne méthode × nouvelle méthode | deux panneaux : timeline chargée + horloge + ✕ × une commande + ✓ | B5 |
| objections ("pas le temps", "je ne sais pas") | Non ✕ / Oui ✓ : cartes de problème mènent à ✕ → flèche → carte solution avec ✓ | B6 |
| doute → preuve | bulle avec le doute → carte de test avec ✓ | B7 |
| "il faut bien expliquer" | demande générique → résultat gris ✕ × instruction détaillée en cours de frappe ✓ | B8 |
| liste de ce qu'elle livre | cases en pointillés qui se remplissent avec des images réelles ou des icônes, une par élément dit | B9 |
| cours / produit | couverture réelle + puces qui volent vers l'intérieur + graphique qui monte | B10 |
| preuve sociale | captures réelles avec compteur de vues qui monte (découpez le compteur de la capture elle-même) | B11 |
| copier un style | référence → nœud → son cadre recevant le même style + "= même style" | B12 |
| offre / lancement | étiquette + tampon → post avec barre d'envoi → "✓ publié" | B13 |
| trois étapes ("enregistre, édite, poste") | trois nœuds s'allument à chaque mot | B14 |
| CTA de commentaire | boîte de commentaire tapant le mot ("JE VEUX") + carte de direct | B15 |
| CTA de lien | barre blanche "En savoir plus ›" qui pulse | B16 |
Avant de rendre, lisez chaque bloc et demandez : "la zone MONTRE l'idée, ou répète-t-elle seulement les sous-titres ?"
Chiffres : les compteurs de B3, B5 et B11 viennent avec des marqueurs (__B3_SEG_AVANT__, __B5_SEG_NOUVEAU__, __VIEWS_CAPTURE_1__…).
Le montar.mjs s'arrête avec une erreur tant qu'il en reste un. Remplacez par le chiffre RÉEL (dit par elle ou lu de la capture) ou supprimez le compteur.
Images : bruto.jpg sort seul de la vidéo (novo-anuncio.mjs). Tout le reste (couverture, captures, cadres d'autres
vidéos, référence) seulement si l'élève les envoie. Image manquante → supprimez ou redessinez le schéma (icône dessinée en SVG,
carte de texte) ; ne laissez jamais d'espace d'exemple. Nom/@ et avatar viennent du perfil.json (montar.mjs remplace
__UTILISATEUR__, __NOM__ et place l'avatar ; sans photo, un cercle avec l'initiale).
Zones de sécurité (annonce Meta dans Reels — obligatoire)
Laissez libres 14 % en haut, 35 % en bas et 6 % de chaque côté. En 1080×1920, la boîte de sécurité est
x 65–1015, y 270–1248 : tout mot, chiffre, sceau, CTA, sous-titre et étiquette de schéma reste à l'intérieur (y compris
au pic d'échelle/rotation des animations). Seule la décoration (bande sombre, ombre de panneau) peut dépasser. Vérifiez avec
$K --em video-projects/<slug> node ../../$E/scripts/zonas-seguras.mjs renders/<fichier>.mp4 assets/seguras.jpg t1 t2 … (boîte rouge sur chaque image).
Zone des schémas (reel.json à la racine du projet)
Les blocs sont dessinés dans une zone de 1080×340 et le montar.mjs positionne et met à l'échelle cette zone :
| Cadrage | reel.json |
|---|---|
| tête plus basse, il reste de l'espace en haut (sommet de la tête en dessous de y ≈ 450) | {"faixa":"haut","zonaHaut":280,"zonaHauteur":<sommet de la tête − 290>,"capHaut":<menton + 20, max. 1165>} |
| tête haute dans le cadre (selfie serré, voiture) | {"faixa":"poitrine","zonaHaut":<menton + 20>,"zonaHauteur":<≈ 1150 − zonaHaut>,"capHaut":<zonaHaut + zonaHauteur + 10, max. 1165>} |
En mode poitrine, une bande sombre couvre du menton jusqu'à la fin de la zone de sécurité, et les schémas + sous-titres se trouvent dessus.
Le sous-titre (hauteur 80 px) doit se terminer au plus tard à y 1248.
Visuel
| Élément | Règle |
|---|---|
| Bande sombre | haut : dégradé rgba(0,0,0,.66) → transparent descendant du haut. poitrine : bande sombre du menton jusqu'à ~y 1300. |
| Kit de schémas | panneaux rgba(16,16,19,.92) rayon 22 avec bordure claire de 1 px ; cartes de téléphone 160×284 (9:16) avec cadres réels ; nœud rond de l'IA dans la couleur couleur_ia ; flèches en pointillés avec point dans la couleur d'accentuation qui avance ; tampons ronds ✕ rouge #ff453a et ✓ vert #30d158 qui explosent sur le mot ; textes d'interface en Inter. Décoration répétée (barres de l'onde, clips de timeline) utilise le rnd() avec la graine du modèle — jamais Math.random ni from:"random" de GSAP. |
| Typographie | police de titre (Archivo Black ou fonte_titulo du profil) dans le titre, les étiquettes et les sous-titres. Blanc ; accentuation dans la couleur couleur_accentuation (par défaut jaune #FFD21F). |
| Mouvement | entrées courtes : monte + apparaît en 0,45–0,6 s (power3.out / expo.out) ; tampons avec back.out ; compteurs qui courent ; barres qui se remplissent ; flèches qui grandissent. Sorties en 0,28 s. Les schémas changent sur le mot prononcé. |
| Sous-titre | un mot à la fois, 46 px, blanc avec ombre douce (jamais de contour), juste en dessous du menton (capHaut dans reel.json). |
| CTA | boîte de commentaire tapant le mot + carte de direct, ou barre blanche "En savoir plus ›". |
Couleurs, tailles et interdictions : template/DESIGN.md (copié dans chaque projet).
Règles de coupe
- Supprimez toute pause (−30 dB / 0,15 s) et toute répétition ; ≤ 90 s si possible. Phrase dite deux fois : gardez la DERNIÈRE (la corrigée). La répétition d'insistance ("vaut, vaut") n'est pas une erreur.
- L'annonce coupe sans J/L (
cortar.mjs --no-jl) : l'image suit exactement la parole. - Après la coupe, retranscrivez le
clean.mp4et lisez en cherchant une phrase doublée et un mot coupé. La transcription entière CACHE les répétitions : balayez aussi toute la vidéo en fenêtres courtes, en un seul appel,$K --em video-projects/<slug> node ../../$M/transcrever.mjs assets/clean.mp4 --janelas 1,3,5,7,…(toutes les 2 s jusqu'à la fin), et comparez.
Règles de vitesse (le PC de l'élève peut être lent — elles prévalent sur les étapes ci-dessous)
- La transcription du
novo-anuncio.mjsest déjà--rapide(juste pour choisir la coupe). La re-transcription duclean.mp4(celle des sous-titres) utilise le modèle précis — une fois par version de la coupe. - Vérifiez les raccords et répétitions en UN seul appel avec
--janelas. Jamais une fenêtre à la fois. - Ne rendez pas un brouillon entier juste pour regarder des images. Utilisez
$K --em video-projects/<slug> hyperframes snapshot --at t1,t2,… -o snapshots(un temps par schéma) et regardez les PNG. Rendez UNE fois, quand les snapshots sont corrects. - L'encodeur du raw.mp4 / clean.mp4 est choisi automatiquement. Ne le changez pas.
- Avant chaque étape lente, prévenez par une ligne courte en français de ce qui est en cours ("Rendu de l'annonce — cela peut prendre quelques minutes."), pour que l'attente ne ressemble jamais à un blocage.
Flux (toutes les commandes par le lanceur $K)
E=.claude/skills/estilo-anuncio · M=.claude/skills/_motor · K = le lanceur de la skill videos-opus : "<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit, où <VO> est le dossier de la skill videos-opus (celui qui contient le SKILL.md qui vous a envoyé lire ce guide). Il met les programmes portables dans le chemin et s'exécute dans le dossier de travail du kit ($K dossier montre lequel ; les projets se trouvent dans <dossier>\video-projects\<slug>). $K --em <sous-dossier> … s'exécute à l'intérieur. Rien de npx, Python ou node seul : tout passe par le $K.
- Projet + transcription rapide :
$K node $E/scripts/novo-anuncio.mjs "<video>" <slug>→video-projects/<slug>/avec raw.mp4, raw.json,assets/palavras.txt, les deux modèles,assets/img/bruto.jpgetreel.json. - Cadrage : feuille de contact avec grille
(
$K --em video-projects/<slug> ffmpeg -i assets/raw.mp4 -vf "fps=1/5,drawbox=x=65:y=270:w=950:h=979:color=red:t=6,drawgrid=w=1080:h=100:[email protected]:t=2,scale=270:-1,tile=7x2" -frames:v 1 assets/contato.png) et REGARDEZ : lignes jaunes tous les 100 px, boîte rouge = zone de sécurité. Trouvez le sommet de la tête et le menton et écrivezreel.json(tableau "Zone des schémas"). - Coupe : lisez
assets/palavras.txt, écrivezassets/keeps.json; dansassets/:$K --em video-projects/<slug>/assets node ../../../$M/cortar.mjs --no-jl. - Vérification : à la racine du projet :
$K --em video-projects/<slug> node ../../$M/transcrever.mjs assets/clean.mp4 assets/transcript.json --nomes "<termes du profil>"; lisez ; faites le balayage--janelas; ajustez la coupe jusqu'à ce qu'elle soit propre ; mot mal entendu →assets/caption-fixes.json. - Composition : réécrivez
src/index.template.html: titre en 0–5 s, puis un schéma par idée prononcée ; temps de$K --em video-projects/<slug> node ../../$M/ancoras.mjs "phrase" …(racine du projet) ; images réelles dansassets/img/. - Montage + vérification :
$K --em video-projects/<slug> node ../../$E/scripts/montar.mjs(s'arrête avec erreur s'il reste un marqueur ou une image manquante) →$K --em video-projects/<slug> hyperframes lint(0 erreurs) →$K --em video-projects/<slug> hyperframes snapshot --at …sur CHAQUE schéma et REGARDEZ (visage jamais couvert, étiquettes lisibles, chiffres corrects, rien d'exemple qui reste) →zonas-seguras.mjssur les snapshots/temps → rendu et livraison (par le lanceur, dans le dossier de travail du kit) :$K node $M/renderizar.mjs <slug>— vérifie les verrous, rend en arrière-plan, valide et copie déjà dansprontos/. Sortie 3 = encore en rendu : exécutez$K node $M/renderizar.mjs <slug> --esperarjusqu'à ce qu'il sorte PRÊT. N'exécutez jamais$K --em video-projects/<slug> hyperframes renderdirectement niprontos.mjsà la main. Ensuitezonas-seguras.mjs renders/<slug>-final.mp4 …aux temps des schémas. - Livraison : répondez en français, brièvement : où il se trouve, ce qui a été coupé, images utilisées, ce qui est resté en doute, et que la vidéo respecte la zone de sécurité Meta. Ne publiez jamais et ne téléchargez jamais d'annonce.
Variations d'annonce (quand l'élève demande "plus d'une version")
Même coupe, autre titre et/ou autre CTA : copiez le projet (video-projects/<slug>-v2), changez seulement le bloc B1 et le
CTA, montez, snapshot du titre et rendez. Ne refaites ni la coupe ni la transcription.
Ajustements après livraison
"enlève la partie du prix" → keeps.json, étapes 3–4, recalculez les temps des schémas après l'extrait avec ancoras.mjs et étape 6. "change le titre" → B1 et étape 6. "sous-titre plus haut" → capHaut dans reel.json et étape 6. Ne refaites jamais depuis le début ce qu'elle n'a pas demandé de changer.