AnyToManim — Chaîne d'outils CLI pour vidéos narrées de type 3b1b
Le produit est une CLI, pas une API. Vous (l'agent hôte) réalisez les étapes créatives — rédigez le brief, la feuille de rythme, le storyboard, le code des scènes — guidé par les fichiers de spécifications fournis dans le package. La CLI gère tout ce qui est déterministe : synthèse vocale, mesure de durée, rendu, concaténation.
Installation & vérification
pipx install anytomanim # ou : pip install -e . dans un environnement virtuel
anytomanim doctor # signale les dépendances manquantes + des conseils de correction
Flux de travail — exporter les guides, les suivre
anytomanim export-guides ./guides # WORKFLOW/DIGEST/SCRIPT/SCENE_GUIDE + schémas
Ensuite, suivez guides/WORKFLOW.md :
- Rédigez
brief.mdselonDIGEST.md - Rédigez
beats.jsonselonSCRIPT.md(+beats-schema.json). LisezSCRIPT.mdd'abord : la narration doit s'enchaîner, pas faire une liste. - Lisez
ORCHESTRATION.md, puis rédigezstoryboard.jsonselonSTORYBOARD.md. Ouvrez les recettes exécutables pour les cartes que vous choisissez. Exécutezanytomanim storyboard storyboard.json --beats beats.jsonet corrigez. anytomanim tts --beats beats.json— synthétise chaque segment, écritaudio_file+audio_secondsréels (réexécution après modifications : seuls les segments modifiés)- Écrivez les fichiers
scenes/*.pyselonSCENE_GUIDE.md(NarratedScene+MiMoService(beats_file=...), avecwith self.voiceover(beat="b01") as tr). Suivez le storyboard ; partez desrecipes/correspondantes. anytomanim render scenes/X.py --quality ql— corrigez & réessayez en cas d'erreuranytomanim preview <mp4>— lisez sheet.png et le rapport par segment (chevauchements, dépassements de durée, segments figés, contenu petit, bandes vides, en-tête fixe, changements d'étape non mentionnés dans le storyboard) ; corrigez et relancez le rendu jusqu'à propreté- Rendu
--quality qh,anytomanim assemble a.mp4 b.mp4 -o final.mp4,anytomanim subtitles beats.json --mux final.mp4
Itérez sans clé / sans coût : ANYTOMANIM_TTS=draft (voix locale).
anytomanim run "<sujet>" existe aussi — un pilote de référence avec LLM intégré pour
évaluation par lots automatisée (nécessite une clé API LLM ; les agents interactifs doivent
utiliser le flux guidé à la place).
Contrats
beats.jsonest LA structure d'interface — IR publique (narration + visuel + audio_seconds).- Synchronisation audio d'abord : synthétisez → mesurez → chaque
run_timedécoule detr.duration, et le rendu rejoue exactement ces fichiers wav. N'inventez jamais de durées. - Un rendu propre n'est pas terminé — examinez la feuille de prévisualisation à chaque fois.
- La continuité vient en premier. Avant qu'un objet ne disparaisse, demandez-vous s'il peut devenir l'élément suivant. La disparition progressive et le redessin sont le dernier recours.
- Dessinez la relation lorsque c'est possible, plutôt que de l'écrire comme une étiquette.
- Voix :
--voice baihua|moli|milo; clonez votre propre voix viaassets/voice/<nom>.mp3+ entrée dans voices.json. Zh + en pris en charge. - Voir
examples/dans le dépôt pour des exemples complets de bout en bout.