Communitygithub.com

timeline-video (askdestava/claude-skills)

撰寫與渲染時間軸腳本化的 AI 影片 — 一次生成最長 30 秒,以六個區塊逐秒編排腳本(鎖定角色、風格、定時音訊、時間軸、攝影機規則、負面提示),為如無盡縮放揭露等爆紅單鏡廣告提供格式。支援 OpenAI、Anthropic 等平台。

claude-skills) 是什麼?

這個技能提供了一個完整的 AI 影片製作工作流程,專注於單鏡頭、時間軸腳本化的影片生成,特別適合製作類似「無盡縮放揭露」的爆紅廣告。使用者需以 Markdown 格式編寫腳本,包含六個關鍵區塊:角色、風格、音訊、時間軸、攝影機規則和負面提示。系統會檢查腳本的正確性(如時間點是否連續),估算價格,然後透過 OpenRouter 的非同步影片 API(預設使用 ByteDance Seedance 2.5,但可選任何 OpenRouter 支援的影片模型)進行渲染。完成後,它會產生一個與腳本時長同步的連絡表(每拍一幀),方便驗證一致性與品質。此技能支援 Python 3.8+ 標準函式庫,並在需要連絡表時依賴 ffmpeg。它適合需要精確控制 AI 影片每一秒的創作者、廣告人與開發者。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/askdestava/claude-skills/tree/HEAD/skills/timeline-video

在你喜歡的 AI 中提問

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

說明文件

timeline-video

長影片模型若提示詞能描述每一秒的細節,即可單鏡持續 30 秒。這個技能是腳本層:格式、讓影片成功的技巧,以及 scripts/timeline_video.py,後者會檢查腳本、估算價格、透過 OpenRouter 的非同步影片 API 渲染並產出連絡表供審查。需 Python 3.8+ 標準函式庫;ffmpeg 僅用於連絡表。

六個區塊

腳本是 Markdown 檔案:可選的前置資料,然後依序為六個區塊。前置資料之後的所有內容都會一字不改地作為提示詞發送。

---
duration: 30
aspect: 16:9
resolution: 720p
model: bytedance/seedance-2.5
---
[CHARACTER] 誰,確切細節:年齡、臉型、頭髮、眼鏡、每件衣物、姿態、手中物品、車輛或道具及其顏色、所在位置。以鎖定句結尾:「在整個 30 秒內保持臉型、頭髮、服裝與 <道具> 完全相同。」

[STYLE] 寫實與否、「一個不間斷的長鏡頭」、長寬比、每個鏡頭尺寸的焦點、一天中的時間及其光線、以顏色名稱呈現的色調、紋理、一個持續的小動作(如風吹頭髮)、喜劇基調,以及禁止剪輯、定格或慢動作。

[AUDIO] 環境背景音作為特定聲音的清單。然後是時間點提示:「0.8s:一聲清脆的訊息提示音。」「1.2–4.0s:<誰>,畫外音,<聲音特質>:」<精確台詞>」。」然後是聲音在畫面變化時的作用。

[TIMELINE]
0.0–1.0s — <取景> <動作> <一個細節>。
1.0–4.0s — ...
...                          (視窗首尾相連,從 0 到時長,無間隙)

[CAMERA RULES] 連續性規則:每個階段不中斷的單一移動、進出緩動、地平線水平、主體靠近中心、每個階段比前一個更遠、哪條引導線保持位置。

[NEGATIVE] 無剪輯或黑畫面、無其他人、無文字、無字幕、無標題或標誌……

templates/script.md 是可供複製的空白腳本;examples/the-sandbar.md 是完整的 30 秒腳本。

讓它成功的關鍵

  • 一個前提,四個節拍。 平靜 → 你 聽到 的觸發(一聲提示音,然後一段請求某事的語音留言)→ 特寫中的木訥反應 → 揭露。在縮放揭露的形式中,揭露 就是 笑點:每一次拉遠都顯示從這裡到那個請求有多不可能。
  • 第一秒就已顯示人物。 沒有建立鏡頭;畫面停在一個人的臉上。
  • 在寫作中鎖定身份。 將每個可見屬性命名一次,然後加上「在整個 N 秒內完全相同」這行。飄移是破壞長鏡頭的原因。
  • 一個飽和的重點色。 淡化整條色調,只給主體的道具一個強烈的顏色,這樣當它最後只剩三像素寬時,眼睛仍能找到它。
  • 逐步升級揭露。 每個階段都比前一個移動更遠,每個視窗都命名在該比例下變得可見的內容——進入方向、離開方向、地平線。地理講述故事。
  • 音響與攝影機同步。 開始時緊密貼近,然後只有風聲,隨著鏡頭拉遠而變得開闊、空洞。
  • 為語音計時。 每秒約 2.5 個詞:一個 2.8 秒的視窗大約容納七個詞。
  • 最後三分之一保持安靜。 緩慢、寬闊且空曠,留待之後加上旁白。
  • 切勿要求模型產出文字、標誌或品牌標記。 它會扭曲它們,除非負面提示禁止,否則它還會在車輛上畫出徽章。之後用你自己的字體,在安靜的寬闊鏡頭上加上台詞。

除了縮放之外的其他形式:推進鏡頭(笑點是一個細節)、跟拍鏡頭(長時間行走壓縮時間)、環繞鏡頭(世界圍繞靜止的主體變化)。同樣的六個區塊;攝影機規則改變。

執行

S=<此技能目錄>/scripts/timeline_video.py
python3 $S check  film.md                          # 解析區塊、檢查時鐘、列印節拍
python3 $S models --model bytedance/seedance-2.5   # 時長、解析度、長寬比、音訊、價格
python3 $S render film.md -o out/ --key-file ~/keys/openrouter.key   # 價格估算、提交、輪詢、下載
python3 $S sheet  out/film.mp4 film.md             # 每拍一幀 → out/film_beats.jpg
標誌(渲染)功能
-o DIRMP4 及其側車檔案存放的目錄。檔名來自腳本名稱。
--model、--duration、--resolution、--aspect覆蓋前置資料。每個值在發送前都會與模型公布的能力進行校驗。
--seed N傳遞種子(僅在模型支援時生效)。
--no-audio要求靜音影片。預設情況下,對於能產生音訊的模型,音訊是開啟的。
--key-file F從檔案讀取 OpenRouter 密鑰。否則使用 OPENROUTER_API_KEY 環境變數。密鑰絕不會被列印或儲存。
--dry-run僅檢查和估算價格。

成本。 render 會在提交前列印價格。按秒計費的模型是精確的。Seedance 按 影片 token 計費,而 OpenRouter 未公布轉換方式,因此其數值標記為估算值(tokens ≈ 寬度 × 高度 × 24 fps × 秒數 ÷ 1024)。已在真實任務中驗證:720p 的 30 秒影片估算為 $6.93,實際收費 $6.94。實際費用始終在側車檔案的 usage.cost 中。先渲染一個,觀察結果,再決定是否重試。

你將獲得: <name>.mp4 和 <name>.json — 模型、參數、提示詞及其 SHA-256、任務和生成 ID、時間統計以及 usage 區塊。請將它們保持在一起;側車檔案是重現這個鏡頭的關鍵。

使用前審查

  1. 使用 ffprobe 檢查檔案:你要求的時長,以及(如果要求了)音訊串流。
  2. 使用 sheet,然後查看每個節拍:全程保持相同的臉、頭髮和服裝;重點色保持一致;揭露逐步升級;沒有文字、標誌或額外人物出現。
  3. 聆聽:觸發音效準時出現,語音說出精確台詞。

失敗的節拍需要重試(新種子)或修改腳本,通常是將模糊的視窗變得具體。

錯誤處理

退出碼意義
0完成
1OpenRouter 拒絕請求,或任務以 failed、cancelled 或 expired 狀態結束;其錯誤將直接顯示
2腳本或參數錯誤(缺少區塊、時鐘間隔、模型不支援的時長等)
4未提供 API 密鑰

影片任務不會保留數據:提供者會短暫保留輸出以供下載。

貢獻者

此格式參考 Seedance 提示詞,由 @iamneubert 分享一個爆紅單鏡廣告的分解(https://x.com/iamneubert/status/2099199895039336459)。本技能不包含該提示詞或影片的任何內容。

相關技能