Communitygithub.com

AnyToManim — CLI toolchain para videos narrados estilo 3b1b

Genera videos explicativos narrados al estilo 3Blue1Brown a partir de cualquier tema, texto, artículo o repositorio, mediante la herramienta CLI `anytomanim`. El pipeline se basa en audio primero: la narración impulsa la sincronización de la animación, logrando una sincronía precisa entre voz y visuales.

¿Qué es AnyToManim — CLI toolchain para videos narrados estilo 3b1b?

AnyToManim es una herramienta de línea de comandos (CLI) que permite a agentes de IA (como Claude Code, Cursor o Codex) producir videos explicativos narrados al estilo 3Blue1Brown. A diferencia de un simple envoltorio de API, el agente anfitrión realiza las etapas creativas: redactar el resumen, la hoja de ritmos, el guion gráfico y el código de escena, guiado por los archivos de especificación que incluye el paquete. La CLI se encarga de las tareas deterministas: síntesis de voz (TTS), medición de duración, renderizado y concatenación. El flujo de trabajo sigue un proceso estructurado: exportar guías, escribir el resumen y los ritmos, generar la narración, crear las escenas con `NarratedScene`, renderizar en baja calidad para iteración rápida, previsualizar para detectar solapamientos o problemas, y finalmente renderizar en alta calidad para ensamblar el video final. La sincronización es audio-primera: la duración de cada animación se deriva de la duración real del audio, garantizando que voz y visuales estén perfectamente sincronizados. Admite voces en chino e inglés, clonación de voz personalizada, y un modo de borrador sin API key para iterar sin costo.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/RayMorTwinkle/AnyToManim/tree/HEAD/skills/anytomanim

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace AnyToManim — CLI toolchain para videos narrados estilo 3b1b?

El producto es una CLI, no un envoltorio de API. Tú (el agente anfitrión) realizas las etapas creativas: redactar el resumen, la hoja de ritmos, el guion gráfico, el código de escena — guiado por los archivos de especificación incluidos en el paquete. La CLI hace todo lo determinista: TTS, medición de duración, renderizado, concatenación.

Instalación y verificación

pipx install anytomanim          # o: pip install -e . en un venv
anytomanim doctor                # reporta dependencias faltantes + consejos para arreglar

Flujo de trabajo — exporta la especificación, síguela

anytomanim export-guides ./guides   # WORKFLOW/DIGEST/SCRIPT/SCENE_GUIDE + esquema

Luego sigue guides/WORKFLOW.md:

  1. Escribe brief.md según DIGEST.md
  2. Escribe beats.json según SCRIPT.md (+ beats-schema.json). Lee SCRIPT.md primero: la narración debe encadenarse, no listarse.
  3. Lee ORCHESTRATION.md, luego escribe storyboard.json según STORYBOARD.md. Abre las recetas ejecutables para las tarjetas que elijas. Ejecuta anytomanim storyboard storyboard.json --beats beats.json y corrígelo.
  4. anytomanim tts --beats beats.json — sintetiza cada ritmo, escribe audio_file + audio_seconds real (vuelve a ejecutar tras ediciones: solo los ritmos modificados)
  5. Escribe scenes/*.py según SCENE_GUIDE.md (NarratedScene + MiMoService(beats_file=...), with self.voiceover(beat="b01") as tr). Sigue el guion gráfico; empieza desde las recipes/ correspondientes.
  6. anytomanim render scenes/X.py --quality ql — corrige y reintenta si hay error
  7. anytomanim preview <mp4> — LEE sheet.png y el informe por ritmo (solapamientos, excesos de duración, ritmos congelados, contenido pequeño, bandas vacías, encabezado fijo, cambios de escenario que el guion gráfico no menciona); corrige y vuelve a renderizar hasta que esté limpio
  8. Renderiza --quality qh, anytomanim assemble a.mp4 b.mp4 -o final.mp4, anytomanim subtitles beats.json --mux final.mp4

Itera sin clave / sin costo: ANYTOMANIM_TTS=draft (voz local).

anytomanim run "<tema>" también existe — un controlador de referencia con LLM embebido para evaluación automatizada por lotes (requiere una clave API de LLM; los agentes interactivos deben usar el flujo guiado en su lugar).

Contratos

  • beats.json es LA interfaz — IR pública (narración + visual + audio_seconds).
  • Sincronización audio-primera: sintetizar → medir → cada run_time se deriva de tr.duration, y el renderizado reproduce exactamente esos wavs. Nunca inventes duraciones.
  • Un renderizado limpio no está terminado — mira la hoja de previsualización cada vez.
  • La continuidad es lo primero. Antes de que un objeto desaparezca, pregúntate si puede convertirse en el siguiente elemento. Fundir y redibujar es el último recurso.
  • Dibuja la relación cuando puedas, en lugar de escribirla como una etiqueta.
  • Voces: --voice baihua|moli|milo; clona tu propia voz mediante assets/voice/<nombre>.mp3 + entrada en voices.json. Se admiten zh + en.
  • Consulta examples/ en el repositorio para ver ejecuciones completas de extremo a extremo.

Skills relacionados