Communitygithub.com

DrigoFelizardo/agroperforma-criativos-skill

Édition de contenus verticaux Instagram (AgroPerforma / Fábrica Blindada) avec HyperFrames à partir de rushes 4K — sélection du bon canal audio, coupe des pauses, bafouillages et reprises via l'audio, montage des sous-titres statiques + animations dans le style de la marque (bandes vertes/bleues, ellipse, check, flèche), application du LUT et du dégradé, zoom calme avec visage centré sans barre noire, fondu en fin et rendu 4K 24 ips.

Qu'est-ce que agroperforma-criativos-skill ?

Cette compétence est un pipeline d'édition vidéo automatisée pour les contenus verticaux Instagram (Reels/Ads) des marques AgroPerforma et Fábrica Blindada. Elle utilise le framework HyperFrames (`npx hyperframes …`) pour transformer des rushes bruts 4K en créations polies avec sous-titres, animations, et un traitement audio précis. Le processus est divisé en trois étapes obligatoires approuvées par un utilisateur : découpage (coupe des pauses et des bafouillages via Whisper + ffmpeg), ébauche (génération de la recette d'animation en JSON), et exécution (rendu 4K final avec vérification des barres noires). La compétence gère le choix du canal audio (voix la plus forte), le zoom calme centré sur le visage, les transitions fluides, et l'application de thèmes de couleurs spécifiques (vert pour AgroPerforma, bleu pour Fábrica Blindada). Elle est conçue pour fonctionner sur macOS avec un SSD exFAT monté en volume APFS et nécessite l'environnement HyperFrames ainsi que des scripts shell personnalisés.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add DrigoFelizardo/agroperforma-criativos-skill

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Créations AgroPerforma · Fábrica Blindada

Pipeline d'édition de contenus verticaux (Reels/Ads) construit sur HyperFrames (npx hyperframes …). Chaque création devient un projet avec une recette en JSON (creative.base.json) que template.html transforme en composition.

Règles détaillées du client, décisions et historique des retours : references/regras-do-cliente.md. À lire avant d'éditer — elles priment sur tout autre modèle ici.

Flux obligatoire (3 approbations)

  1. Découpage → aperçu 1080p léger (cut.py --preview) + nom suggéré (code + surnom, ex. AP-08 · Tout dépend de vous). L'utilisateur approuve.
  2. Ébauche → images clés des mouvements/sous-titres (hyperframes snapshot), pas la vidéo entière. Pour un changement de dynamique (zoom), envoyer un aperçu render -q draft.
  3. Exécution → recadrage en 4K (cut.py sans --preview) + render4k.sh (4K 24 ips) + barscan.sh (bordure noire).

Une vidéo à la fois, de bout en bout. Whisper large‑v3 + ffmpeg 4K + rendu en parallèle surchauffent et redémarrent le MacBook.

Environnement

  • Le SSD du client est en exFAT (pas de liens → hyperframes init échoue). Travaillez sur un volume APFS monté dans /Volumes/AGROPERFORMA-HF (scripts/montar.sh). Les scripts supposent ce chemin : projets/<code>/, projets/_kit/ (= ce dossier scripts/ + assets/), _scratch/ (temporaires, faces.swift, shift.swift).
  • source scripts/env.sh dans chaque commande : TMPDIR, historique et caches d'HyperFrames restent sur le volume, jamais sur le disque du Mac.
  • Le volume se démonte au redémarrage de l'application — remonter avant chaque étape ; tâches longues avec nohup caffeinate -i.
  • Police : Helvetica Now Display Bold (sous licence — pas dans le dépôt ; copiez-la dans projets/_kit/fonts/).

Étape 1 — Découpage

ÉtapeOutil
Canal de la voix (micros différents sur L et R ; prendre le plus fort, vérifier qui parle quand la direction apparaît)prep_lote.sh (niveaux + transcription)
Phrases du brut, transcrites une par une (les longues pauses de Whisper sont inexactes)phrasemap.py <wav>
Pauses > 0,2 s supprimées, 0,07 s de respirationplan.py <wav> a:b … --gap 0.2 --pad 0.07
Bafouillages ("de, du", "un, une", "cli… clique") : RMS 20 ms + fusionner les candidats et transcrire le résultat ; isoler la syllabe confirmefine.sh, chunk.sh
Coupe continue alignée sur l'image (un seul <video> → le LUT ne "hache" jamais), canal choisi des deux côtés, fondu 0,5 s + 0,7 s vers le noircut.py [--preview] [--no-fade] [--multi]

Commence au début réel de la parole ; se termine ~0,5 s après le dernier mot avec fondu (sauf si la personne détourne le regard à la fin → --no-fade).

Étape 2 — Recette (creative.base.json)

{
  "theme": "green",                       // green = AgroPerforma (#62AE46) · blue = Fábrica Blindada (#1f4cd7/#0c1f51)
  "adjust": {"highlights": -0.25, "shadows": -0.15},   // ou "exposure": 0.15
  "trackMode": "shot",                    // centre le visage 1× par segment de zoom
  "cam": [{"start": 0, "end": 6.78, "s": 1.12, "to": 1.04, "cx": 0.5}],
  "captions": [["texte statique", 1.12, 2.48]],
  "motions": [{"start": 5.45, "end": 6.78, "top": 900,
               "items": [{"text": "Tout dépend de vous ?", "at": 5.45, "kind": "secondary", "check": true, "ring": 5.8}],
               "arrow": 6.2}]
}
  • analyze.sh <projet> → visage par image (Apple Vision) + transcription du montage ; caps.py génère les sous-titres automatiques (groupes de 2–4 mots, corrige "Et/Et puis/Heu", fusionne les orphelins).
  • mkcfg.py <projet> → complète le zoom/le suivi et génère index.html via build.py.
  • Sous-titre statique au milieu de l'image, disparaît lorsqu'une animation est à l'écran.
  • Types : court (CTA ~10–15 s) uniquement animations · moyen sous-titre + animations sur mots-clés · -GRANDE uniquement sous-titre + animation de CTA final.
  • Zoom calme : ~5 segments sur 40 s, ≥ 6 s entre les changements, uniquement lors d'un changement de raisonnement ; alterne zoom avant/arrière. Visage centré par segment, cadrage limité image par image à la marge du zoom (n'affiche jamais de bordure).

Étape 3 — Exécution

python3 scripts/cut.py "<brut>.MP4" media/cut.mp4 L <a:b> …     # 4K
python3 scripts/mkcfg.py projets/<code>
HF_DEST="<dossier EDICAO>" scripts/render4k.sh <code> <Nom>_v1_4K
scripts/barscan.sh "<dossier EDICAO>/<Nom>_v1_4K.mp4"              # 0 images avec bordure noire

Enregistrez tout dans le PROJETO.md du projet (brut, canal, texte, ce qui a été retiré, versions) et dans projets/CATALOGO.md. Versions numérotées, jamais écrasées.

Exemples

examples/ contient des recettes réelles (creative.*.json), PROJETO.*.md, le générateur de variations d'accroche (ap08_variants.py — même corps, trois phrases d'ouverture) et des files de rendu (fila_*.sh).

Skills associés