Communitygithub.com

100FOUNTS/brief-to-3d-video-pipeline

Vérifie une sortie du studio (vidéo, image, audio, modèle 3D) avant de l'accepter : extrait des images et les EXAMINE, vérifie le format avec ffprobe, mesure la loudness et exécute `make verify`. À utiliser après chaque rendu, après avoir modifié l'audio ou touché au brief.

Qu'est-ce que brief-to-3d-video-pipeline ?

Cette compétence pour agent IA automatisé (comme Claude Code ou Cursor) implémente un pipeline de validation rigoureux pour les productions du studio (vidéo, image, audio, modèle 3D). Son objectif principal est d'empêcher toute livraison sans inspection visuelle et technique, conformément à la règle d'or du projet : « ne jamais dire 'fini' sans avoir regardé le résultat ». Elle extrait des trames clés d'une vidéo (via `ffmpeg` ou un script de capture) et les examine avec un modèle de vision (Read) pour détecter les défauts visuels (texte coupé, éléments hors cadre, contraste faible). Elle vérifie également le format vidéo/audio avec `ffprobe`, mesure la loudness intégrée (EBU R128, cible −16 LUFS) avec `ebur128`, et contrôle la transcription via Whisper large-v3 (jamais small) pour détecter les erreurs d'audio. Enfin, elle exécute `make verify` pour une validation complète. L'agent doit produire un rapport honnête listant ce qui a été vérifié, mesuré et ce qui ne peut pas être jugé (naturel de la voix, goût artistique). Le pipeline est conçu pour éviter les pièges connus comme les mesures de loudness sur des fenêtres trop courtes, les suppositions de reproductibilité sans seed, ou les différences de performance PNG vs JPEG.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/100FOUNTS/brief-to-3d-video-pipeline/tree/HEAD/.claude/skills/render-check

Demander à votre IA préférée

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

Documentation

Vérifier une sortie du studio

La règle d'or du projet : ne jamais dire « fini » sans avoir regardé le résultat. Les tests automatiques disent si ça marche ; seul le regard dit si ça a l'air correct (dans ce projet, hyperframes check a passé avec un arc traversant le texte, et les tests de visualisation n'auraient détecté aucun de ses quatre défauts visuels).

Étapes

  1. Vidéo ou scène avec seek(t) : prendre 6 à 8 trames réparties (pas seulement la première) dans une planche contact et les examiner avec Read : node scripts/capture.mjs <scene.html> 1,4,7,10,13,16,19 out/frames/sheet.png 4 Pour un MP4 déjà rendu : ffmpeg -i out/x.mp4 -vf "fps=1/3,scale=640:-1,tile=3x3" -frames:v 1 out/frames/sheet.png. Rechercher : texte coupé ou qui se chevauche, éléments hors cadre, faible contraste, trames vides ou figées.
  2. Format : ffprobe -v error -show_streams -show_format -of json <file> → 1920x1080, 30 ips, H.264 yuv420p, durée attendue, piste audio AAC 48 kHz.
  3. Audio : ffmpeg -i <file> -vn -af ebur128=peak=true -f null - → intégrée −16 LUFS (±1), pic vrai ≤ −1 dBFS. Vous ne pouvez pas écouter : utiliser un spectrogramme (showspectrumpic), des mesures, et la transcription avec Whisper large-v3 (audio/verify_voice.py). JAMAIS avec Whisper small : il invente du texte dans les silences et donne une fausse erreur de 49 à 160 %.
  4. Tout ensemble : make verify (ou audio/.venv/bin/python scripts/verify_output.py). Il doit se terminer par ALL CORRECT.
  5. Rapport honnête : ce que vous avez examiné, ce que vous avez mesuré, ce que vous NE POUVEZ PAS juger (naturel de la voix, goût du design) et quels défauts sont apparus même si vous les avez corrigés.

Pièges connus

  • Un résultat « identique » doit être prouvé (cmp, hash de trames avec ffmpeg -f framemd5), pas supposé. Kokoro n'est pas déterministe sans seed.
  • Les mesures de loudness avec des fenêtres < 0,4 s donnent −65 LUFS (déchets) : elles sont ignorées.
  • Un PNG peut être 10 fois plus lent que JPEG dans les scènes complexes (210 s contre 20 s) et plus rapide dans les scènes plates.

Skills associés