風格技能:cordel
此技能產出影片時始終維持相同的外觀與風格。風格定義於 references/estilo.md(這是聖經)。內容則來自使用者請求。切勿複製啟發此風格之原始影片中的角色、標誌或文字。
SKILL_DIR 指此檔案所在的資料夾。所有腳本位於 SKILL_DIR/scripts/,並以 python3 執行。
在工作目錄(預設為目前資料夾)的影片專案資料夾中工作。所有輸出都會放入該資料夾的 saida/ 與 final/ 目錄。
事前準備
- 閱讀
references/estilo.md、references/regras-storyboard.md、references/regras-video.md,以及(若存在)references/licoes.md(記錄此風格曾發生過的問題)。 - 檢查工具是否可用:
ffmpeg -version、python3 -c "import PIL"。若缺少任何工具,請告知使用者需要安裝什麼並停止執行。
步驟 1 — 取得五項參數(以自由文字詢問缺少的項目,並建議預設值)
| 參數 | 選項 | 預設值 |
|---|---|---|
| 主題 | 一個句子 | — (必填) |
| 格式 | 9:16 · 16:9 · 1:1 | 9:16 |
| 時長 | 秒;會自動調整為 2.5 的倍數 | 15 |
| 解析度 | 例如:1080x1920 | 根據格式決定(9:16 → 1080x1920,16:9 → 1920x1080,1:1 → 1080x1080) |
| 引擎 | local(免費、經過測試)· kling · seedance(僅產生提示詞,未經測試) | local |
步驟 2 — 場景規劃
python3 SKILL_DIR/scripts/cenas.py --tema "<主題>" --duracao <s> --formato <f> --resolucao <WxH> --motor <m>
顯示場景數量(每個 2.5 秒)與分鏡數量(最多每 6 個場景一個分鏡)。若有通知時長已被標準化,請告知使用者。
步驟 3 — 腳本(由你撰寫)
依據 references/regras-video.md 撰寫 roteiro.json(每個場景最多 6 個單詞的台詞、每個場景一個大關鍵字、第一個場景以「你」的視角開場,從痛苦或渴望切入):
{"personagem": "在多個場景中出現的角色,描述必須一致(服裝、顏色、配件)",
"cenas": [{"texto_tela": "關鍵字", "fala": "簡短口語句子", "acao": "可視動作", "camera": "zoom_in"}]}
personagem 會用於每個分鏡的生成請求(若不提供,每個分鏡可能會產生不同的人物)。接著執行:
python3 SKILL_DIR/scripts/cenas.py ... --roteiro roteiro.json # 相同命令加上腳本
步驟 4 — 風格一致的分鏡
根據模板 + 聖經 + 規劃 + 角色產生每個分鏡的請求:
python3 SKILL_DIR/scripts/pedido_storyboard.py # → saida/storyboards/pedido-storyboard-N.txt
將每個請求(不經改寫)發送給你的圖片生成工具(Codex:image_gen;Claude Code:使用你擁有的圖片工具,或請使用者生成並儲存)。將圖片儲存為 saida/storyboards/storyboard-N.png。若要修改提示,請修改模板(modelos/prompt-storyboard.md)或聖經,而非生成的文字。
- 一次生成一個。從第二個開始,請將前一個分鏡作為參考圖片傳遞(保持連續性)。
- 開啟圖片並對照
regras-storyboard.md的檢查清單驗證(格線正確、單詞逐字無誤、風格一致、連續性)。放大文字以仔細檢查。若品質不佳,請重做(最多 2 次)並記錄在references/licoes.md中。
步驟 5 — 裁剪
python3 SKILL_DIR/scripts/recortar.py --plano saida/plano.json # --respiro 0.08(預設)可保護縮放時的文字
步驟 6 — 動畫製作
python3 SKILL_DIR/scripts/animar.py # 本地引擎:慢速縮放/平移 + 淡出溶解
python3 SKILL_DIR/scripts/animar.py --motor kling --so-prompts # 未測試:僅產生指令
python3 SKILL_DIR/scripts/animar.py --motor seedance --so-prompts # 未測試:僅產生提示詞
使用 kling/seedance 時,由使用者在其帳號中執行;之後剪輯片段需放回 saida/clipes/。
步驟 7 — 旁白(單一聲音)
python3 SKILL_DIR/scripts/narrar.py --arquivo voz.wav # 使用者已錄製完整旁白
python3 SKILL_DIR/scripts/narrar.py --falas-dir falas/ # 使用者已為每個場景錄製單獨音檔
python3 SKILL_DIR/scripts/narrar.py --comando '<tts> {texto} {saida}' # 任何本地 TTS
python3 SKILL_DIR/scripts/narrar.py --inemavox --inemavox-dir <pasta> --ref <voz.wav>
python3 SKILL_DIR/scripts/narrar.py --edge # 未測試(線上服務)
使用 TTS 時,narrar.py 會裁剪語音結尾偶爾出現的多餘尾音,並針對超過單詞數限制的句子重新生成(--tentativas 3)。若提示某句台詞超過場景長度,請在腳本中縮短台詞並重新執行。若可能,請使用本地轉錄工具驗證旁白是否與腳本一致;若有問題的台詞,請執行 narrar.py ... --refazer N 僅重新生成第 N 個場景。
步驟 8 — 組合與加入獨家配樂
python3 SKILL_DIR/scripts/montar.py [--trilha assets/trilha/x.mp3] [--volume 0.5]
若 assets/trilha/ 中無配樂,請詢問使用者要使用哪首音樂(自行提供或取得授權)。若有多首,請使用者選擇。
步驟 9 — 驗證(必做)
python3 SKILL_DIR/scripts/validar.py --duracao <s> --resolucao <WxH>
python3 SKILL_DIR/scripts/folha.py # final/folha-final.jpg:每個場景的關鍵幀
只有在 validar.py 輸出 PASSOU 且你親自檢查 final/folha-final.jpg(文字清晰、無錯字、所有面板風格一致)後,才能說 「完成」 。若驗證失敗,請指出缺少的內容。
步驟 10 — 改善技能
每次產出影片後,請在 references/licoes.md 中記錄(每項一行)出錯的項目以及可以避免該錯誤的規則。若該規則屬於風格或分鏡規則,請同時修改 estilo.md / regras-storyboard.md,而不只是修改提示詞。