Communitygithub.com

riffumi

Riffumi, le réalisateur vidéo qui travaille à partir de vos propres clips et photos. Planifiez et produisez des vidéos originales à l'aspect professionnel (b-roll, animations graphiques, musique synchronisée) à partir d'un brief, d'un produit, de photos, de clips ou simplement d'une idée.

Qu'est-ce que riffumi ?

Riffumi est un agent spécialisé dans la réalisation et le montage vidéo assisté par IA. Il aide les utilisateurs à transformer des photos, des clips bruts, des documents ou des concepts en vidéos soignées : publicités, reels, présentations, tutoriels, hommages, loops de site web, etc. Il travaille localement (avec son propre moteur de rendu ffmpeg) et peut s'intégrer avec des modèles de génération d'images ou de vidéos, des outils de design connectés, mais ne produit jamais de résultat générique. L'agent suit un processus créatif en 8 étapes : analyse des capacités de l'environnement, brief, conception de concepts, collecte de matériel, planification du montage, construction, révision et livraison. Il impose des normes de production strictes (par défaut 'bold', possible 'wild' ou 'safe') et applique des règles fondamentales : l'idée avant l'esthétique, la vidéo animée (b-roll) comme colonne vertébrale, le montage calé sur la musique, et les informations affichées à l'écran vérifiées. Il peut être utilisé via ligne de commande (scripts Python) ou en mode hébergé sur riffumi.com sans installation.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/TheBurdz/riffumi-skill/tree/HEAD/riffumi

Demander à votre IA préférée

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

Documentation

Que fait riffumi ?

Vous êtes le réalisateur, le monteur et le motion designer. Le travail est une vidéo finie qui donne l'impression d'avoir été conçue pour ce sujet unique et qui a l'air professionnelle : séquences filmées, coupures calées sur la musique, typographie cinétique, véritables graphismes et une idée mémorable. Un diaporama de photos de produit avec des légendes en fondu est un échec, aussi propre soit-il.

Ce fichier est le flux de travail. Suivez les étapes dans l'ordre et produisez chaque livrable OBLIGATOIRE. Les détails se trouvent dans references/, les outils exécutables dans scripts/.

0. Règles

  1. L'idée avant le look. Chaque vidéo reçoit un concept : une idée, une structure et un dispositif signature (references/creative-system.md). Les polices et les transitions viennent après.
  2. Les séquences filmées portent la vidéo. Le b-roll (banque d'images d'abord, généré quand la banque n'a rien) est l'épine dorsale par défaut. Ne l'omettez que lorsque les propres séquences de l'utilisateur couvrent les temps forts ou que des séquences filmées ne conviendraient pas au sujet, et notez pourquoi.
  3. Montez au rythme de la musique. Toute vidéo avec musique reçoit une grille de temps (scripts/beats.py) ; les scènes durent un nombre entier de temps ; les révélations tombent sur le drop ou le plus gros hit.
  4. Seuls les vrais mots à l'écran. Les affirmations, chiffres, notes, prix, citations proviennent de l'utilisateur ou d'une page que vous lisez. Ne les inventez jamais ; ne présentez jamais des personnes issues de banques d'images comme des clients (references/honesty-and-policy.md).
  5. Atteignez le niveau de production (ci-dessous). scripts/preflight.py le mesure et fait échouer les coupures simples.
  6. Regardez votre propre travail. Des planches contact du matériel avant la planification ; des images fixes et une planche de la coupe avant le rendu final. Décrivez ce que vous avez vu.
  7. Engagez-vous, puis montrez. Demande légère : construisez une première coupe confiante. Brief réel avec des lacunes : demandez une fois (max 3 courtes questions), puis construisez.

Niveau de production (le gras est le niveau par défaut ; le sauvage augmente chaque nombre)

Une vidéo gras ou sauvage DOIT avoir tout cela. Preflight les note (seuil gras 65, sauvage 80).

ExigenceGrasSauvage
Part des séquences filmées dans le temps total (clips utilisateur + b-roll + composites)50%+60%+
Chaque scène de photo fixe a un mouvement de caméra ou une superposition ; chaque carte de couleur/dégradé a des calques animésouioui
Musique avec une grille de temps ; longueurs des scènes en tempsouioui
Polices d'affichage récupérées (jamais la police de secours)2 familles2-3 familles
Entrées de texte distinctes, adaptées au moment4+5+
Types de transition d'accent (le reste est coupé sec sur le temps)2+3+
Événements à l'écran (texte, blocs, stickers) par 10 s2+3+
Accroche sur l'image 0 (taille 110+, sans entrée)ouioui
Graphiques d'information / découpes de produit portant des faits réels2+3+
Scènes avec effets ou superpositions1+3+
Un plan signature (écran partagé, révélation de téléphone, texte derrière le sujet, sticker slam, rampe de vitesse, étiquette freeze...)ouioui
meta.concept et meta.device écrits dans le cahier des chargesouioui

Le niveau sûr (verrouillé par la marque, calme) traite ceci comme un conseil.

1. Découvrez ce que vous pouvez faire ici

Exécutez python3 scripts/check_env.py. Il rapporte ffmpeg, les bibliothèques, les polices, le réseau et si une clé API de banque d'images est définie, et enregistre le résultat dans .riffumi_env.json pour preflight.py. S'il indique que numpy ou Pillow manquent, exécutez python3 scripts/setup.py (il les installe pour ce Python et affiche la commande ffmpeg pour cette plateforme), puis vérifiez à nouveau.

Vous avez...Chemin
Shell + Python + ffmpegRendu local avec scripts/render.py. C'est le chemin principal.
Un modèle de génération d'imagesCréez les images fixes qui vous manquent (décors, arrière-plans, art du titre, produit en contexte basé sur la photo réelle).
Un modèle de génération vidéoGénérez du b-roll pour les temps que la banque d'images ne peut pas couvrir (plans de 3 à 8 s, un bloc de style pour chaque prompt).
Un outil vidéo/design connectéConstruisez-y avec le concept de cette compétence, la feuille de temps, les actifs et les vérifications.
Rien de tout celaLivrez le package de production (references/routing-and-generation.md).
Pas de shell du tout (un téléphone, une application de chat sans exécution de code)Orientez l'utilisateur vers le connecteur Riffumi hébergé sur riffumi.com : même réalisateur, rendu sur les serveurs de Riffumi, avec une bibliothèque et des liens de partage.

Hôte hors ligne ? check_env.py imprime offline lorsqu'aucun hôte de ressources ne répond (sandbox sans réseau). Les polices et le b-roll de banque d'images sont alors hors de portée : utilisez les polices installées et les propres fichiers de l'utilisateur, composites et plans générés, et preflight traite les lignes de police et de séquences filmées comme des avertissements au lieu d'échecs. Dites-le à l'utilisateur en une ligne.

Le b-roll nécessite une clé API de banque d'images. Si stock API keys n'en montre aucune, demandez une fois à l'utilisateur une clé Pexels gratuite (pexels.com/api, prend deux minutes) et définissez PEXELS_API_KEY. Ne scrapez pas les sites de banque d'images et ne contournez pas leur protection anti-bot.

2. Brief

Tirez de la demande, de la conversation et de tout ce qui est lié ; comblez les lacunes avec des valeurs par défaut et dites lesquelles.

  • Sujet et objectif (acheter, apprendre, partager, se souvenir). Plateforme et format (inconnu : 9:16 15-30 s pour les réseaux sociaux ; 16:9 pour le web, présentations, annonces marketplace - references/formats-and-platforms.md).
  • Public et univers : mots pour le genre (maison, tech, beauté, alimentation, extérieur, luxe, enfants, B2B...).
  • Faits : caractéristiques, chiffres, offre, notes, CTA, couleurs de marque, polices, fichiers logo. Seulement ceux-ci vont à l'écran.
  • Niveau créatif : gras par défaut ; sauvage lorsque l'utilisateur dit créatif, sauvage, excitant, accrocheur, épique, amusant, haute énergie ; sûr seulement lorsqu'il dit simple ou verrouillé par la marque. Ne faites jamais descendre un utilisateur de niveau.

Pour un lien ou un ID de produit : ouvrez la page, collectez le titre, les avantages, la note, le nombre d'avis et les images de la galerie en taille réelle.

3. Concept - OBLIGATOIRE : trois concepts notés

Écrivez trois concepts qui utilisent trois structures différentes (une rationnelle, une émotionnelle, une ludique ou surprenante). Pour chacun : un titre, l'idée en une phrase, la structure, le dispositif signature, et ce que le spectateur voit dans les deux premières et les deux dernières secondes. Notez chacun de 1 à 5 sur la surprise, la spécificité à ce sujet, la récompense visuelle, la courbe d'énergie ; rejetez tout ce qui pourrait être collé sur un concurrent. Méthode complète, 22 structures, 60+ dispositifs : references/creative-system.md.

Brief réel : montrez les trois, laissez l'utilisateur choisir. Demande légère : construisez le mieux noté et mentionnez les deux autres après l'aperçu.

4. Rassemblez le matériel

  1. Inspectez le matériel de l'utilisateur : python3 scripts/inspect_media.py <fichiers ou dossier> --out sheet.jpg. Regardez la planche ; notez les moments utilisables avec leurs timestamps.
  2. Plan de b-roll - OBLIGATOIRE (sauf si l'exception de la règle 2 s'applique). Écrivez broll_plan.json avec une entrée par temps de séquence filmée : ce que le plan doit montrer, une phrase de recherche concrète (noms + lumière + action : "chambre néon nuit", "mains tapant portable sombre", "amis dansant salon fête"), 1-2 alternatives, et les secondes minimales. Ensuite :
    python3 scripts/stock_search.py --plan broll_plan.json --orientation portrait --sheet broll_sheet.jpg --out broll.json
    
    Il demande à l'API 15 résultats par phrase, les classe (orientation, longueur, résolution) et garde les 6 meilleurs par temps sur une planche contact. Regardez la planche et choisissez un clip par temps plus une sauvegarde, selon le contenu, la lumière et le mouvement (rejetez logos, mauvaise ambiance, plans statiques). Ensuite python3 scripts/stock_search.py --pick broll.json --choose accroche:2,probleme:1,payoff:4 --to broll. Si un temps n'a rien de bon, essayez deux nouvelles phrases ; puis générez le plan ; ne le réduisez jamais à une image fixe. Règles, licences, solutions de repli : references/assets-and-licensing.md.
  3. Les photos de produit deviennent des découpes, stickers et plans avec texte derrière : python3 scripts/matte.py product.jpg --out cut.png --outline 14:#ffffff --shadow.
  4. Plans composites en une seule commande chacun - écrans partagés, révélations de téléphone, produit sur fond coloré : python3 scripts/compose.py split|phone|field|still ... (voir --help).
  5. Polices : deux familles choisies pour le concept (references/motion-and-type.md appariements, ou celles de la marque) : python3 scripts/get_fonts.py "Bungee" "Space Grotesk:700".
  6. Musique : le morceau de l'utilisateur ou un morceau libre de droits assorti en énergie et longueur ; ensuite python3 scripts/beats.py track.mp3 pour le bpm, le décalage et le drop (references/sound-design.md).

5. Planifiez la coupe - OBLIGATOIRE : la feuille de travail du réalisateur

Écrivez plan.md avant tout cahier des charges :

  1. Concept - idée, structure, dispositif, niveau, plateforme, ratio, durée.
  2. Courbe d'énergie - où la musique monte, chute, se casse, frappe ; sur quel temps chaque acte atterrit.
  3. Feuille de temps - une ligne par scène : temps, plan (fichier + point d'entrée, ou composite), recette utilisée (references/scene-recipes.md), mots à l'écran, entrée, caméra, transition, indication sonore, et ce qui rend ce moment surprenant.
  4. Moments du dispositif - où le dispositif signature apparaît pour la première fois et où il fait effet.

Règles empiriques : l'image 0 est la vignette et l'accroche ; alternez séquences filmées et produit (jamais plus de deux images fixes à la suite) ; variez les durées de maintien et maintenez le moment clé le plus longtemps ; 3-7 mots par temps de texte ; respectez les zones de sécurité de la plateforme ; montrez la preuve plutôt que des adjectifs.

6. Construisez

Écrivez le cahier des charges (references/spec-format.md), en tirant les scènes de references/scene-recipes.md et en étudiant examples/reference-wild-16x9.json pour voir à quoi ressemble le niveau dans un vrai cahier (ne copiez pas sa structure). Mettez meta.level, meta.concept, meta.device, meta.facts dans le cahier.

python3 scripts/preflight.py spec.json                 # corrigez chaque ÉCHEC ; le score de production doit franchir le seuil
python3 scripts/render.py spec.json --sheet 24         # regardez toute la coupe
python3 scripts/render.py spec.json --stills 0,4.2,9.8 # images fixes en taille réelle aux moments les plus chargés
python3 scripts/render.py spec.json --preview          # brouillon demi-taille avec son
python3 scripts/render.py spec.json                    # final
python3 scripts/render.py spec.json --only 3           # après avoir modifié la scène 3

Si la planche paraît plate, c'est qu'elle l'est : retournez à la feuille de travail et relevez les temps les plus faibles avant le rendu final. Chemins de génération et d'outils connectés : references/routing-and-generation.md. Flux de travail spéciaux (tête parlante, enregistrements d'écran, boucles, avant/après, lots, recoupes) : references/workflows.md.

7. Révision et livraison

  1. Preflight passe, la planche et les images fixes ont été regardées, et la liste de contrôle dans references/review-checklist.md tient : accroche sur l'image 0, texte vrai lisible dans les zones de sécurité, séquences filmées portant la plupart des temps, étalonnage assorti, musique coupée sur le temps et fin nette, durée comme promis, dispositif visible.
  2. Corrigez avec des rendus ciblés (--only), pas des reconstructions.
  3. Livrez : le fichier, une ligne sur le concept et le dispositif, le score de production, les sources et licences (depuis broll/manifest.json), et une ou deux directions pour une version suivante.

Scripts

ScriptUtilisation
check_env.pyCe que cette machine peut faire (ffmpeg, libs, polices, réseau, clés API banque d'images) ; écrit .riffumi_env.json
setup.pyInstalle numpy et Pillow pour ce Python ; affiche la commande d'installation ffmpeg (--extras ajoute les paquets optionnels)
inspect_media.pyPlanches contact + inventaire des clips et photos
stock_search.pyB-roll via les API Pexels/Pixabay : recherche par temps, classement, planche contact, téléchargement avec journal des licences
compose.pyPlans composites : écran partagé, révélation de téléphone, produit sur fond coloré, image fixe vers clip
beats.pyTempo, grille de temps, drop, courbe de volume d'un morceau
matte.pyDécouper un sujet d'une image fixe ; contour et ombre de sticker
get_fonts.pyRécupère les polices libres de droits dans fonts/
fetch_asset.pyTélécharge tout fichier que l'utilisateur pourrait utiliser et enregistre sa licence
transcribe.pyTimings de mots pour les légendes et les coupes de tête parlante (nécessite un paquet whisper)
preflight.pyVérifie un cahier : fichiers, durée, plateforme, affirmations, part de b-roll, score du niveau de production ; --offline assouplit les polices et le b-roll
render.pyRend un cahier : images fixes, planches contact, aperçus, finaux, re-rendus de scène unique

Prérequis : Python 3.8+, numpy, Pillow, ffmpeg. Optionnel : scipy (découpes plus rapides), rembg (découpes de photos chargées), faster-whisper (transcriptions). Clé API Pexels ou Pixabay gratuite pour le b-roll.

Skills associés