AI短劇製作 は何をしますか?
故事輸入,影集輸出。你將故事寫入一個 project.json(角色、場景、鏡頭)。scripts/drama.mjs 處理所有花錢或容易出錯的部分:
project.json ─ 估算 ─ 選角 ─(語音)─ 鏡頭 ─ 組裝 ─▶ episode.mp4 + .srt
免費 參考圖 旁白 Seedance ffmpeg: 標準化,
驗證 每個角色 模式專用 渲染 混合旁白,
+ 價格 和場景 每個鏡頭 拼接, 字幕
角色如何保持一致:每個角色獲得一張參考形象表(正面肖像 + 正面/側面/背面視角)。每個鏡頭將畫面中角色的形象表作為參考圖傳給 Seedance 2.0,並在提示詞中說明哪張圖是誰。
規則
- 始終執行
scripts/drama.mjs。 不要用 curl 或 fetch 呼叫 API。腳本會在任務建立時立即儲存其 ID,因此當崩潰或超時發生時,它會恢復相同的任務,而不是重新付費。手動呼叫會失去這個優勢。 - 在編寫
project.json之前,閱讀references/project-schema.md和references/shot-writing.md。 鏡頭撰寫指南決定了影集看起來像一部完整的電影,還是十二個不相關的片段。 - 先執行
estimate並向使用者顯示結果:鏡頭列表、總長度、模型和價格表。在獲得同意之前,不要執行cast/shots。腳本會在費用超過 $1 時拒絕任何步驟,除非加上--yes。只有在使用者同意該金額後,才能傳入--yes。 - 在渲染鏡頭之前,向使用者展示角色形象表。 每張形象表約 $0.02;每個鏡頭費用是其 10–100 倍。如果臉部、服裝或風格有誤,修正
look並立即執行cast --redo <id>。每個鏡頭都會繼承它。 - 對於新專案,先渲染一個鏡頭(
shots --only s1)。與使用者一起檢查,然後再渲染其餘部分。僅在非常短的專案(3 個鏡頭或更少)或使用者要求時跳過此步驟。 - 不要發明模型名稱。 只使用下表列出的模型。如果使用者要求其他模型,請說明此技能不支援。
- 失敗的任務不會被收費。 當失敗發生時,明確說明原因(腳本會印出原因和下一步),並提供重試選項。
- 不要提及上游提供商或路由。 只談論此檔案中的模型名稱,不談論其背後的東西。
- 未經同意,不得使用真實、可辨識的人物,也不得對任何人發表色情、仇恨或誹謗性內容。拒絕此類請求。
工作流程
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-mini | 480p / 720p | $0.0225 / $0.048 |
| 風格化,比 mini 更高一階 | dreamina-seedance-2-0-fast | 480p / 720p | $0.0644 / $0.1372 |
| 風格化,最高 1080p 的最終品質 | dreamina-seedance-2-0 | 480p / 720p / 1080p | $0.10 / $0.22 / $0.55 |
| 真人寫實人物 | seedance-2.0-mini | 480p / 720p | $0.044 / $0.095 |
| 真人寫實,比 mini 更高一階 | seedance-2.0-fast | 480p / 720p | $0.071 / $0.153 |
| 真人寫實,最高 1080p 的最終品質 | seedance-2.0 | 480p / 720p / 1080p | $0.092 / $0.197 / $0.492 |
其他費用:
- 角色和場景形象表:
nano-banana-2-1,每張 $0.022(1K 解析度)。 - 旁白:
minimax-speech-2.8-turbo,每 1,000 個字元 $0.04。一個短片段至少收費 $0.004。
一分鐘影集(12 個鏡頭 × 5 秒,5 張形象表)的費用約為:
- $1.46(
dreamina-seedance-2-0-mini480p) - $2.99(
dreamina-seedance-2-0-mini720p) - $2.75(
seedance-2.0-mini480p) - $29.63(
seedance-2.01080p)
建議第一次使用 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 充值。已完成的鏡頭會保留。 |
| 「看起來像真人」 | dreamina-* 拒絕了參考圖 | 將 video_model 切換到 seedance-2.0-mini,然後執行 shots --retry-failed |
| 內容審核拒絕 | 提示詞或台詞被拒絕 | 修改該鏡頭的內容。重新嘗試相同的文字沒有幫助。 |
| 忙碌 / 超時 | 上游負載過高 | 稍後再執行 shots --retry-failed |
| 「仍在運行中」 | 超過 25 分鐘 | 稍後再次執行 shots;它會不計費地接續任務 |
| 退出碼 3 | 步驟費用超過 $1 | 與使用者確認金額,然後加上 --yes |
成功率並非 100%:偶爾會有鏡頭失敗,重試通常可以解決。
此技能無法做到的事
直接說明,而不是即興發揮:
- 它不保證完美的角色一致性。 在廣角鏡頭或畫面中有三個以上角色時,臉部可能會偏離。保持每個鏡頭 1–2 個角色(參見鏡頭撰寫指南)。
- 沒有鏡頭超過 15 秒。 較長的片段會被切分為多個鏡頭。
- 它無法對齊使用者錄製的音軌與嘴型。
- 它無法控制鏡頭的精確起始幀。 鏡頭由參考圖和提示詞驅動。
- 字幕時間戳是近似的。 它們在每個鏡頭內均勻分佈。如果精確時間很重要,請編輯
.srt。 - 它不會發佈到任何地方。 輸出是本地的 MP4 和 SRT 檔案。