精靈舞台 是做什麼的?
一個設定指令。接著從角色表與參考影片製作原創 2D 電影。
第一步
如果缺少 .ready,請執行以下指令並等待「精靈舞台已就緒」的訊息。
bash setup.sh
請自行執行此指令。不要給使用者一份要安裝的套件清單。此腳本可安全重複執行。
圖片重播使用系統 Python。新的語音使用腳本建立的虛擬環境。
python3 render.py
.venv/bin/python voices.py
python3 render.py
完成的範例位於 renders/long-slide.mp4。
您保留原創的部分
參考影片僅提供前提:地點、動作順序與氛圍。請使用使用者自己的角色名稱撰寫新劇本。請勿將來源標題、角色名稱、標誌、歌詞或口語台詞複製到提示詞、螢幕文字或配樂中。
內建角色的衣著與語音鎖定請參閱 characters/CAST.md。提示詞範例請見 examples/prompts.md。
製作新電影
- 將每個角色的參考圖放入
characters/目錄。每個檔案對應一位角色。正面、全身、純色背景。 - 將精靈圖生成到
sprites/{name}-{action}.png。範例渲染器使用的動作:walk、front、talking、back、sitting。精靈圖為四格並排,背景為洋紅色 (#FF00FF)。
免費精靈
預設使用免費圖像工具。這樣精靈圖片的費用為 $0。但 COSTS.md 中的代理商 token 表仍適用。
python3 scripts/free_sprites.py --provider prompt --name lina --action walk,front,back,talking,sitting
sprites/prompts/ 中的每個檔案都會指定要附上的兩張圖片以及要貼上的提示詞。提示詞範例請見 examples/prompts.md。將工具產生的圖片儲存為 sprites/{name}-{action}.png。
只有在環境中已有 GEMINI_API_KEY 時才使用 Gemini。切勿要求金鑰、列印金鑰或將金鑰寫入儲存庫。
python3 scripts/free_sprites.py --provider gemini --name lina --action walk
如果該模型超出金鑰的免費額度,請停止並改用 --provider prompt。
- 在
voices.py中撰寫原創台詞,然後執行.venv/bin/python voices.py。音高使用檔案的實際取樣率,接著將每句台詞放慢至每秒約兩個字,使嘴巴能在整句台詞期間保持張開。 - 在
render.py中將NAMES與HEIGHT指向演員陣容。建構時間軸時,確保只有一個人攀爬、只有一個人滑下。執行python3 render.py。嘴巴張開時間為duration + 0.2 秒。滑梯歡呼在滑梯開始時啟動。
保持衣物完整性的精靈規則
- 僅對強洋紅色設定色鍵:紅色 > 200、綠色 < 100、藍色 > 200。鬆散的色鍵會打穿粉紅色布料。
- 不要因為某個連通區域是臉部就將其刪除。保留約 1800 像素以上的元件。
- 走路格共用一個時間軸:大步、雙腳併攏、另一大步、雙腳併攏。
- 側面視角面向右。當角色向左走時,在渲染器中將圖像鏡像。
- 將乘坐者放在滑梯路徑上,並用滑梯近側邊緣遮住腿部。不要讓身體漂浮在滑梯上方。
語音
OpenVoice V2 會轉換音調。MeloTTS 以英式英語基礎唸出台詞。兒童的聲音比成人高且略快。請為每個人指定不同的目標音調。不要為整個演員陣容設定同一個音高。
如果某句台詞仍然短於其嘴巴視窗,請降低 MeloTTS 速度或使用低於 1 的 atempo 進行拉伸。不要為了填補空白而加快台詞。
成本與機器
1 分鐘的影片,若精靈圖已存在,約需 300k–500k 輸入 token 與 60k–100k 輸出 token;若同時製作精靈並修改一次,則約需 1.0M–1.5M 輸入與 200k–300k 輸出 token。OpenCode、Claude、Codex 與 Cursor 的美元數字,以及 OpenVoice 的 CPU 需求(8 GB RAM、Python 3.11–3.13、無需 GPU)請見 COSTS.md。
當使用者希望影片完全免費時,請在 OpenCode 上使用標記為 Free 的模型執行此技能,並使用 --provider prompt 製作精靈圖。在每日免費模型配額內,該代理商線路為 $0。同一應用程式上的付費模型則按該供應商計費。
致謝
OpenVoice 與 MeloTTS 為 MyShell 的 MIT 軟體。ffmpeg 繪製幀。PyTorch 運行語音模型。檢查點來自公開的 myshell-ai/OpenVoiceV2 模型。完整連結請見 README。