AnyToManim — CLI-Toolchain für narrativ gesteuerte 3b1b-Videos
Das Produkt ist ein CLI, kein API-Helfer. Du (der Host-Agent) übernimmst die kreativen Schritte – schreibst das Briefing, das Beat-Sheet, das Storyboard, den Szenencode – geleitet von den Spezifikationsdateien, die im Paket mitgeliefert werden. Das CLI erledigt alles Deterministische: TTS, Dauermessung, Rendern, Zusammenfügen.
Installation & Prüfung
pipx install anytomanim # oder: pip install -e . in einer venv
anytomanim doctor # meldet fehlende Abhängigkeiten + Reparaturhinweise
Arbeitsablauf — Spezifikation exportieren, befolgen
anytomanim export-guides ./guides # WORKFLOW/DIGEST/SCRIPT/SCENE_GUIDE + Schema
Dann folge guides/WORKFLOW.md:
- Schreibe
brief.mdgemäßDIGEST.md - Schreibe
beats.jsongemäßSCRIPT.md(+beats-schema.json). Lies zuerstSCRIPT.md: Die Erzählung muss verknüpft sein, nicht aufgelistet. - Lies
ORCHESTRATION.md, dann schreibestoryboard.jsongemäßSTORYBOARD.md. Öffne die ausführbaren Rezepte für die Karten, die du auswählst. Führeanytomanim storyboard storyboard.json --beats beats.jsonaus und korrigiere. anytomanim tts --beats beats.json– synthetisiert jeden Beat, schreibtaudio_file+ echteaudio_secondszurück (erneutes Ausführen nach Bearbeitungen: nur geänderte Beats)- Schreibe
scenes/*.pygemäßSCENE_GUIDE.md(NarratedScene+MiMoService(beats_file=...),with self.voiceover(beat="b01") as tr). Folge dem Storyboard; beginne mit den passendenrecipes/. anytomanim render scenes/X.py --quality ql– bei Fehler korrigieren und wiederholenanytomanim preview <mp4>– lies sheet.png und den beatweisen Bericht (Überlappungen, Überläufe, eingefrorene Beats, kleiner Inhalt, leere Bänder, ein fixierter Header, Bühnenszenenwechsel, die das Storyboard nicht erwähnt); korrigiere und rendere erneut, bis alles sauber ist- Rendere
--quality qh,anytomanim assemble a.mp4 b.mp4 -o final.mp4,anytomanim subtitles beats.json --mux final.mp4
Iteriere ohne Schlüssel / ohne Kosten: ANYTOMANIM_TTS=draft (lokale Stimme).
anytomanim run "<Thema>" existiert ebenfalls – ein eingebauter LLM-Referenztreiber für automatisierte Batch-Auswertung (erfordert einen LLM-API-Schlüssel; interaktive Agenten sollten stattdessen den guide-gesteuerten Ablauf verwenden).
Verträge
beats.jsonist DIE Schnittstelle – öffentliche IR (Narration + Visual + audio_seconds).- Audio-First-Sync: synthetisieren → messen → jede
run_timeleitet sich austr.durationab, und das Rendern spielt genau dieselben WAVs ab. Erfinde niemals Dauern. - Ein sauberes Rendern ist nicht fertig – sieh dir jedes Mal das Vorschaublatt an.
- Kontinuität hat Vorrang. Bevor ein Objekt verschwindet, frage, ob es zum nächsten werden kann. Ausblenden und neuzeichnen ist das letzte Mittel.
- Zeichne die Beziehung, wenn du kannst, anstatt sie als Label zu schreiben.
- Stimmen:
--voice baihua|moli|milo; klone deine eigene Stimme überassets/voice/<name>.mp3+ voices.json-Eintrag. zh + en werden unterstützt. - Siehe
examples/im Repository für vollständige End-to-End-Läufe.