Communitygithub.com

kidsavagez/reel

腳本到完成 Reels 的全自動流水線,包含兩個人類審核關卡。撰寫含特效提示的腳本,使用者拍攝後挑選最佳鏡次、剪除靜默與填充詞、加入特效、字幕與螢幕文字、渲染預覽、接受修改意見、渲染最終版本並撰寫貼文說明。當使用者輸入 /reel、有影片構想、提供原始素材、說「編輯這個影片」、「製作 Reel」、對預覽提出意見或分享參考剪輯以複製其風格時使用。

reel 是什麼?

這是一個專為 AI 編碼助手(如 Claude Code)設計的完整影片 Reel 製作技能,採用「腳本 → 拍攝 → 剪輯 → 特效 → 預覽 → 最終輸出」的六階段流水線,並在腳本審核與預覽審核處設置兩個人類把關點。技能會先根據參考素材分析風格參數(字型、剪輯節奏、特效間距等),然後自動生成含特效提示的腳本(hook/body/cta 結構),待使用者拍攝後自動轉錄、對齊、剪除死空氣與填充詞、套用 51 種視覺特效、最後產出預覽影片與最終版本(含封面與貼文說明)。它支援 Windows/Mac 雙平台,使用獨立的 Python 虛擬環境與 Whisper 語音辨識,可處理多鏡次選擇與使用者修改反饋(透過 choices.json 調整),並能產生無真人臉部的純語音 Reel(搭配背景音樂生成)。技能強調不遮擋人臉、不誇大效果、忠實反映工具限制(如 AI 無法判斷表演能量),適合需要高效量產社群影片的創作者或團隊使用。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kidsavagez/CLAUDE-VIDEO-PIPLINE/tree/HEAD/.claude/skills/reel

在你喜歡的 AI 中提問

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

說明文件

reel 是做什麼的?

檔案位置與首次設定

  • Pipeline 資料夾 = 此技能所在的 video-pipeline 資料夾(在此檔案上方三層:video-pipeline/.claude/skills/reel/SKILL.md)。所有指令都從該資料夾執行。 專案位於其內的 projects/<日期>-<縮寫>/ 資料夾。
  • PY = pipeline 自帶的 Python。以下所有指令都使用它,絕不使用系統的 Python: 在 Windows 上為 .venv/Scripts/python.exe,在 Mac 或 Linux 上為 .venv/bin/python。
  • 如果 PY 還不存在,先進行設定,無需要求使用者輸入任何內容: 執行 python install.py(Windows 上可用 py install.py,Mac 上可用 python3 install.py)。如果它因「找不到 ffmpeg」或「找不到 git」而停止,請為使用者安裝該工具(Windows:winget install ffmpeg / winget install Git.Git;Mac:brew install ffmpeg),如果新指令未被識別,請通知使用者重新啟動 Claude Code,然後再次執行 install。 當 install 印出 READY 時,執行 PY scripts/selftest.py 並確認結果為「9/9 通過」。
STYLE (每次參考) -> 1 BRIEF -> [關卡: 使用者批准腳本] -> 2 SHOOT (使用者)
-> 3 ALIGN -> 4 CUT -> 5 EFFECTS -> 6 PREVIEW -> [關卡: 使用者意見,循環] -> 7 FINAL

你負責撰寫、剪輯和渲染。使用者負責拍攝、批准和發布。任何內容都不會從這裡發布。

0. 從參考素材建立風格(當使用者傳送參考剪輯時)

  1. PY scripts/style_ref.py <參考.mp4> [更多參考] --name <風格名稱>
  2. 打開它在 styles/refs/<風格名稱>/ 中寫入的每張圖片,並閱讀 report.json 的數據。
  3. 撰寫 styles/<風格名稱>.json,只包含與 styles/default.json 不同的鍵: 字幕字型/大小/顏色/位置/每組字數/大寫、螢幕文字外觀、剪輯緊湊度(cut.max_gap:快節奏剪輯時設更小)、特效間距(effects.min_gap,根據參考的節奏)、音量。
  4. 撰寫 styles/<風格名稱>.md:用平實的文字說明該剪輯的風格。哪些特效(共 51 種)與你所見的動作匹配、螢幕上多常發生某事、開場鉤子如何呈現、它從不做什麼。加入測量到的數據(每分鐘剪輯次數、鏡頭長度)。
  5. 向使用者展示 .md 檔案,並詢問你哪裡判斷錯誤。你只能看到抽樣幀,無法看到動態或聲音:請說明這點,並請他們提供喜歡的時間戳(--at 7.2,12 會抓取那些幀)。

字型:字幕可以使用 vendor/claude-video-effects/fonts/ 中的任何字型(Montserrat、Anton、Archivo Black、Inter、Instrument Serif、Playfair Display、Space Mono、Permanent Marker)或使用者放入 fonts/ 的任何 .ttf/.otf 檔案。

1. 腳本

  1. PY scripts/new_project.py "<縮寫>" --lang id --style <風格>(lang: id、en 或 auto)。
  2. 如果存在 ~/.claude/youtube/voice.md 或 ~/.claude/instagram/voice.md,請閱讀它們。使用使用者的語言和語氣撰寫。絕不捏造任何數字、結果或客戶;如有需要,請提問,或留下 {{angka}}。
  3. 填寫 script.json:每行對應他們將說的一句話,角色為 hook / body / cta。
    • 鉤子:撰寫 3 個選項,推薦一個,維持在大約 3 秒內可說完。
    • onscreen:鉤子的簡短文字(以及任何需要標題卡的行)。
    • effects:在某個詞上提示特效:{"fx": "backdrop-word", "on": "GRATIS", "text": "GRATIS"}。 從風格的 .md 中挑選。每個特效至少間隔 effects.min_gap 秒。不是每行都需要特效。使用使用者自己的 Reels 的特效(orbit、phone-fan、place-in-grid、fan-build、noise、profile-wall、carousel-spin)需要 "images": "<資料夾>"。
    • 圖表和計數器(liquid-glass-graph、over-the-shoulder-zoom)只能搭配真實數字。
  4. 在旁邊撰寫 brief.md:鉤子選項、他們將閱讀的腳本、每個特效的拍攝提示(「第 4 行:頭頂上方保留空間」),以及 templates/shooting.md 中的拍攝規則。
  5. 關卡: 展示腳本並停止。在使用者批准之前,不要繼續。

2. 拍攝(使用者)

他們將檔案放入 <專案>/raw/。允許多個檔案;它們會按名稱順序使用。

3. 對齊

  1. PY scripts/transcribe.py <專案>(首次執行會下載 Whisper 模型)。 錄音中有多次重新開始,或剪輯仍然重複詞語?請改用 PY scripts/burst_transcribe.py <專案>:它會單獨轉錄每一段連續語音(使用 large-v3-turbo 模型),因此暫停後的重新開始絕不會與下一段合併。如果詞語仍然吞掉停頓,請在對齊前執行 PY scripts/snap_words.py <專案>。
  2. PY scripts/align.py <專案>。以簡短形式向使用者報告結果: 缺失的行或沒有完整鏡次的行,以及任何聽起來值得保留的即興內容。除非某行缺失,否則不要因此停止;在預覽時提及它們。

4. 剪輯

PY scripts/cut.py <專案>

純語音 Reels(使用者只錄製語音,畫面全是動態圖形): 請改用 PY scripts/cut_voice.py <專案> -> 產生 work/voice.wav(乾淨的,-16 LUFS)和 work/prog_words.json(每個保留詞在剪輯軌道中的時間)。在此基礎上建立視覺效果(如果使用者有 HyperFrames,或使用自己的編輯器)。特效步驟需要人臉,因此請跳過。

無授權的背景音樂: 如果存在 .venv-music/(執行 python install.py --music),請使用 .venv-music/<Scripts|bin>/python scripts/music_bed.py work/bed.wav --seconds 30 --seed 1 --prompt "<情緒>, no vocals" 製作背景音樂,聆聽是否有間隙(如果不均勻,嘗試其他種子),並設定 "music": {"file": "<絕對路徑>/work/bed.wav", "db": -22}。

5. 特效

  1. PY scripts/effects.py <專案> plan。透過編輯 script.json 中的提示來修正任何警告。
  2. PY scripts/effects.py <專案> check,然後查看 work/check/fx_*.png 的每一張。 文字遮擋人臉、超出邊緣、無法閱讀:請修正選項(x、y、較短的 text)並再次檢查。
  3. PY scripts/effects.py <專案> render。這是慢速步驟(每一幀都經過人臉追蹤)。告知使用者正在執行。

6. 預覽

  1. PY scripts/finish.py <專案> -> preview/preview_vN.mp4。
  2. PY scripts/finish.py <專案> --check <t1,t2,...> 在每個特效的中間以及另外兩三個時間點進行檢查。查看 PNG 圖片:字幕與特效碰撞、鉤子文字無法閱讀、任何遮擋人臉的內容。在展示之前修正。
  3. 關卡: 向使用者提供預覽路徑和簡短的編輯清單:使用的鏡次、剪掉的內容、特效及其位置。請求修改意見。

將意見轉化為修改

意見修改方式從哪一步重新執行
「第 3 行使用另一個鏡次」choices.json {"take": {"3": 1}}對齊
「保留我在 0:14 說的內容」choices.json {"keep_unmatched": ["u3"]}對齊
「刪除第 5 行」choices.json {"drop_lines": [5]}對齊
「剪輯太緊/太鬆」風格 cut.max_gap、cut.post_pad對齊
「那裡不要特效」/「更大的詞」script.json 特效特效計劃
字幕外觀、螢幕文字風格 captions / onscreen,或腳本 onscreen完成
音樂script.json "music": {"file": "...", "db": -22}完成

從某個步驟重新執行意味著其後的所有步驟也需重新執行。重新執行對齊或剪輯會導致特效再次渲染(速度慢),因此請先批次處理所有意見。

7. 最終輸出

  1. PY scripts/finish.py <專案> --final -> final/final.mp4 和 final/cover.jpg。
  2. 撰寫 final/caption.md:
    • 前 125 個字元需包含鉤子;這是動態消息在展開「更多」之前顯示的全部內容。
    • 一個行動呼籲。如果是「留言 KEYWORD」,則需與影片相符。
    • 最多 5 個主題標籤,與主題相關,放在結尾。使用使用者的語言和語氣。
    • 不要捏造數字。不要出現「別滑走」,不要堆砌主題標籤。
  3. 用一句話提醒他們:熱門音效在 Instagram 內部添加,他們自行發布。

規則

  • 風格 .md 檔案是品味指南。在不確定是否要加入某內容時,就不要加入。
  • 絕對不要遮擋人臉。絕不放大到 2 倍以上。
  • 坦率說明限制:編輯器擅長挑選鏡次和時機;它無法判斷他們的表演能量。如果某個鏡次聽起來平淡,請說「檢查第 3 行的能量」,不要假裝你聽到了。
  • 將 projects/ 排除在 git 之外:原始素材體積龐大且涉及個人隱私。

相關技能