Faceless reels
此技能複製了一條已在真實 Reel(「This voice is not me」,2026 年 11 月發布)上驗證過的生產鏈。目標:一個 1080 x 1920、30 fps、60 到 120 秒的 Reel,能吸引觀眾看到最後,因為所有元素都會隨著語音節奏就地轉變。
設定
個人設定儲存在此技能根目錄的 config.json 中。如果檔案不存在,請將 config.example.json 複製為 config.json,並要求使用者填寫缺少的內容(至少需要 elevenlabs_voice_id)。每次執行開始時都應讀取此檔案。下方的 <skill> 表示此技能的資料夾。
| 鍵 | 用途 |
|---|---|
creator_name | 報告中如何稱呼使用者 |
language | Reel 的預設語言(語音、字幕、畫面文字)。若請求使用其他語言則以該語言為準 |
elevenlabs_voice_id、elevenlabs_model | 克隆的語音 |
whisper_model | 用於檢查的本機 Whisper.cpp 模型 |
projects_root | 先前 Reel 專案所在目錄(用於重複使用 node_modules) |
cta | Reel 語言中三個結尾引導動作的確切措辭 |
guides_page | 使用者個人簡介中連結的頁面,指南存放處 |
timezone、publish_hour、caps、telegram_env | 僅限自動模式 |
使用者規則
- 書寫要直接明瞭。不要在畫面上或訊息中使用破折號或填充詞。
- 使用 Reel 語言的印刷規範。如果是法語:在
: ? !前以及5 réglages這類短語內使用不換行空格,法語引號 « »。 - 語音永不中斷。 僅編輯動畫。不改變時長,不移除靜音。
- 影片中不出現臉孔,但封面可使用使用者的照片。
- 封面永遠是影片的第一幀,同時也會另存為獨立檔案。
- 結尾固定包含三個動作:訂閱以獲取指南、點擊 bio 中的連結、輸入關鍵字。這三個動作需同時出現在語音、字幕和畫面上(出現 SUBSCRIBED 按鈕、LINK IN BIO 按鈕以及一個輸入關鍵字的欄位)。關鍵字必須直接與指南和主題相關,並由 Claude 提出。請說「link in bio」,不要說「link in the description」:指南頁面在使用者的 bio 中。
- 所有聲明都必須屬實:不得捏造數據、使用無來源的誇大詞彙或偽造螢幕截圖。親身經歷的證明勝過空洞的承諾。
- 任何令牌、密碼或金鑰不得在畫面上顯示。
- 每個 Reel 的說明文字:最多 5 個主題標籤,不加連結,適用於所有平台。說明文字必須以示範如何取得指南結尾,例如:「這五個提示詞都在指南中,可以直接複製貼上。要取得指南:請訂閱、前往 bio 中的連結,然後輸入關鍵字 FIVE。」
- 使用克隆語音的無臉 Reel:發布時需聲明為 AI 生成內容(例如使用 Blotato 時,在 TikTok 設
isAiGenerated: true,在 YouTube 設containsSyntheticMedia: true)。 - 背景音樂音量設為語音的 0.05,不得更高。
- 宣布付費生成的費用。如果使用者在請求中已授權使用 Atlas Cloud 或 ElevenLabs,則直接宣布並繼續。否則,需等待使用者同意。
- 一氣呵成,中途不停頓,自我檢查工作,清楚說明哪些項目已驗證、哪些尚未驗證。除非使用者要求,否則永不發布(自動模式除外)。
- 小型機器(8 GB RAM):一次只處理一個 Remotion 套件,渲染在背景執行,結束時清除中間檔案。
步驟
一開始先規劃所有步驟。每個步驟都有對應的指南:在執行該步驟時閱讀。
- 定位。 影片資料夾、參考 Reel(檔案或連結)、主題、使用者的封面圖片(影片資料夾中的
cover.png,若無則使用<skill>/assets/cover/cover-template.png並告知使用者)、可用磁碟空間(df -h /)。讀取有用的references/內容和專案記憶。 - 分析參考資料(如果有的話):提取音訊,使用 Scribe 進行轉錄,逐幀檢視影片,撰寫
_reel/reference/reel_analysis.md。請參閱references/script.md。 - 撰寫腳本以及承諾的指南:
_reel/script.md,確保每個宣稱屬實。請參閱references/script.md。 - 建立專案:執行
zsh <skill>/scripts/new_reel.sh "<video folder>",然後填寫remotion/reel.json。請參閱references/editing.md。 - 免費動態腳本:執行
python3 <skill>/scripts/fake_words.py,接著執行python3 scripts/build_reel.py(此腳本會檢查reel.json),然後產生幾張靜態圖。檢查腳本是否適合在畫面上顯示? - 語音:錄製 2 次 ElevenLabs 錄音,對選定的錄音使用 Scribe 產生逐字時間戳記,進行不中斷的處理。請參閱
references/voice.md。 - Atlas Cloud 開場鏡頭(可選,建議使用):起始圖片、結束圖片、Kling 處理、根據語音重新調整時間。請參閱
references/opening-shot.md。 - 場景:根據
src/reel/BRIEF.md逐節處理,然後每組場景由一個 Agent 平行處理,並由一個檢查 Agent 負責。請參閱references/editing.md和references/scene-rules.md。 - 封面:吸引點擊的標題和標誌。請參閱
references/cover.md。 - 使用靜態圖檢查,修正問題後,再進行渲染:在背景執行
zsh scripts/render_final.sh(90 秒的影片約需 10 到 15 分鐘)。 - 驗證最終檔案並撰寫
exports/instagram.md。請參閱references/checks.md。 - 完成:專案 README、專案記憶、清除中間檔案、傳送檔案、提供摘要,並說明哪些項目仍需要收聽或決定。
自動模式
如果請求來自排程任務,或是使用者要求處理 inspiration/ 資料夾,請遵循 references/autonomous-mode.md:不詢問問題、成本上限、指南、排程發布、通知。
Reel 的成功要素
- 鉤子在 3 秒內出現,附帶證明或承諾,並且在封面之後的第一個畫面就能閱讀。
- 可見的開放式循環:N 個編號的空框,形成進度條。
- N 個相同形式的主題,難度和價值遞增,最好的一個放在最後,並由一個重新鉤子宣布。
- 單一鏡頭:相同的背景,相同的視窗。從不硬切。
- 每次出現都與語音同步,畫面從不超過 1.5 秒沒有任何變化。
- 快速回顧,接著是一句能改變觀眾對主題看法的關鍵語。
- 由動作組成的結尾,既要說出來也要展示出來:游標點擊訂閱、點擊 bio 連結、然後輸入關鍵字。
- 循環:最後一句話引導回第一句,最後一幀又變成第一幀。
指南
| 閱讀 | 時機 |
|---|---|
references/script.md | 分析參考資料、撰寫腳本、選擇關鍵字和指南 |
references/voice.md | 產生語音、取得單詞、不中斷地處理音訊 |
references/opening-shot.md | 開場鏡頭的提示詞與時間重設、費用 |
references/editing.md | 專案佈局、reel.json、Agent、檢查靜態圖、渲染 |
references/scene-rules.md | 提供給撰寫場景的 Agent 的規則 |
references/cover.md | 標題、標誌、格式、設定為第一幀 |
references/checks.md | 最終檔案檢查、說明文字、哪些項目留給人類處理 |
references/autonomous-mode.md | 單獨處理 inspiration/ 資料夾中的檔案,從參考資料到排程發布 |
assets/reel-template/ 是 Remotion 專案。assets/example-this-voice/ 包含整個已驗證的 Reel:腳本、分析、實際場景、簡報。這是品質參考:在撰寫場景前,請先閱讀其 README.md,然後至少閱讀 Stakes.tsx 和 Setting2.tsx。assets/example-6-tools/ 提供了可重複使用的場景,適用於排名或分層列表。
已付費的教訓
- 錄製兩次時,Scribe 轉錄的是第二次:請閱讀結果中的
source.url,並保留它實際轉錄的那次錄音。 - Scribe 的
words.json包含標籤([softly])和作為單詞的「:」:請移除它們,並在scribe_words.json中保留{"words": [...]}的結構。 - 在「Subscribe」之前的一句台詞導致視窗空白:
CtaGuide.tsx現在會在該段時間顯示「Save」。 - 提示音和閃光效果蓋過了關鍵字和關鍵語(關鍵字處語音為 -1.9 dB):模板中已降低音量。但仍需檢查最緊密的段落。
- Whisper 會偏移和出錯:時間資訊來自 Scribe,文字來自腳本(
build_reel.py負責對齊兩者)。 - 包含「Claude」的 Whisper 提示詞會讓它把「clone」讀成「Claude」。請在不使用提示詞的情況下檢查,並使用時間戳記:
-nt會跳過句子。 - 鉤子關鍵詞上的音效會遮蔽語音:請將音效放在該詞結束之後(測量至少 7 dB 的差距)。
- 場景恰好在其段落結束時停止,會切斷結尾的標記:場景之間需要重疊(
Reel.tsx中的STAGES),並且標記要從句子開頭就放置。 - 當句子宣布一個列表時,空白的視窗看起來很奇怪:請從句子開頭就放置虛線佔位符。
- 數字寫成單字會破壞字幕頁面:
build_reel.py會將「5 settings」保持在一起。 - GPU 渲染會導致元素每三幀消失一幀:請始終使用
GL=swangle CONCURRENCY=1(render_final.sh中已設定)。 - 影片上不要使用 3D 變換、不要使用
mixBlendMode,確保 React key 唯一。 - chrome-headless-shell 會掛起:請使用
CHROME_MODE=chrome-for-testing(腳本中已設定)。 - 渲染後重做句子:保留已驗證的語音,一次性生成結尾,然後在停頓處拼接(
references/voice.md)。 - 在封面上,縮小為符號的品牌標誌可能被誤讀:ElevenLabs 的兩條橫槓看起來像暫停按鈕,因此其名稱保持寫在下方。