Communitygithub.com

shaharsha/producing-animated-episodes

Erstelle animierte, vertonte Episoden mit wiederkehrenden Charakteren – von Fotos, Chat-Exports oder einem Skript, inklusive Lippen-Synchronisation und Musik. Auch geeignet, um Probleme wie zu schnelle Untertitel, abgeschnittene Enden oder asynchrone Mundbewegungen zu beheben.

Was ist producing-animated-episodes?

Diese Fähigkeit erstellt vollständig animierte, vertonte und untertitelte Episoden im Hochkant-Format. Sie verwaltet das gesamte Projekt in einer zentralen `episode.json` und nutzt eine Engine (`engine/episode.py`), die Bildgenerierung, Sprachsynthese, Musik, Bild-zu-Video-Clips und Lippen-Synchronisation orchestriert. Die Engine ist das Herzstück – eigene Edit-Skripte sind nicht nötig. Entwickler arbeiten mit einem klaren Pipeline-Konzept aus 11 Phasen, von Skript und Charakter-Bibel über Panels, Sprachaufnahmen, Animation bis zur finalen Auslieferung als MP4. Jede Phase besitzt ein klares Gate (menschliche Prüfung) und eine Kostenabschätzung. Die Engine garantiert, dass die Audiolänge exakt der Videolänge entspricht (kein abgeschnittenes Ende) und warnt vor Überlappungen oder fehlenden Assets. Sie unterstützt Rechts-nach-Links-Text (Hebräisch) und erfordert Python 3, ffmpeg 7 sowie API-Keys für OpenAI, ElevenLabs, Gemini und FAL. Die Fähigkeit ist eine von mehreren Schwester-Skills (Bildgenerierung, TTS, Video-Clips) und sollte immer zusammen mit diesen verwendet werden.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Animierte Episoden produzieren

Überblick

Eine vertikale, vertonte, untertitelte, animierte Episode: Charaktergrafiken, Panels, geklonte oder Bibliotheksstimmen, Musik, Bild-zu-Video-Clips und Lippen-Synchronisation, geschnitten von einer Engine, die jeden Shot auf die tatsächliche Dialog-Audio-Länge timet. Eine episode.json enthält das gesamte Projekt, und engine/episode.py führt jede Phase daraus aus. Die Schwester-Skills übernehmen die Provider-Arbeit.

Verwende die Engine; schreibe keine eigenen Edit-Skripte. Timeline, Überlagerungen, Untertitel, Rechts-nach-Links-Text, der Mix, Dauern und Lippen-Sync-Verbindungen sind bereits in engine/. Es wurde bewiesen, indem eine echte 3,5-minütige Episode neu erstellt wurde: identische Frames, identisches Audio und die exakte Länge, die das Original verfehlt hatte. Ein handgeschriebener Edit entdeckt jeden Fehler in references/troubleshooting.md neu.

Das Audio ist der Master. Shotlängen, Untertitelzeiten und Lippen-Sync-Teile stammen aus den fertigen Dialogdateien. Schätze niemals ein Timing aus Text.

Du kannst weder sehen noch hören. Du prüfst Frames, Dauern und Zahlen. Der Mensch beurteilt Ähnlichkeit, Stimmen, Aussprache, Timing und Witze. Plane ihre Tore und halte sie ein.

Erfordert:

  • Diese Skills neben diesem: image-generation, elevenlabs-tts, generating-video-clips.
  • Python 3 mit pip install -r <dieses-skill-verzeichnis>/requirements.txt (Pillow mit RAQM gebaut, numpy; OpenCV optional).
  • ffmpeg 7 oder neuer.
  • Schriftarten: Stile und Untertitel nennen Schriftartschlüssel (bold, hblack, black im Beispiel), die fonts auf installierte .ttf-Dateien abbildet. Für Hebräisch und Latein funktionieren Rubik und Heebo (kostenlos, Google Fonts) gut; check blockiert bei einer fehlenden.
  • Schlüssel in Umgebungsvariablen, in jeder Shell gesetzt, die die Engine ausführt: OPENAI_IMAGE_API_KEY, ELEVENLABS_API_KEY, GEMINI_API_KEY, FAL_KEY.

Um die gesamte Pipeline ohne API-Aufrufe zu sehen, führe python3 <dieses-skill-verzeichnis>/engine/episode.py /tmp demo aus, dann check und build für das Demo-Projekt, das es erstellt.

Die Pipeline und ihre Tore

Jedes Tor ist ein Stopp: sende das Artefakt, frage, warte. Befehle sind python3 <dieses-skill-verzeichnis>/engine/episode.py PROJEKT <befehl>. Kosten gemessen 2026-10.

#PhaseBefehlTor (der Mensch)Kosten
1Geschichte und Skriptscript.md aus templates/script.template.mddas Skript und jedes sensible Thema-
2Charakter-Bibeltemplates/characters.template.md, dann characters in episode.json--
3Gesichter, Karten, Promotenchars face, chars card key=face.png, chars final keysÄhnlichkeit auf einem Blatt aller Karten~0,30 $ pro Charakter
4Panelspanels draft, dann panels final idsjedes Panel auf einem Blatt~0,30 $ pro Panel
5Stimmenein Sample pro Stimme (elevenlabs-tts)jede Stimme nach Gehör, vor dem BatchCent
6Zeilenlinesder Satz nach Gehör, mit Zeitstempeln; Namen A/BCent bis wenige $
7Musik und SFXsounddie MusikCent
8Animaticbuild (noch keine Clips: Standbilder mit Kamerafahrten)Tempo und Reihenfolge, vor jeder Videoausgabekostenlos
9Animationanimate, Blätter, Wiederholungen mit animate S --takes 2 + animate pick S KBewegung von Blättern~0,10 $ pro Sekunde Clip, pro Take
10Lippen-Synclipsync prep, Gesichtspunkte in der Konfiguration, lipsync runStichproben-Frames~0,13 $ pro Sekunde
11Schnitt und Auslieferungbuild, sheet, deliverder Mensch sieht sich das mp4 ankostenlos

Befehle, Eingaben, Ausgaben und Fehlerbehandlung für jede Phase: references/pipeline.md.

Das Skript schreiben

Regeln, die sich bewährt haben (Details und ein ausgearbeitetes Beispiel: references/script-writing.md):

  • Ein Hook in den ersten 3-4 Sekunden (ein Kaltstart auf das Problem), dann der Titel. Unter 30 Sekunden platziere den Titel und die Endkarte als Überlagerungen auf Story-Shots und verzichte auf die Montage.
  • Jeder wiederkehrende Charakter spricht mindestens einmal. Eine Intro-Montage, ein Wort pro Person in ihrer eigenen Stimme bei etwa 1,2-1,5 s pro Karte, ist günstig und beliebt.
  • Bildschirmtext muss lesbar sein: etwa 0,8 s plus 0,06 s pro Zeichen; 1,2-1,5 s für eine kurze Karte; 4-6 s für eine finale Bildunterschrift. Gib Karten eine mindur.
  • Pflanze Hinweise früh und zahle sie aus. Rückgriffe auf echte Running Gags einer Gruppe treffen am härtesten.
  • Sensible Themen sind die Entscheidung des Benutzers. Liste jedes private Detail auf, das du verwenden möchtest (Gesundheit, Geld, Beziehungen, Familie, Streit), frage nach jedem und verwende nur, was sie bestätigen.
  • Zeilen mit 12 oder weniger Wörtern, Zahlen in Wörtern. Bildschirmtext bleibt in normaler Schreibweise; Aussprachekorrekturen kommen in pronounce.
  • Musik und Soundeffekte, auch für Erzählungen. Mindestens ein Musikbett und ein paar Effekte (Whooshes bei Schnitten, ein Treffer bei der Enthüllung); ein stilles Bett klingt unfertig.

episode.json auf einem Bildschirm

templates/episode.example.json ist eine vollständige kleine Episode; jeder Schlüssel ist in references/config-schema.md. Die Teile, die du am häufigsten bearbeitest:

  • characters: Anzeigename, Farbe, Stimme und die Prompt-Felder aus der Charakter-Bibel.
  • speakers: Stimmen, die nie gezeichnet werden, wie ein Erzähler ({"display": null, "voice": "<id>"} gibt Untertitel ohne Namen).
  • lines: id, Sprecher, Text mit Audio-Tags; trim und level bei Ein-Wort-Zeilen.
  • shots: Bild, Zeilen ("[email protected]" überlappt die vorherige Zeile), Pads, mindur, Kamera, fx, sfx, Überlagerungen, Clip-Versatz und Geschwindigkeit.
  • music_cues: [Cue, von Shot, bis Shot, Lautstärke, Versatz]. Der Build warnt, wenn ein Cue kürzer als sein Fenster ist.
  • lipsync: welche Shots, welche Zeilen zu überspringen sind, ein Gesichtspunkt pro Teil.
  • prompts: Überschreibe char_style und panel_style für ein anderes Aussehen (3D-Cartoon, Aquarell, fotorealistisch).

Bauen und überprüfen

  • Sammle die Korrekturen. Ein vollständiger Build dauert Minuten. Sammle jede Notiz aus einer Überprüfungsrunde (ein Zeilen-Take, ein Pad, ein Clip-Versatz), wende sie alle an und baue dann einmal neu.
  • Segmente werden gecached und verfolgt. build rendert genau die Shots neu, deren Eingaben sich geändert haben: eine neue Clip- oder Lippen-Sync-Version, ein verbessertes Panel, eine bearbeitete Zeile, Shot oder Stil. build --only S05,S06 erzwingt diese Shots; --force rendert alles neu.
  • Ein Lippen-Sync-Shot wird nach jeder Änderung an seinem Clip, Versatz, Geschwindigkeit oder Zeilen wiederholt: lipsync prep S05 && lipsync run S05. Bis dahin warnt der Build, dass er veraltet ist, und verwendet den Roh-Clip.
  • Erneutes Generieren eines vorhandenen Assets benötigt --force (sound theme --force, animate S05 --force); ohne wird die vorhandene Datei behalten und nur Lücken gefüllt.
  • Überprüfung mit Blättern. sheet platziert 3 Frames pro Shot auf einer Seite. Wenn der Mensch einen Moment nach Zeit benennt, extrahiere und lies diese Frames, bevor du antwortest (ffmpeg -ss T -i build/<ausgabe>.mp4 -frames:v 1 f.jpg).
  • check vor jedem Build: fehlende Assets, Schlüssel, Schwester-Skills und Überlagerungstext, der breiter als der Rahmen ist.
  • Dauern werden am Ende jedes Builds überprüft. Audio kürzer als Video lässt den Build fehlschlagen, anstatt das Ende abzuschneiden.
  • Vor dem Senden: references/qa-checklist.md.

Mit dem Menschen arbeiten

  • Sende jedes Artefakt mit deinem Dateisende-Werkzeug und biete an, es im Finder zu öffnen; gib nicht nur einen Pfad aus. Der letzte Schritt ist deliver und das Senden dieser Datei.
  • Sage bei Audio, worauf man hören soll und wo („bei 0:41, klingt Danis Name richtig?“). Behaupete nie, du hättest es gehört.
  • Aussprache und Stimmenwahl sind ihre Sache: A/B-Dateien mit Zeitstempeln (elevenlabs-tts).
  • Gib vor jeder bezahlten Phase die Kostenschätzung; danach den laufenden Gesamtbetrag.

Wenn etwas falsch aussieht

SymptomFix
Karten oder Bildunterschriften zu schnell zum Lesenerhöhe mindur / post: ~1,2-1,5 s pro kurzer Karte, 4-6 s für die finale Bildunterschrift
Ein Titel an beiden Rändern abgeschnittencheck warnt; verkleinere die size des Stils oder füge wrap hinzu
Musik endet vor Abschnittsendeder Build warnte: erhöhe die seconds des Cues, sound <cue> --force; oder teile den Abschnitt in zwei Cues
Das Ende ist abgeschnittenkann mit der Engine nicht passieren (exakter Längenmix, Dauerprüfung); bei handgemachten Muxen siehe deck-to-video
Eine Zeile ist unter Musik begrabenlevel_clips.py --report auf dieser Zeile, dann ein festerer Take; senke die Lautstärke dieses Cues
Ein Charakter zeigt oder handelt vor seiner Zeileclip_off darüber hinwegsetzen, oder den Shot teilen und den ersten Teil mit clip_cam zuschneiden
Münder bewegen sich nicht mit den WörternLippen-Sync-Phase; wenn der falsche Mund sich bewegt, korrigiere seinen Gesichtspunkt
Ein Gesicht im Gruppenshot größerOpenCV installieren (Gesichter werden ausgeglichen), oder eine Karte mirror, deren Requisit einen Nachbarn verdeckt
Hebräisch wird spiegelverkehrt oder nicht verbunden gerendertPillow ohne RAQM: check sagt, wie man es behebt
Ein Name oder Lehnwort falsch ausgesprochenein pronounce-Eintrag, A/B nach Gehör

Mehr, mit Ursachen: references/troubleshooting.md.

Verwandte Skills

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...

Verwandte Skills