Communitygithub.com

AI短劇製作

將故事點子、劇本或小說章節轉化為完整的短劇集——角色在不同鏡頭間保持一致,可選對話或旁白,自動生成字幕,最終輸出一個MP4檔案。

AI短劇製作 是什麼?

這個技能讓開發者或創作者能將文字故事(如點子、劇本或小說章節)自動轉化為一部完整的短劇影片。它透過一個統一的腳本 `scripts/drama.mjs` 來管理整個流程:先估算成本,然後生成角色與場景的參考圖,接著為每個鏡頭生成影片,最後合成為最終的 MP4 與 SRT 字幕檔。關鍵特色是能透過 Seedance 2.0 的參考圖功能,讓同一角色在不同鏡頭中保持外觀一致。支援對話模式(角色嘴型同步)與旁白模式(適合漫劇或小說改編),並提供多種影片模型與解析度選項,以平衡品質與成本。它透過 apimodels.app 的單一 API 金鑰運作,並內建任務中斷恢復與錯誤處理機制,確保不重複付費。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/stimQQ/ai-short-drama/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

AI 短劇製作

故事輸入,影片輸出。你將故事寫進一個 project.json(角色、場景、鏡頭)。scripts/drama.mjs 會處理所有需要花錢或容易出錯的部分:

project.json ─ 估算 ─ 角色 ─ (語音) ─ 鏡頭 ─ 合成 ─▶ episode.mp4 + .srt
              免費       角色參考   旁白模式  Seedance  ffmpeg:正規化、
              驗證       圖,每個   專用     渲染      混合旁白、
              + 價格     角色與場景             每個鏡頭  合併、字幕
                         各一張

如何讓角色保持一致:每個角色會獲得一張參考圖(正面肖像 + 前/側/背視圖)。每個鏡頭會將其中角色的參考圖傳遞給 Seedance 2.0 作為參考,並在提示詞中說明哪張圖對應誰。

規則

  1. 永遠執行 scripts/drama.mjs。不要用 curl 或 fetch 直接呼叫 API。 這個腳本會儲存每個任務 ID,因此當崩潰或超時發生時,可以恢復相同任務,避免重複付費。手動呼叫會失去這個優勢。
  2. 在撰寫 project.json 之前,請先閱讀 references/project-schema.md 和 references/shot-writing.md。 鏡頭撰寫指南決定了該集看起來像一部連貫的電影,還是十二個不相關的片段。
  3. 先執行 estimate 並向使用者顯示結果:鏡頭列表、總長度、模型和價格表。在進行 cast / shots 之前,請等待使用者同意。腳本會在沒有 --yes 的情況下拒絕任何超過 1 美元的步驟。只有當使用者同意該金額後,才能傳入 --yes。
  4. 在渲染鏡頭之前,先向使用者顯示角色參考圖。 每張角色參考圖約 0.02 美元;每個鏡頭的費用是它的 10–100 倍。如果臉部、服裝或風格有誤,請修正 look 並立即執行 cast --redo <id>。每個鏡頭都會繼承修正後的版本。
  5. 對於新專案,先渲染一個鏡頭 (shots --only s1)。和使用者一起檢查,然後再渲染其餘鏡頭。只有當專案非常短(三個或更少鏡頭)或使用者要求時,才跳過此步驟。
  6. 切勿發明模型名稱。 只使用下表所列的模型。如果使用者要求其他模型,請說明此技能不支援。
  7. 失敗的任務不會被收費。 當任務失敗時,直接說明這一點,解釋原因(腳本會印出原因和下一步),並提供重試選項。
  8. 不要提及上游供應商或路由。 只需提及此檔案中的模型名稱,不要提及背後的任何東西。
  9. 未經同意,不得使用真實、可辨識的人物,也不得對任何真實人物進行色情、仇恨或誹謗的內容。拒絕這類請求。

工作流程

S=/absolute/path/to/this/skill/scripts/drama.mjs     # 你知道你的基礎目錄;使用它
node $S check                                         # 檢查金鑰、餘額、ffmpeg
mkdir -p dramas/my-episode                            # 每個劇集一個資料夾,位於使用者工作區
# 撰寫 dramas/my-episode/project.json               (參考 references/project-schema.md)
node $S estimate dramas/my-episode/project.json --prompts
node $S cast     dramas/my-episode/project.json      # 然後在 cast/ 目錄中顯示圖片
node $S voice    dramas/my-episode/project.json      # 僅限旁白模式
node $S shots    dramas/my-episode/project.json --only s1   # 檢查一個,然後:
node $S shots    dramas/my-episode/project.json
node $S assemble dramas/my-episode/project.json --burn-subs
node $S status   dramas/my-episode/project.json      # 任何時候:進度、花費、剩餘工作
  • 渲染是慢速的。 一個鏡頭通常需要 2-8 分鐘,而鏡頭一次同時執行 3 個。在執行 shots 之前,告知使用者大約需要多長時間。不要讓他們看著寂靜的終端機。
  • 任何命令都可以安全地重新執行。 已完成的工作會被跳過。正在進行中的任務會從中斷處繼續。只有使用 --retry-failed 才會重試失敗的鏡頭。
  • 編輯已經渲染完成的鏡頭並不會重新渲染它。 status 會將其標記為「輸入已變更」。需要使用 shots --redo <id> 有目的地重新渲染;這會再次收費。
  • 顯示結果: 最終 MP4 的路徑、其長度,以及 .srt 檔案。然後說明花費了什麼:status 會印出從 API 回讀的實際帳單金額。
  • 所有內容都會下載到專案資料夾中。API 的結果 URL 會在 30 天後過期,因此該資料夾是持久的副本。

對話或旁白

在撰寫鏡頭之前選擇:

"mode": "dialogue""mode": "narration"
誰說話螢幕上的角色,嘴型同步。Seedance 在生成影片時同時生成語音。一個旁白(文字轉語音),混合在每個鏡頭的環境音之上。
適合以對話驅動的場景;真人演出風格的迷你劇。漫劇 / AI 漫畫劇、小說改編、回顧和故事影片。
語音一致性角色的語音在不同鏡頭間可能稍有變化。整個劇集使用完全相同的語音。
鏡頭長度你設定 duration(4-15 秒)。確保每句台詞夠短以符合長度。自動設定以符合每句旁白,最長 15 秒。
限制每個 5 秒鏡頭約 1-2 句短台詞。無法精確控制誰在何時說話。角色在螢幕上不說話。

如果使用者未指定,對於任何被描述為漫劇、漫畫、小說或故事回顧的內容,請使用 旁白 模式。對於建立在對話之上的場景,請使用 對話 模式。

模型與成本

腳本會根據風格自動選擇預設的 video_model。風格化外觀(動畫、漫畫、國漫、卡通、水彩)使用 dreamina-seedance-2-0-mini。其他所有情況使用 seedance-2.0-mini。當使用者想要其他模型時,可以在 project.json 中覆蓋。

使用者想要video_model解析度每秒影片成本
風格化劇集(動畫、漫畫、國漫);草稿dreamina-seedance-2-0-mini480p / 720p$0.0225 / $0.048
風格化,比 mini 好一級dreamina-seedance-2-0-fast480p / 720p$0.0644 / $0.1372
風格化,最終品質最高 1080pdreamina-seedance-2-0480p / 720p / 1080p$0.10 / $0.22 / $0.55
逼真人像seedance-2.0-mini480p / 720p$0.044 / $0.095
逼真,比 mini 好一級seedance-2.0-fast480p / 720p$0.071 / $0.153
逼真,最終品質最高 1080pseedance-2.0480p / 720p / 1080p$0.092 / $0.197 / $0.492

其他成本:

  • 角色和場景參考圖:nano-banana-2-1,每張 1K 解析度 0.022 美元。
  • 旁白:minimax-speech-2.8-turbo,每 1,000 字元 0.04 美元。短片段至少收費 0.004 美元。

一分鐘的劇集(12 個鏡頭 × 5 秒,5 張參考圖)大約成本:

  • 使用 dreamina-seedance-2-0-mini 480p 約 $1.46
  • 使用 dreamina-seedance-2-0-mini 720p 約 $2.99
  • 使用 seedance-2.0-mini 480p 約 $2.75
  • 使用 seedance-2.0 1080p 約 $29.63

建議第一次嘗試使用 480p。第二次嘗試使用 720p 只需要重新渲染鏡頭(設定 "resolution": "720p",然後執行 shots --redo <ids>)。參考圖保持不變。

為什麼要有逼真模型選項:dreamina-* 模型會拒絕看起來像真人的參考圖,而逼真角色的參考圖可能會觸發此拒絕。腳本會辨識此拒絕並建議你切換到 seedance-2.0-mini。被拒絕的任務不會被收費。

價格為列表價格,檢查日期 2026-09-30。status 會顯示實際帳單金額。

API 金鑰

首先執行 node $S check。金鑰來自 APIMODELS_API_KEY,或來自 ~/.apimodels/credentials,或來自 ~/.apimodels/credentials.json。最後一個是由 npx apimodels-mcp login 寫入的,因此已登入任何 apimodels 工具的使用者已經設定好。

如果沒有找到金鑰,請自行執行 node $S login 並將它列印的連結提供給使用者。 他們登入 apimodels.app 並點擊 授權。一個新的金鑰會寫入 ~/.apimodels/credentials,且永遠不會出現在此對話中。然後重新執行 check 並繼續。

如果 login 無法運作(機器上沒有瀏覽器),請勿在聊天中要求金鑰。給使用者一個命令,讓他們貼到新的終端機視窗中,並填寫好絕對腳本路徑:

read -s KEY && printf %s "$KEY" | node /ABSOLUTE/PATH/scripts/drama.mjs save-key && unset KEY

金鑰可以在 https://apimodels.app/console/api-keys 建立。

處理金鑰時:

  • 永遠不要回顯金鑰。
  • 永遠不要將其作為命令參數傳遞。
  • 永遠不要將其寫入專案資料夾。
  • 如果金鑰曾出現在對話中,告知使用者立即輪換它。

錯誤

腳本會印出原因和下一步。簡而言之:

你看到意義動作
401金鑰錯誤或缺失再次執行 login
402餘額不足在 https://apimodels.app/console/credits 充值。已完成的鏡頭會保留。
"looks like a real person"dreamina-* 拒絕了參考圖將 video_model 切換為 seedance-2.0-mini,然後執行 shots --retry-failed
內容審核拒絕提示詞或台詞被拒絕修改該鏡頭的措辭。重試相同的文字不會有幫助。
忙碌 / 超時上游負載稍後執行 shots --retry-failed
"still running"超過 25 分鐘稍後再次執行 shots;它會接續任務,不收費
退出碼 3步驟成本超過 1 美元與使用者確認金額,然後加上 --yes

成功率並非 100%:偶爾會有鏡頭失敗,重試通常會成功。

此技能無法做到的事

直接說明,不要即興發揮:

  • 無法保證完美的一致性。 在廣角鏡頭中,臉部可能會偏移,尤其是畫面中有三個或更多角色時。每個鏡頭保持 1-2 個角色(參見鏡頭撰寫指南)。
  • 沒有鏡頭長於 15 秒。 較長的時刻會被分割成多個鏡頭。
  • 無法對使用者錄製的語音軌進行嘴型同步。
  • 無法控制鏡頭的精確第一幀。 鏡頭由參考圖和提示詞驅動。
  • 字幕時間是近似的。 它們會在每個鏡頭內均勻分佈。如果需要精確時間,請編輯 .srt 檔案。
  • 不會發佈到任何地方。 輸出是一個本機 MP4 加上 SRT 檔案。

相關技能