Communitygithub.com

CrissAlvarezH/reel-studio

說明如何透過 Reel Studio 工作區,以任何視覺風格製作帶旁白的解說影片——從腳本、圖片、語音、影像、建構、分鏡板、音效、靜音測試到渲染——完全遵循創作者在工作室中的設定(個人檔案、格式、語音、圖片來源)。適用於專案中 `videos/` 資料夾(`projects/<id>/videos/`)內任何新建或修改的影片。影片的風格會引用其專屬技能(`styles/<id>/SKILL.md`)來決定外觀及 Remotion 套件;`LESSONS.md` 則記錄過去影片所學到的經驗。

reel-studio 是什麼?

此技能詳細描述在 Reel Studio 工作區中,從零開始製作一部帶旁白的解說影片的完整工作流程。它涵蓋 10 個明確步驟:從建立新影片、撰寫腳本、挑選圖片、生成語音、蒐集圖像、編排場景、建立分鏡板、混音、進行靜音測試,到最終渲染輸出。所有設定皆來自工作室的設定(語言、平台、觀眾、格式、語音及圖片來源),並與影片所選風格(顏色、字型、動畫等)以及格式(動畫、真人拍攝、僅語音等)進行整合。此技能強調整體協作:腳本由 `video-script` 技能處理,創意發想則由 `content-ideas` 技能負責。它還詳細說明了目錄結構、環境變數(API 金鑰)、工具使用方式(標準 Python 或 venv),以及應避免的常見錯誤,例如硬編碼語音 ID 或幀率。對於任何想要在 Reel Studio 生態系統內自動化或規範影片製作流程的開發者或 AI 代理使用者來說,此技能都是不可或缺的參考文件。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/CrissAlvarezH/ai-reel-gen-app/tree/HEAD/.claude/skills/reel-studio

在你喜歡的 AI 中提問

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

說明文件

Reel Studio — 影片製作流程

每個風格的製作流程都相同。影片的視覺與聽覺效果由其風格決定;觀看對象、格式、語音以及圖片來源則由工作室的設定決定。通用的 animated-video 技能涵蓋更廣泛的方法(腦力激盪、分鏡板、靜音測試、審閱);如有不同之處,則以此技能和風格的規則為準。提出建議時應附上推薦,以便對方只需回答「是」即可獲得完整答案。構思點子並將其儲存在專案的分鏡板上,則是 content-ideas 技能的工作,應在整個流程開始前完成。

工作區結構

  • projects/<id>/ — 一個專案:創作者為其製作影片的一個頻道(工作室的專案選擇器;提示中會說明目前開啟的是哪一個)。其 config/ 資料夾存放設定(Ajustes):profile.json、voice.json 和 account.json(其 Instagram 帳號,Mi cuenta);account/ 則存放從該帳號下載的內容。除非被要求,否則不要碰觸其他專案的資料夾。
  • projects/<id>/videos/<slug>/ — 一部影片:從其風格的範本複製而來的 Remotion 專案。包含 title.txt(在工作室中的名稱)、style.txt(風格 ID)、audio/vo.txt(旁白,完全按照最終語音輸出的內容)、audio/beats.json(腳本的結構)、src/format.json(尺寸、幀率、音量)、CREDITS.md、caption.md、out/(渲染成品、分鏡板;不進行版本控制)。
  • formats/<id>/format.json — 一種格式:影片的類型(全部由生成的語音或創作者錄製的語音進行動畫;創作者對著鏡頭說話加上動畫……)、螢幕上顯示的內容以及剪輯方式。影片在 format.txt 中指定其格式(無指定則預設為動畫格式)。skill 指向其自身的說明,overlay 指向要添加到風格範本之上的檔案;"footage": true 表示影片從其在 footage/ 中的錄製內容開始("voiceOnly": true:僅使用其聲音——音訊)。
  • styles/<id>/style.json — 一種風格:調色盤及各顏色代表的含義、字型、外觀、動畫、圖片、應避免的事項。skill 指向其自身的說明,template 指向新影片要複製的 Remotion 專案。
  • config/(在根目錄下)— 所有專案共享的設定:images.json(圖片來源)、social.json(爬蟲工具)。
  • tools/ — 共享腳本。LESSONS.md — 從過去影片中學到的經驗教訓。
  • projects/<id>/inspiration/<account>/ — 在專案的 Inspiración 頁面中研究的其他帳號的 Reels:account.json(analysis.text:對該帳號有效的方法)以及每個 Reel 的 reel.json(指標、標題)、transcript.json、analysis.json(鉤子、結構、視覺、CTA、可學習之處)、hook.jpg(前 3 秒)和 sheet_NN.jpg(1 幀/秒)。在被要求時可使用它們來尋找切入點和鉤子;要根據創作者的個人檔案進行調整,切勿抄襲腳本。

設定來自工作室

Reel Studio 會在每次互動時將個人檔案(語言、平台、觀眾、長度、字幕規則)、影片格式、語音和圖片來源放入提示中。它們的優先級高於此技能和風格的設定。切勿硬編碼語音 ID、設定、尺寸、幀率或音量目標。

API 金鑰存放在工作區的 .env 檔案中(在 Ajustes 中設定,並附有各金鑰的用途說明:Voz, Extracción de datos)。工具會讀取這些金鑰;切勿在聊天中打印金鑰或要求提供金鑰——如果缺少某個金鑰,請要求創作者在 Ajustes 中添加。

Python:僅使用標準庫的工具使用 python3 運行(Windows 上為 python):tts.py、el_words.py、standin_words.py、commons.py、openverse.py、pexels.py、pixabay.py、unsplash.py、generate_image.py。需要使用套件的工具則使用工作區的虛擬環境運行,即 ../../../../.venv/bin/python(Windows 上為 ../../../../.venv/Scripts/python.exe):cutout.py、audio/mix.py 和 sheet.py(snap.sh 使用它,或當沒有虛擬環境時使用 ffmpeg)。需要進行去背的風格需要使用虛擬環境(Ajustes → Requisitos 會安裝它)。以下的路徑都是相對於影片資料夾而言。

開始之前

請閱讀影片的格式:formats/<id from format.txt>/format.json,以及如果有的話,其對應的技能——它會說明此類影片的製作方式,並在與以下步驟衝突時以它為準(例如,使用創作者自己的錄製內容時,就無需編寫腳本或生成語音:剪輯內容會同時提供兩者)。請閱讀影片的風格:styles/<id from style.txt>/style.json,以及如果有的話,其對應的技能。格式永遠不會決定顏色、字型或邊框:那是風格的職責。請閱讀 LESSONS.md(通用部分和該風格的專屬部分)。如果一個風格沒有技能或範本,則會基於預設風格的範本(template/)建構,並根據其 style.json 更改外觀;在開始時請先說明此情況。

步驟

  1. 新影片 — 工作室會根據第一條訊息建立它(資料夾、標題、風格、格式、尺寸)。從終端機或一般對話中執行:scripts/new-video.sh <slug> [style] [format]。
  2. 腳本 — 使用 video-script 技能(鉤子、懸念、時機、檢查清單),如果點子來自分鏡板,則從其筆記開始。平台、語言、觀眾和長度來自個人檔案;單詞數 ≈ 語音的測量速度 × 目標秒數。目標:觸及率,除非另有說明。在 audio/vo.txt 中拼寫出數字(例如「一千零四十二」),並在 src/captions.ts 的 DISPLAY 中將其映射回數字。取得批准。撰寫 audio/vo.txt 和 audio/beats.json。
  3. 圖片 — 使用一個全新的代理為每個拍子腦力激盪一張圖片(animated-video → 尋找圖片)。偏好使用一個貫穿整個影片的、扮演系統角色的實體主題(例如,一個卡片目錄櫃 = 伺服器,抽屜 = 記錄)。這些圖片要保持腳本問題的開放性:第一個畫面提出問題,在旁白講述答案之前,沒有任何圖片或畫面上的標題顯示答案。取得概念批准。
  4. 語音 — 執行 python3 ../../../../tools/tts.py audio/vo.txt audio/vo.mp3,然後執行 ffmpeg -y -i audio/vo.mp3 -ar 48000 public/vo.wav 以及 python3 ../../../../tools/el_words.py audio/vo.alignment.json public/vo.wav(產生 src/words.json、src/vo_env.json)。在語音存在之前:執行 python3 ../../../../tools/standin_words.py audio/vo.txt src/words.json(按照語音的速度計時;稱之為臨時替代)。當語音有任何變更時,先製作一個簡短樣本。按原樣使用音訊(除非被要求,否則不要修剪暫停)。每次生成都會消耗字元數:不要無故重新生成。
  5. 圖像 — 使用可用的搜尋和瀏覽工具在網路上自由搜尋;任何網站都可以是來源。提示會列出可選的 API 整合,但這不是允許清單或強制順序。僅在啟用和設定後才使用這些 API;免費的網路搜尋不需要來源設定。下載的檔案存放在 assets/src/(不進行版本控制);在 CREDITS.md 中記錄每一張圖片(標題、作者、已知的許可證、原始連結;切勿編造許可證)。當圖庫圖片不適用時,請要求用手機拍攝準確手勢的照片(純色背景、光線良好)。圖片的處理方式由風格決定。
  6. 建構 — 在 src/lib.ts 的 ACTS 中進行操作(在每個 act 的第一個單詞前約 0.08 秒處剪輯),在 src/captions.ts 中按語義單位製作字幕(逐詞與轉錄稿比對),在 src/film/scenes.tsx 中每個 act 一個場景。每個時間點都來自提示(cue('phrase')、at('phrase')),因此更換語音會重新計時整個影片。尺寸和幀數來自 src/lib.ts(W、H、FPS、f()),切勿使用字面數字。組件是風格定義的。
  7. 分鏡板 — 執行 ./snap.sh out/board <sec> … 渲染靜止畫面及 sheet.png。每個拍子顯示一個關鍵幀;取得批准。時間點請直接傳遞(在 zsh 中,一個變數內的空白分隔列表不會自動分割)。
  8. 音效 — 在 audio/mix.py 中的提示表,時間點與場景使用的提示相同;執行 ../../../../.venv/bin/python audio/mix.py 產生 public/mix.wav;在 src/Root.tsx 中設定 audio: true。使用哪些音效:由風格決定。在交付時說明哪些音效是合成的。
  9. 靜音測試 — 在第一個完整剪輯版本之前:執行 ffmpeg -i out/<name>.mp4 -vf "fps=2,scale=270:-1,tile=8x5" out/mute/sheet_%02d.png,並僅將這些表格提供給一個全新的代理(忽略字幕;重新講述;列出困惑點和中斷處)。修正問題,重新檢查靜止畫面。
  10. 渲染 — 在 macOS 和 Linux 上,先清除孤立的渲染程序:執行 ps -A -o pid=,ppid=,command= | awk '$2==1 && /chrome-headless-shell/ {print $1}' | xargs kill。然後執行 CONCURRENCY=3 ./render.sh <name> 產生 out/<name>.mp4,並歸一化到格式的音量。檢查時長、音量、第一幀和最後一幀。撰寫 caption.md,包含個人檔案中的字幕規則和致謝;其開頭應提出鉤子的問題,而不是回答它。如果影片或字幕要求人們留言特定詞彙以獲得某些內容,請撰寫 automatizacion.json(Reel Studio → Instrucciones automatización),其中包含要貼到 ManyChat 或 InstantDM 的內容,以字串形式提供:keyword(確切的詞彙)、reply(對留言的公開回覆)、dm(直接訊息)和 link。每個欄位會原樣複製,所以不要在裡面放註解;缺失的欄位留空,切勿編造連結。報告檔案路徑、開啟的問題、跳過的檢查、哪些是合成或編造的,以及致謝。

影片完成後

客戶專案、影片、偏好、自訂風格和個人經驗教訓都保留在本地,並被應用程式的儲存庫忽略。請勿將它們提交或推送至該處,包括在渲染之後;切勿強制添加被忽略的資料。需要一個單獨的儲存庫來存放客戶內容,除非創作者明確要求。

將導致修改的內容添加到 LESSONS.md 中,每項原因一行,放在通用部分或該風格的專屬部分下。

當發布的影片數據回來時,使用 video-script → 審閱來讀取它們。從點子到發布的速度很重要,因為許多影片會失敗,而每個影片都會教會一些東西,所以新版本應盡可能少改動:保留已批准的內容,只更改正在測試的部分(新的鉤子、觀眾流失處的剪輯),並且僅為更改過的旁白重新生成語音。不要添加沒人要求的美化。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

CrissAlvarezH/animated-video

Make animated videos in code with Remotion (React, SVG, three.js): explainers, character stories, motion graphics, kinetic typography, paper collage and animated infographics, in 2D or 3D, from a script or voiceover, in any aspect ratio. Use when asked to animate a script, make an animated video or Reel, or motion graphics. Not for editing camera footage (video-edit) or AI-generated clips (higgsfield-*).

CrissAlvarezH/new-style

Create a new visual style for the creator's videos in a Reel Studio workspace (styles/<id>/style.json): interview him for its name, feel, colours and what each one means, fonts, motion, where pictures come from, reference links and images, then write the style so it shows in Estilos and new videos can use it. Use when he asks for a new style or presses "Nuevo estilo" on the Estilos page.

CrissAlvarezH/persona-hablando

The "Persona hablando + animaciones" format of a Reel Studio video — the creator talks to camera in his own recording; you transcribe it, agree the cuts with him (pauses, flubs, retakes), cut it, and lay the video's style animations over or between his shots. Use for any video whose format.txt says persona-hablando.

CrissAlvarezH/video-script

Write short-form video scripts that hold viewers, using the creator's own video analytics. Use when choosing the hook of a chosen idea, writing or tightening a script before filming (talking-head or narrated explainer), or turning a posted video's insights into lessons. Coming up with ideas is content-ideas'.

相關技能