Que fait Rebranding de publicités ?
Transformez un lot de publicités existantes vers la nouvelle marque : chaque mention parlée est ré-énoncée avec la voix clonée de l'orateur original, chaque sous-titre est ré-écrit dans la police de sous-titrage de la vidéo, chaque logo/étiquette/libellé à l'écran est ré-écrit ou effacé proprement — le reste de chaque publicité reste inchangé (mêmes plans, timing, musique).
Parallélisez avec des sous-agents (outil Agent, run_in_background: true, un message lançant tous les agents indépendants). Modèles de prompts : references/agent-prompts.md. Lisez references/lessons.md avant de commencer — il enregistre ce qui a cassé la dernière fois.
Entrées à déterminer en premier
- Anciens noms (produit et marque) et le nouveau nom — et comment Whisper pourrait mal entendre les anciens (par exemple « physio rest », « artivate »).
- Les fichiers (vidéos, images). Travaillez dans un dossier de projet que l'utilisateur peut conserver (par exemple
~/Téléchargements/<Marque> Éditions vidéo) ; ne modifiez jamais les originaux.
Flux de travail
-
Configuration.
scripts/setup_jobs.sh PROJET DÉBUT_N video1 video2 …→job-NN/{assets/source.mp4,analysis,project,renders}. Copiez les images dansPROJET/images/source/. Environnement : ffmpeg/whisper-cli via Homebrew, environnement virtuel Python~/.cache/video-studio-venv(numpy, opencv-contrib, pillow, soundfile, demucs, torch ; pyworld pour les mots chantés), modèle Whisper~/.cache/whisper/ggml-small.en.bin. Si manquant, installez (Homebrew nécessite le mot de passe de l'utilisateur dans un onglet de terminal). -
Triage (parallèle, un agent par vidéo). Modèle §1. Chaque agent écrit
analysis/triage.json|mdavec les plages de parole raffinées, les locuteurs + plages de référence de clone propres, chaque occurrence visuelle/sous-titre avec les plages d'images et les anomalies. Vérifiez les images vous-même (zoomez sur les étiquettes/libellés en pleine résolution) — beaucoup ne nécessitent rien. -
Consolidation et demande unique (AskUserQuestion) :
- Droits vocaux : listez chaque voix distincte à cloner (regroupez les vidéos qui partagent une narration — comparez les enveloppes des pistes vocales ; comparez la F0 médiane pour distinguer les locuteurs). Le clonage nécessite un oui explicite de l'utilisateur par voix.
- Tout ce qui n'est pas l'ancienne marque mais qui ressemble à un problème : autres marques sur le produit, contextes de vente/d'endossement (employés de magasin, logos de magasin), affirmations incohérentes, redondance de script due au changement de nom. Filigranes tiers : signalez, ne les retirez jamais.
- Mentions chantées : expliquez qu'elles nécessitent un ré-accordage et une écoute humaine.
-
Lancez immédiatement l'équipe visuelle (modèle §2) — elle ne dépend pas des voix. Regroupez les vidéos qui sont le même montage dans un seul agent. Agent image : modèle §5.
-
Voix. Exportez les références de clone de la piste vocale de chaque job (25–35 s, sans noms de marque) dans
PROJET/voice_refs/. Préférez l'API Fish (examples/voice-splice/fish_tts_api.py, clé dans~/.config/video-studio/.env) si elle a du crédit API ; sinon créez des clones privés dans l'application web Fish dans le Chrome de l'utilisateur —references/fish-audio-web.md. Générez les lignes de chaque voix en un seul script, les deux prises, sauvegardées dansvoice_refs/takes/. -
Équipe audio (parallèle, un agent par groupe voix/job). Modèle §3 pour la parole, §4 pour les mots chantés. Sortie :
analysis/stems/vocals_nookwave.wavpar job, vérifiée par transcription. -
Assemblez chaque job dès que son image et sa voix sont prêtes :
scripts/mux_final.py JOB NOM_SORTIE.mp4(image rebrandée + nouvelles voix + piste musicale originale). Si un agent visuel renvoie un résultat incomplet, exécutez vous-même sonproject/rebrand_job.py. -
QC de chaque final vous-même — les rapports des agents sont des affirmations, pas des preuves :
scripts/check_final.py source.mp4 final.mp4 --old "physio|fisio|artuvate|artivate" --new "nook" --frames <une image par élément corrigé>→ correspondance du nombre d'images, décodage propre, loudness par rapport à la source, zéro ancien nom parlé, et une feuille source|final que vous devez consulter. Transcrivez par échantillonnage des fenêtres de 5 s autour de chaque mention si les totaux semblent anormaux (Whisper fusionne les phrases en entier). Pour les lignes chantées, attendez-vous à ce que Whisper ait du mal même sur l'original. -
Livraison. Les fichiers finaux à la racine du projet avec des noms descriptifs, un zip si demandé (
zip -0, les vidéos sont déjà compressées), et un résumé : ce qui a changé par fichier, ce qui nécessite une écoute humaine (mots chantés, longueurs de pause après un nom plus court), les images imparfaites connues, et les problèmes non liés à la marque signalés.
Optionnel : montages optimisés pour l'engagement
Pour les demandes « rendez-le plus engageant » en plus du rebranding, examples/engagement-edit/ contient le constructeur de plan (listes de conservation par phrase alignées sur les points silencieux, callouts, punch-ins) et le rendu (alternance de zoom sur les jump cuts, callouts de marque, barre de progression, effets sonores synthétisés, correction de maintien de sous-titres aux coupes, loudnorm −14 LUFS). Réutilisez plutôt que réécrivez.
Fichiers inclus
scripts/setup_jobs.sh,scripts/mux_final.py,scripts/check_final.py— génériques.examples/— code fonctionnel, spécifique au job du premier run (les chemins et numéros d'images sont codés en dur ; adaptez, n'exécutez pas à l'aveugle) :caption-and-tag-library/— redessin de sous-titres, étiquettes en cuir rotatives, plaques incurvées, gomme de sac, suivi multi-échelle (rebrand_job01.py) ; sous-titres découpés par glyphe, étiquettes gravées/embossées, ré-impression de sac suivie (caption_lib.py,text_lib.py,track_lib.py,rebrand_job05.py).web-and-sign-library/— sous-titres avec glyphes personnalisés (captions.py), plaque de panneau, ré-écriture de page web, pressage d'étiquette, sac tournant avec animation manuelle (rbk.py,rebrand_job02.py), page d'écran d'ordinateur (rebrand_job06_laptop.py), défilement de page d'avis, logo de carte de fin, suppression de gaufrage tiers (rebrand_job07.py), feuilles de contrôle qualité (visual_qc.py).voice-splice/— remplacement de mots avec plage mesurée et prise de force ; client API Fish.sung-word/— rechantage basé sur WORLD sur la mélodie originale.still-image/— remplacement de texte par homographie sur les emballages.