AnyToManim — 適用於有旁白 3b1b 風格影片的 CLI 工具鏈
本產品為命令列工具,而非 API 封裝。你(主機代理)負責創意階段——根據套件內附的規範文件撰寫簡報、節拍表、故事板及場景程式碼。CLI 負責所有確定性工作:TTS、時長測量、渲染、拼接。
安裝與檢查
pipx install anytomanim # 或在虛擬環境中執行:pip install -e .
anytomanim doctor # 回報缺少的依賴項與修正建議
工作流程——匯出規範並遵循執行
anytomanim export-guides ./guides # WORKFLOW/DIGEST/SCRIPT/SCENE_GUIDE + 結構定義
接著遵循 guides/WORKFLOW.md:
- 根據
DIGEST.md撰寫brief.md - 根據
SCRIPT.md(+beats-schema.json)撰寫beats.json。務必先閱讀SCRIPT.md:旁白必須連貫,而非列舉。 - 閱讀
ORCHESTRATION.md,然後根據STORYBOARD.md撰寫storyboard.json。開啟你選定卡片對應的可執行範例。執行anytomanim storyboard storyboard.json --beats beats.json並修正錯誤。 anytomanim tts --beats beats.json—— 合成每個節拍,並將audio_file與實際audio_seconds寫回(重新執行後僅重新處理有變更的節拍)- 根據
SCENE_GUIDE.md撰寫scenes/*.py(使用NarratedScene+MiMoService(beats_file=...),搭配with self.voiceover(beat="b01") as tr)。遵循故事板;從對應的recipes/開始。 anytomanim render scenes/X.py --quality ql—— 出錯時修正並重試anytomanim preview <mp4>—— 檢閱 sheet.png 與每個節點的報告(重疊、超時、凍結節拍、內容過少、空白頻段、固定標頭、故事板未提及的階段變更);修正並重新渲染直到乾淨為止- 使用
--quality qh渲染,anytomanim assemble a.mp4 b.mp4 -o final.mp4,anytomanim subtitles beats.json --mux final.mp4
無需金鑰/無成本迭代:ANYTOMANIM_TTS=draft(使用本機語音)。
anytomanim run "<topic>" 也存在——一個嵌入式 LLM 參考驅動程式,用於自動化批次評估(需要 LLM API 金鑰;互動式代理應改用指南驅動流程)。
合約
beats.json是介面——公開的中間表示(旁白 + 視覺 + audio_seconds)。- 音訊優先同步:合成 → 測量 → 每個
run_time源自tr.duration,渲染時會精確重播這些 wav 檔案。絕不發明時長。 - 乾淨的渲染不代表完成——每次都要查看預覽表。
- 連續性優先。在一個物體離開前,先問它是否能變成下一個物體。淡出並重繪是最後的手段。
- 盡可能繪製關係,而不是將其寫成標籤。
- 語音:
--voice baihua|moli|milo;透過assets/voice/<name>.mp3+ voices.json 條目複製自己的語音。支援中文 + 英文。 - 請參閱儲存庫中的
examples/以獲取完整的端到端運行範例。