Communitygithub.com

akokbaba195-bot/anime-reels

Erstelle einen Anime-Episode (Original-Charaktere, per Code gezeichnet, lippensynchron zu Sprach-MP3s, wie die Zero Se Freelance-Serie) aus einem Skript plus einer Sprach-MP3 pro Zeile.

Was ist anime-reels?

Dieses Skill ermöglicht die Erstellung vollständiger, im Anime-Stil gezeichneter Episoden, bei denen jeder Rahmen programmatisch mit HTML Canvas und headless Chrome gerendert wird. Es liest ein Skript und zugehörige Sprach-MP3s ein, führt eine erzwungene Ausrichtung (forced alignment) mit torchaudio MMS_FA durch, um jedes Wort zeitlich exakt zu platzieren, und synchronisiert die Mundbewegungen der Charaktere. Es werden sowohl ein 9:16-Format für Reels als auch ein 16:9-Format für YouTube ausgegeben, sowie eine WhatsApp-kompatible 720p-Kopie unter 20 MB. Vor dem finalen Rendern wird ein Kontaktbogen mit Standbildern erstellt, der die Zustimmung des Benutzers einholt. Das Skill ist für die Verwendung mit Claude Code, Cursor oder anderen AI-Agenten konzipiert, die Node.js-, Python- und ffmpeg-Befehle ausführen können.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add akokbaba195-bot/anime-reels

In Ihrer bevorzugten KI fragen

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

Dokumentation

anime-reel

Eingabe: ein Skript + eine Sprach-MP3 pro Zeile (beides wird vom Benutzer angehängt). Ausgabe: ein 9:16-Reel und eine 16:9-Kopie, jeweils mit der Original-Audio, plus eine 720p-Kopie unter 20 MB für WhatsApp.

Harte Regeln (bei jedem Durchlauf)

  • Alles in Code zeichnen: HTML Canvas, frame-für-frame in headless Chrome gerendert, mit ffmpeg codiert. Kein Stock-Filmmaterial, keine Bildgeneratoren. Verwende engine/ als Basis; erweitere es, ersetze es nicht, damit das Aussehen jedes Mal gleich bleibt.
  • Jedes Wort mit erzwungener Ausrichtung timen (torchaudio MMS_FA via scripts/align.py). Nie Timings raten. Schlägt die Ausrichtung für eine Zeile fehl, anhalten und dem Benutzer den Grund nennen; nicht auf gleichmäßigen Abstand zurückfallen.
  • Vor dem vollständigen Rendern einen Kontaktbogen mit Standbildern zeigen und auf Freigabe warten.
  • Vor dem Überschreiben einer vorhandenen Datei nachfragen. encode.sh weigert sich zu überschreiben und beendet mit Exit-Code 2; dies dem Benutzer mitteilen.
  • Die Original-Audio im finalen MP4 unverändert lassen (Sprachzeilen werden nur auf einer Timeline platziert, niemals neu verarbeitet). Keine Hintergrundmusik, es sei denn, der Benutzer wünscht sie.

Methode

  1. Einrichtung. Führe bash scripts/check_setup.sh aus (ffmpeg, Node, puppeteer, torch/torchaudio, uroman). Behebe fehlende Komponenten, bevor du fortfährst. Führe bash scripts/sfx.sh <project>/sfx aus, um Treffer-/Whoosh-/Aufprall-/Pop-Sounds mit ffmpeg zu synthetisieren.
  2. Skript in Aufnahmen (Shots) aufteilen. Eine Aufnahme pro Sprachzeile. Schreibe für jede: id, speaker, text (exakt das, was die MP3 sagt), audio-Pfad, place (rooftop, office, street, bedroom, sky, oder füge einen neuen drawPlace-Zweig hinzu), camera (static|push|pull|pan + amount), cast, slots (left/center/right) und fx. Speichere als shots.json (Schema in scripts/build_timeline.py). Zeige die Aufnahmeliste und lass den Benutzer sie korrigieren, falls sie mehrdeutig ist.
  3. Charaktere. Definiere jeden in characters (name, skin, hair, hairStyle spiky|bob|long|short, eye, outfit, accent, color = die Farbe der Beschriftung dieses Charakters). Sie müssen originell sein, niemals aus bestehenden Animes kopiert. Anime-Look: große Augen mit Glanzlichtern, dicke saubere Konturen, flache Farbe plus genau eine Schattierung. Rendere das Charakterblatt und behalte das JSON als einzige Quelle der Wahrheit, damit Charaktere zwischen den Aufnahmen nie wechseln: node scripts/render_frames.mjs sheet timeline.json landscape out/character_sheet.png
  4. Ausrichten und Lippen-Synchronisation. python3 scripts/build_timeline.py shots.json timeline.json work führt MMS_FA pro Zeile aus (Wort-Timings) und erstellt für jeden Charakter die Mund-Öffnungs-Kurve aus der Lautstärke dieser Sprachzeile (mouth.py). Blinzeln und Leerlauf-Bewegungen sind in die Engine eingebaut. Bei nicht-englischen Zeilen romanisiert align.py mit uroman, während die Originalschreibweise auf dem Bildschirm erhalten bleibt.
  5. Anime-Tricks bei Schlüsselzeilen (zu fx hinzufügen, Zeiten in Sekunden ab Aufnahmebeginn): speedlines bei Enthüllungen und Entschlossenheit, impact (weiße/schwarze Blitz-Frames, mit sfx: "impact") bei der wichtigsten Zeile, shake bei Treffern, chibi (+ who, sfx: "pop") bei komischen Reaktionen. Sparsam verwenden: ungefähr ein Trick pro 2-3 Aufnahmen, damit sie noch wirken.
  6. Untertitel und Ton. 2-3-Wort-Untertitel werden bereits von der Engine verarbeitet, wobei das gesprochene Wort in der Farbe des Sprechers und der Rest in Weiß erscheint. Soundeffekte liegen auf denselben Cues wie die visuellen Treffer (via fx[].sfx). Mische mit python3 scripts/build_audio.py timeline.json work/audio.wav.
  7. Kontaktbogen, dann Freigabe. Wähle ~12 Zeitpunkte, die über die Episode verteilt sind, inklusive jedes Tricks: node scripts/render_frames.mjs stills timeline.json portrait work/stills 0.5,2.0,... bash scripts/contact_sheet.sh work/stills out/contact_sheet.png Zeige out/contact_sheet.png und halte an. Rendere das vollständige Video erst, wenn der Benutzer es freigibt.
  8. Rendern nach Freigabe, für jede Ausrichtung (portrait = 1080x1920, landscape = 1920x1080, 30 fps): node scripts/render_frames.mjs video timeline.json portrait work/reel_silent.mp4 bash scripts/encode.sh work/reel_silent.mp4 work/audio.wav out/<name>_9x16 Wiederhole für Querformat mit out/<name>_16x9. encode.sh muxed AAC 256k Audio und schreibt die _720p.mp4-Kopie (Ziel ~17 MB, immer unter 20 MB). Überprüfe die Größen mit ls -lh und gib sie aus.

Render-Einstellungen

  • 9:16: 1080x1920, 30 fps, H.264 yuv420p, CRF 16, AAC 256k, faststart. 16:9: 1920x1080, gleiche Einstellungen.
  • WhatsApp-Kopie: 720p (720x1280 oder 1280x720), Bitrate basierend auf der Dauer berechnet, um unter 20 MB zu bleiben.
  • Untertitel sitzen bei ~68% Höhe im 9:16-Format (frei von den oberen 250 px und unteren 420 px App-UI) und ~86% im 16:9-Format.

Dateien in diesem Skill

  • engine/engine.js, engine/index.html: Canvas-Engine (Charaktere, Orte, Speedlines, Impact-Frames, Shake, Chibi, Untertitel, Badge).
  • scripts/: check_setup.sh, sfx.sh, align.py, mouth.py, build_timeline.py, build_audio.py, render_frames.mjs, contact_sheet.sh, encode.sh.

Verwandte Skills