Communitygithub.com

Podcast Motion : Animatic

Un look animatic pour podcast ou talk-show : des planches de storyboard maintenues à l'écran et animées par un mouvement saccadé fait à la main, synchronisé sur la voix, avec des dessins au crayon et des mots lettrés dans des cadres libres, et l'intervenant entre les planches. Fonctionne avec des séquences vidéo, à partir de l'audio seul, ou d'un script avec des animateurs dessinés, en 16:9 et 9:16.

Qu'est-ce que Podcast Motion : Animatic ?

Podcast Motion: Animatic est une compétence d'agent AI conçue pour transformer des podcasts ou talk-shows en films animatic au style storyboard. Elle crée des planches dessinées au crayon, animées par un mouvement saccadé (six images par seconde), synchronisées sur la voix réelle, affichant les idées et objets, jamais les visages des intervenants réels (sauf sur demande explicite du producteur pour des personnages déjà établis). La compétence supporte les formats 16:9 et 9:16, et fonctionne avec des séquences vidéo, de l'audio seul (en créant une vidéo de base), ou à partir d'un script avec des hôtes dessinés. Elle utilise des fichiers JSON de cartes (cards.json) pour définir les panneaux, et peut esquisser automatiquement les images (via un processus local gratuit) pour unifier le style. Des options avancées incluent des mouvements d'images (drop, arc, fly, etc.), un thème blueprint (plan de fond thématique), et des cartes latérales qui ne cachent pas l'intervenant. La compétence est développée pour être utilisée avec podcast-playbook (qui gère le son, la transcription et le montage), et ses commandes de construction sont exécutées via des scripts Python. Elle a été testée et approuvée sur un film de 2 minutes avec deux hôtes dessinés, cartes et blueprint. La gestion des erreurs courantes (cartel mal cadré, image trop petite, etc.) est documentée. L'audio seul nécessite la création d'une vidéo de base avec ffmpeg et le paramètre audio_only dans paper.json.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ohmdob/podcast-motion-skills/tree/HEAD/.claude/skills/podcast-motion-animatic

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 Podcast Motion : Animatic ?

Statut : un film scénarisé rendu et approuvé par son producteur : 2 minutes, deux animateurs dessinés, cartes, blueprint, 16:9. Sur des séquences réelles et en 9:16, il n'a été lu que sur des trames de test, montrez-les donc et prenez une décision avant tout rendu long, puis enregistrez le résultat dans le STYLES.md de l'émission. Lisez d'abord podcast-playbook : il contient le son, le montage, les portes et le master.

  • Idée : un storyboard qui prend vie. Chaque point de l'émission est une planche, maintenue et animée d'un mouvement saccadé, sous la voix réelle.
  • Meilleur pour : les émissions où l'on peut dessiner des choses, et les émissions audio uniquement.
  • Étape supplémentaire : aucune, et pas de cache.
  • Coûts : les images, sauf si l'émission les a déjà. Il réutilise toutes les images fixes qu'il trouve.

Les visages restent naturels

Les planches dessinent les idées et les objets, jamais les personnes qui parlent. Un invité illustré est la seule chose que ce look ne doit pas faire : la crédibilité de l'invité est le but de l'émission, et un visage stylisé a déjà été rejeté à vue sur une émission réelle. Alors ne lui donnez jamais une image d'une personne, et ne demandez pas à un générateur d'en dessiner une. Entre les planches, vous voyez l'intervenant réel, en couleur naturelle.

Les animateurs qui sont déjà des personnages sont la seule exception, quand le producteur le demande : la raison ci-dessus concerne la crédibilité d'une personne réelle. Ils prennent la place de l'intervenant, et les planches ne montrent toujours que des objets et des mots. Voir references/scripted-show.md dans podcast-playbook.

Construction

python3 scripts/build.py episodes/EPxx/full --ratio both --frames
python3 scripts/build.py episodes/EPxx/clips/Cnn_name --ratio both --frames

scripts/ est le dossier de cette compétence. Le dossier du film nécessite d'abord full_edit.py --render, avec faces.jsonl et pass1.json dans build/ (references/full-episode.md dans podcast-playbook). --frames écrit une planche contact de trames réelles pour juger. Il écrit variant_animatic/ et variant_animatic_9x16/. Rendu et master comme dans podcast-playbook.

Planches

Chaque carte dans cards.json est une planche.

  • Une carte avec une image (opts.panel, sinon opts.still ou opts.obj) : l'image en dessin au crayon, avec le titre de la carte en dessous et chaque ligne remplaçant la précédente à son arrivée.
  • Une carte sans image : ses mots, lettrés dans le cadre.

Il cherche dans assets_src/panels/<nom>, puis dans les images fixes de Studio Cut, puis dans les objets de Pop Studio, en .png ou .jpg. Une image nommée qu'il ne trouve pas est transformée en mots, et la construction le signale.

L'esquisse est locale et gratuite, et c'est ce qui rend ce processus économique : toute photographie, ou image provenant de n'importe quel outil, ressort dans la même main, de sorte que des sources mélangées ressemblent toujours à un seul storyboard. Si vos images sont déjà dessinées comme vous le souhaitez, définissez "sketch": false.

Obtenir des images suit references/storyboard-and-assets.md : d'abord un devis, et sans Ideogram, demandez au producteur quelle alternative utiliser. Une image sert plusieurs cartes, donc un épisode de 20 minutes peut fonctionner avec environ 20 planches. Gardez un objet clair, car une photographie chargée se transforme en bruit lors de l'esquisse :

Photographie en studio d'une seule tasse blanche unie, centrée, sur un fond uni pâle, lumière douce et uniforme, contour net et fort. Pas de texte, pas de lettres, pas de logos, pas de personnes, pas de mains.

Enregistrez sous assets_src/panels/cup.png, et écrivez {"panel": "cup"} sur la carte.

Ce qui le fait paraître dessiné : les mouvements s'exécutent à six pas par seconde (steps()), et les coupures sont franches. Un mouvement fluide le transforme en diaporama, alors laissez cela tranquille.

Cartes, mouvement et thème

Ce qu'un producteur a demandé, une demande à la fois, et tout a tenu. Chaque option est désactivée jusqu'à ce que l'émission la demande, et le code se trouve dans scripts/animatic_cards.py, dont le haut liste chaque option.

"looks": {"animatic": {"layout": "card", "blueprint": true, "paper": "#0A1A33", "ink": "#E6F4FF", "pencil": "#9CC4E4", "accent": "#FFB547"}}
  • "layout": "card" garde l'intervenant à l'écran. Une planche plein écran le cache, et le producteur a demandé des cartes image et du texte explicatif comme Pop Studio. La carte prend le côté opposé à celui qui parle : d'abord le titre, puis les lignes atterrissant sur leurs mots et restant, puis une image remplissant ce que les mots laissent. 16:9 seulement pour l'instant. Le texte derrière les animateurs, l'autre moitié de Pop Studio, nécessite un détourage, donc il n'est pas ici.
  • opts.motion déplace l'image avec l'histoire. Intégré : still, drop, arc, fly, drift, sway, hop, swarm, flipbook. Un lent zoom avant sur chaque planche ne suffisait pas au producteur ; une balle lancée raconte l'histoire aussi bien qu'en la montrant. Écrivez le vôtre dans moves.py : examples/hail-mary/moves.py contient une ligne racontée en trois dessins, et une balle du début du film atterrissant à la fin.
  • "blueprint": true le thématise. Prenez le thème de l'histoire et demandez : une grille marine convenait à un film spatial. Il inverse chaque esquisse et la superpose en écran, de sorte que les images déplacées ne montrent aucun bord.
  • Dessinez ce qu'un générateur ne peut pas vous donner proprement. Un flipbook de 18 dessins, un alien marchant et un vaisseau solide ne coûtent rien, et se lisent mieux que des photographies esquissées. examples/hail-mary/draw_art.py montre comment faire. Un dessin du personnage de quelqu'un d'autre reste le leur, alors soulevez-le avant de publier.
  • "wide" dans paper.json donne un plan à deux. Les animateurs qui échangent des répliques courtes n'en reçoivent jamais du planificateur, et un spectateur devrait voir les deux tôt et à la fin.

Erreurs déjà payées

  • Une carte doit atterrir sur son propre cadrage. Le planificateur maintient un plan pendant au moins une seconde, donc une carte pourrait cacher la moitié d'un visage pendant 0,9 s. Dans la disposition en carte, les plans coupent maintenant exactement sur les bords de la carte et à chaque changement d'intervenant.
  • Un mince bord de l'autre animateur au bord du cadre ressemble à une erreur. La carte reçoit une bande solide jusqu'au bord derrière elle.
  • Image trop petite dans sa fenêtre : donnez-lui ce que les mots laissent, puis utilisez zoom. Une ligne de texte chargée sur une minuscule pomme semblait inachevée.
  • Retournez une image qui vole à l'envers. Le nez du vaisseau pointait dans la direction d'où il venait.
  • Vérifiez que ce qui pend rencontre ce à quoi il est suspendu. Des cordes s'arrêtant avant la marionnette étaient à l'écran pendant 10 s avant qu'un nouveau relecteur ne le signale.
  • Une carte lettrée est la plus faible sur un film avec des images animées. Gardez-les pour un chiffre, et dessinez quelque chose pour le reste.

Pas de caméra

Pour une émission audio uniquement, créez une vidéo simple à partir de l'enregistrement, et tout le pipeline fonctionne comme d'habitude :

ffmpeg -f lavfi -i "color=c=0xF6F7F5:s=1920x1080:r=25" -i EPxx.wav -shortest -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a aac 1080p/EPxx.mp4

Ensuite, définissez "audio_only": true dans paper.json. Entre les planches, le cadre affiche le nom du chapitre. faces.swift ne trouve aucun visage, ce qui est acceptable. Les intervenants proviennent uniquement de la transcription, alors corrigez who dans pass1.json. Gardez une planche toutes les quelques secondes : sans rien d'autre qui bouge, un long intervalle est une image figée, et il échoue à la vérification du master à 12 s.

Ce qui est à l'écran

  • 16:9 : l'intervenant remplit le cadre entre les planches ; une planche est un cadre de crayon libre sur papier uni, avec une ligne de légende en dessous.
  • 9:16 : le cadre se trouve à y 170 à 1070, avec la légende en dessous dans la zone claire de l'appli, et la marque de l'émission en dessous. Le nom du chapitre prend la place de la légende entre les planches.
  • Les chiffres et les verdicts sont en rouge. Il n'y a pas d'inondation : un mot rouge dans un cadre au crayon est déjà la chose la plus forte à l'écran.
  • Le papier est un blanc cassé froid, intentionnellement : le papier crème avec des empattements est le look que chaque émission devrait éviter.
"looks": {"animatic": {"paper": "#F6F7F5", "ink": "#1C2126", "pencil": "#59626A", "accent": "#D3261F", "sketch": true}}

L'écriture manuscrite est Itim, qui supporte le thaï et le latin.

Ce qu'il faut vérifier

  • Lisez chaque légende et chaque planche lettrée à la taille d'un téléphone.
  • Le croquis se lit-il comme la chose qu'il est censé être ? Regardez chacun. Une image qui ne le fait pas, surtout sur un point de santé ou légal, est pire que des mots : mettez-la en lettres à la place.
  • Une planche cache complètement l'intervenant, alors n'en placez pas une sur le moment où son visage fait le travail.
  • La même image qui se répète est acceptable pour quelques cartes, et devient fatigante au-delà.
  • Correct intentionnellement : timeline_track_too_dense, car un chapitre contient de nombreuses planches minutées.
  • Parcourez l'arrivée de chaque carte image par image. La première seconde d'une carte est l'endroit où se cachent les défauts de cadrage et d'entrée, et les échantillons toutes les quelques secondes les manquent.

Skills associés