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,blackim Beispiel), diefontsauf installierte.ttf-Dateien abbildet. Für Hebräisch und Latein funktionieren Rubik und Heebo (kostenlos, Google Fonts) gut;checkblockiert 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.
| # | Phase | Befehl | Tor (der Mensch) | Kosten |
|---|---|---|---|---|
| 1 | Geschichte und Skript | script.md aus templates/script.template.md | das Skript und jedes sensible Thema | - |
| 2 | Charakter-Bibel | templates/characters.template.md, dann characters in episode.json | - | - |
| 3 | Gesichter, Karten, Promoten | chars face, chars card key=face.png, chars final keys | Ähnlichkeit auf einem Blatt aller Karten | ~0,30 $ pro Charakter |
| 4 | Panels | panels draft, dann panels final ids | jedes Panel auf einem Blatt | ~0,30 $ pro Panel |
| 5 | Stimmen | ein Sample pro Stimme (elevenlabs-tts) | jede Stimme nach Gehör, vor dem Batch | Cent |
| 6 | Zeilen | lines | der Satz nach Gehör, mit Zeitstempeln; Namen A/B | Cent bis wenige $ |
| 7 | Musik und SFX | sound | die Musik | Cent |
| 8 | Animatic | build (noch keine Clips: Standbilder mit Kamerafahrten) | Tempo und Reihenfolge, vor jeder Videoausgabe | kostenlos |
| 9 | Animation | animate, Blätter, Wiederholungen mit animate S --takes 2 + animate pick S K | Bewegung von Blättern | ~0,10 $ pro Sekunde Clip, pro Take |
| 10 | Lippen-Sync | lipsync prep, Gesichtspunkte in der Konfiguration, lipsync run | Stichproben-Frames | ~0,13 $ pro Sekunde |
| 11 | Schnitt und Auslieferung | build, sheet, deliver | der Mensch sieht sich das mp4 an | kostenlos |
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;trimundlevelbei 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: Überschreibechar_styleundpanel_stylefü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.
buildrendert 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,S06erzwingt diese Shots;--forcerendert 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.
sheetplatziert 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). checkvor 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
deliverund 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
| Symptom | Fix |
|---|---|
| Karten oder Bildunterschriften zu schnell zum Lesen | erhö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 abgeschnitten | check warnt; verkleinere die size des Stils oder füge wrap hinzu |
| Musik endet vor Abschnittsende | der Build warnte: erhöhe die seconds des Cues, sound <cue> --force; oder teile den Abschnitt in zwei Cues |
| Das Ende ist abgeschnitten | kann mit der Engine nicht passieren (exakter Längenmix, Dauerprüfung); bei handgemachten Muxen siehe deck-to-video |
| Eine Zeile ist unter Musik begraben | level_clips.py --report auf dieser Zeile, dann ein festerer Take; senke die Lautstärke dieses Cues |
| Ein Charakter zeigt oder handelt vor seiner Zeile | clip_off darüber hinwegsetzen, oder den Shot teilen und den ersten Teil mit clip_cam zuschneiden |
| Münder bewegen sich nicht mit den Wörtern | Lippen-Sync-Phase; wenn der falsche Mund sich bewegt, korrigiere seinen Gesichtspunkt |
| Ein Gesicht im Gruppenshot größer | OpenCV installieren (Gesichter werden ausgeglichen), oder eine Karte mirror, deren Requisit einen Nachbarn verdeckt |
| Hebräisch wird spiegelverkehrt oder nicht verbunden gerendert | Pillow ohne RAQM: check sagt, wie man es behebt |
| Ein Name oder Lehnwort falsch ausgesprochen | ein pronounce-Eintrag, A/B nach Gehör |
Mehr, mit Ursachen: references/troubleshooting.md.
Verwandte Skills
- image-generation: Charakterkarten und Panels („Wiederkehrende Charaktere und Story-Panels“).
- elevenlabs-tts: Stimmen, Ein-Wort-Zeilen, Aussprache, Musik und SFX.
- generating-video-clips: Clips, Take-Blätter, Lippen-Sync.
- deck-to-video: die gleichen ffmpeg-Lektionen für Folienvideos.