Communitygithub.com

shaharsha/production-d-episodes-animes

Utilisez ceci pour réaliser une vidéo animée narrée ou doublée avec des personnages récurrents – un épisode d'anime, de dessin animé ou de bande dessinée, un court métrage pour un groupe de discussion, une histoire vidéo sur des amis, la famille, une classe ou une équipe – à partir de photos, d'un export de discussion, d'une idée d'histoire ou d'un script, dans n'importe quel style visuel, en hébreu (RTL) ou en anglais. Utilisez-le aussi lorsque la vidéo a des sous-titres ou des cartes trop rapides à lire, une musique qui s'arrête trop tôt, une fin coupée, des dialogues enterrés sous la musique, des lèvres désynchronisées, un geste avant sa ligne, ou un visage qui dépasse.

Qu'est-ce que production-d-episodes-animes ?

Ce skill est un moteur de production complet pour créer des épisodes animés verticaux, doublés et sous-titrés. Il orchestre la génération d'images de personnages, de panneaux, de voix clonées ou issues d'une bibliothèque, de musique, de clips vidéo et de synchronisation labiale, le tout automatisé à partir d'un seul fichier `episode.json`. Le moteur (`engine/episode.py`) découpe chaque plan en fonction de la durée réelle des dialogues audio, garantissant un timing parfait. Il prend en charge les flux de travail en hébreu (RTL) et en anglais, et intègre des vérifications de cohérence, des caches de segments et des rapports de coûts. Les skills frères obligatoires sont `image-generation`, `elevenlabs-tts` et `generating-video-clips`. L'utilisateur intervient à chaque porte de validation (script, personnages, voix, animation) pour juger de la qualité, tandis que le moteur gère tout le rendu technique et l'édition.

Compatible avec~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/shaharsha/claude-skills/tree/HEAD/skills/producing-animated-episodes

Demander à votre IA préférée

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

Documentation

Production d'épisodes animés

Présentation

Un épisode animé vertical, doublé et sous-titré : illustrations de personnages, panneaux, voix clonées ou issues d'une bibliothèque, musique, clips image-vers-vidéo et synchronisation labiale, le tout découpé par un moteur qui chronomètre chaque plan à partir de l'audio réel des dialogues. Un seul fichier episode.json contient l'intégralité du projet, et engine/episode.py exécute toutes les phases à partir de ce fichier. Les skills frères effectuent le travail des fournisseurs.

Utilisez le moteur ; n'écrivez pas vos propres scripts d'édition. La chronologie, les incrustations, les sous-titres, le texte de droite à gauche, le mixage, les durées et les jonctions de synchronisation labiale sont déjà dans engine/. Il a été éprouvé en reconstruisant un véritable épisode de 3,5 minutes : images identiques, audio identique et durée exacte que l'original avait manquée. Un script d'édition manuscrit redécouvre chaque bogue de references/troubleshooting.md.

L'audio est le maître. Les longueurs des plans, les temps des sous-titres et les parties de synchronisation labiale proviennent des fichiers de dialogue terminés. N'estimez jamais un timing à partir du texte.

Vous ne pouvez ni regarder ni écouter. Vous vérifiez les images, les durées et les chiffres. L'humain juge la ressemblance, les voix, la prononciation, le timing et les blagues. Planifiez ses points de contrôle et respectez-les.

Nécessite :

  • Ces skills à côté de celui-ci : image-generation, elevenlabs-tts, generating-video-clips.
  • Python 3 avec pip install -r <chemin-vers-ce-skill>/requirements.txt (Pillow compilé avec RAQM, numpy ; OpenCV facultatif).
  • ffmpeg 7 ou plus récent.
  • Polices : les styles et les sous-titres nomment des clés de police (bold, hblack, black dans l'exemple) que le dictionnaire fonts mappe vers des fichiers .ttf installés. Pour l'hébreu et le latin, Rubik et Heebo (gratuites, Google Fonts) fonctionnent bien ; check bloque si une police est manquante.
  • Clés dans les variables d'environnement, définies dans chaque shell qui exécute le moteur : OPENAI_IMAGE_API_KEY, ELEVENLABS_API_KEY, GEMINI_API_KEY, FAL_KEY.

Pour voir l'ensemble du pipeline fonctionner sans aucun appel API, exécutez python3 <chemin-vers-ce-skill>/engine/episode.py /tmp demo, puis check et build le projet de démonstration qu'il crée.

Le pipeline et ses portes

Chaque porte est un arrêt : envoyez l'artefact, demandez, attendez. Les commandes sont python3 <chemin-vers-ce-skill>/engine/episode.py PROJET <commande>. Coûts mesurés en octobre 2026.

#PhaseCommandePorte (l'humain)Coût
1Histoire et scriptscript.md depuis templates/script.template.mdle script, et tout sujet sensible-
2Bible des personnagestemplates/characters.template.md, puis characters dans episode.json--
3Visages, cartes, promotionchars face, chars card key=visage.png, chars final keysressemblance, sur une feuille de toutes les cartes~0,30 $ par personnage
4Panneauxpanels draft, puis panels final idschaque panneau, sur une feuille~0,30 $ par panneau
5Voixun échantillon par voix (elevenlabs-tts)chaque voix, à l'oreille, avant le lotcentimes
6Répliqueslinesle lot à l'oreille, avec horodatages ; noms A/Bcentimes à quelques $
7Musique et effets sonoressoundla musiquecentimes
8Animaticbuild (pas encore de clips : images fixes avec mouvements de caméra)rythme et ordre, avant toute dépense vidéogratuit
9Animationanimate, feuilles, reprises avec animate S --takes 2 + animate pick S Kmouvement, à partir des feuilles~0,10 $ par seconde de clip, par prise
10Synchronisation labialelipsync prep, points du visage dans la config, lipsync runvérification ponctuelle des images~0,13 $ par seconde
11Montage et livraisonbuild, sheet, deliverl'humain regarde le mp4gratuit

Commandes, entrées, sorties et gestion des échecs pour chaque phase : references/pipeline.md.

Écrire le script

Règles qui ont tenu (détails et exemple concret : references/script-writing.md) :

  • Un accroche dans les 3-4 premières secondes (une ouverture à froid sur le problème), puis le titre. Durée inférieure à 30 secondes : placez le titre et la carte de fin en incrustation sur les plans de l'histoire et sautez le montage.
  • Chaque personnage récurrent parle au moins une fois. Un montage d'introduction, un mot chacun avec sa propre voix à environ 1,2-1,5 s par carte, est peu coûteux et apprécié.
  • Le texte à l'écran doit être lisible : environ 0,8 s plus 0,06 s par caractère ; 1,2-1,5 s pour une courte carte ; 4-6 s pour une légende finale. Donnez aux cartes une mindur.
  • Placez les indices tôt et révélez-les. Les rappels aux running jokes réelles d'un groupe sont les plus percutants.
  • Les sujets sensibles sont du ressort de l'utilisateur. Listez chaque détail privé que vous souhaitez utiliser (santé, argent, relations, famille, disputes), demandez pour chacun et n'utilisez que ce qu'il confirme.
  • Répliques de 12 mots ou moins, nombres en lettres. Le texte à l'écran reste en orthographe normale ; les corrections de prononciation vont dans pronounce.
  • Musique et effets sonores, même pour la narration. Au moins un fond musical et quelques effets (whoosh sur les coupes, un impact sur la révélation) ; un fond silencieux donne l'impression d'être inachevé.

episode.json en un écran

templates/episode.example.json est un petit épisode complet ; chaque clé est dans references/config-schema.md. Les parties que vous modifiez le plus :

  • characters : nom d'affichage, couleur, voix et les champs de prompt de la bible des personnages.
  • speakers : voix qui ne sont jamais dessinées, comme un narrateur ({"display": null, "voice": "<id>"} donne des sous-titres sans nom).
  • lines : id, intervenant, texte avec balises audio ; trim et level sur les répliques d'un seul mot.
  • shots : image, répliques ("[email protected]" chevauche la réplique précédente), pads, mindur, caméra, fx, sfx, incrustations, décalage et vitesse du clip.
  • music_cues : [cue, depuis le plan, jusqu'au plan, volume, décalage]. La construction prévient lorsqu'une cue est plus courte que sa fenêtre.
  • lipsync : quels plans, quelles répliques ignorer, un point du visage par partie.
  • prompts : remplacez char_style et panel_style pour un rendu différent (dessin animé 3D, aquarelle, photoréaliste).

Construire et réviser

  • Regroupez les corrections. Une construction complète prend des minutes. Rassemblez toutes les notes d'une session de révision (une prise de réplique, un pad, un décalage de clip), appliquez-les toutes, puis reconstruisez une seule fois.
  • Les segments sont mis en cache et suivis. build ne rend que les plans dont les entrées ont changé : un nouveau clip ou une version synchronisée labialement, un panneau promu, une réplique modifiée, un plan ou un style. build --only S05,S06 force ces plans ; --force rend tout.
  • Un plan synchronisé labialement est refait après toute modification de son clip, décalage, vitesse ou répliques : lipsync prep S05 && lipsync run S05. Jusque-là, la construction prévient qu'il est obsolète et utilise le clip brut.
  • La regénération d'un actif existant nécessite --force (sound theme --force, animate S05 --force) ; sans cela, les fichiers existants sont conservés et seuls les trous sont comblés.
  • Révisez avec des feuilles. sheet place 3 images par plan sur une page. Lorsque l'humain nomme un moment par son horodatage, extrayez et lisez ces images avant de répondre (ffmpeg -ss T -i build/<output>.mp4 -frames:v 1 f.jpg).
  • check avant chaque construction : actifs manquants, clés, skills frères et texte d'incrustation plus large que le cadre.
  • Les durées sont vérifiées à la fin de chaque construction. Un audio plus court que la vidéo fait échouer la construction au lieu de couper la fin.
  • Avant d'envoyer : references/qa-checklist.md.

Travailler avec l'humain

  • Envoyez chaque artefact avec votre outil d'envoi de fichiers et proposez de le révéler dans le Finder ; ne vous contentez pas d'afficher un chemin. La dernière étape est deliver et l'envoi de ce fichier.
  • Pour l'audio, dites quoi écouter et où ("à 0:41, le prénom de Dani vous semble-t-il correct ?"). Ne prétendez jamais l'avoir entendu.
  • La prononciation et les choix de voix leur appartiennent : fichiers A/B avec horodatages (elevenlabs-tts).
  • Avant chaque phase payante, donnez une estimation du coût ; après, le total cumulé.

Quand quelque chose semble anormal

SymptômeCorrection
Cartes ou légendes trop rapides à lireaugmentez mindur / post : ~1,2-1,5 s par courte carte, 4-6 s pour la légende finale
Un titre coupé aux deux bordscheck prévient ; réduisez la size du style ou ajoutez wrap
La musique s'arrête avant la fin d'une sectionla construction a prévenu : augmentez les seconds de la cue, sound <cue> --force ; ou divisez la section en deux cues
La fin est coupéeimpossible avec le moteur (mix de durée exacte, vérification de durée) ; dans les muxages manuels, voir deck-to-video
Une réplique est enterrée sous la musiquelevel_clips.py --report sur cette réplique, puis une prise plus forte ; baissez le volume de cette cue
Un personnage pointe ou agit avant sa répliqueclip_off au-delà, ou divisez le plan et recadrez la première partie avec clip_cam
Les bouches ne bougent pas avec les motsphase de synchronisation labiale ; si la mauvaise bouche bouge, corrigez son point du visage
Un visage plus grand dans le plan de groupeinstallez OpenCV (les visages sont égalisés), ou mirror une carte dont l'accessoire cache un voisin
L'hébreu s'affiche inversé ou non liéPillow sans RAQM : check dit comment corriger
Un nom ou un emprunt mal prononcéune entrée pronounce, A/B à l'oreille

Plus de détails, avec causes : references/troubleshooting.md.

Skills connexes

  • image-generation : cartes de personnages et panneaux ("Personnages récurrents et panneaux d'histoire").
  • elevenlabs-tts : voix, répliques d'un seul mot, prononciation, musique et effets sonores.
  • generating-video-clips : clips, feuilles de prises, synchronisation labiale.
  • deck-to-video : les mêmes leçons ffmpeg pour les vidéos de diapositives.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

shaharsha/deck-to-video

Use when turning a slide deck plus per-slide narration audio into an mp4 video — a self-playing/self-presenting deck video, "slides to video", "presentation to mp4", a shareable WhatsApp/Slack/Drive video of a narrated deck, or when a slide video needs a per-slide progress bar / countdown / slide counter. Also use when a slide video should highlight, glow or spotlight the element being talked about in time with the voice, or when narration and on-screen animation need syncing. Also use when...

shaharsha/generating-video-clips

Use when turning a still image, illustration, comic panel or character art into a short animated clip (image-to-video), choosing a video model or provider (Gemini Omni, Veo, Seedance, Kling, ElevenLabs Flows) or hitting their API gates, lip-syncing a character's mouth to existing dialogue audio (Sync, fal.ai, active speaker), or fixing a generated clip with artifacts - duplicated props, a door or a second figure appearing, hands through bodies, glowing eyes, a gesture repeated at the start,...

shaharsha/image-generation

Generate logos, icons, UI mockups, hero images, product shots, and other design assets using OpenAI GPT Image 2.5 (Sunburst, Flare) or Google Gemini (Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite). Use whenever the user asks to create, design, generate, mock up, render, or illustrate a visual asset, needs a transparent PNG, or asks for image prompt engineering. Picks the right model and quality for the job, writes a model-specific prompt following the official prompting rules of each...

Skills associés