video-clone
edenfunf/reelmimic/.claude/skills/video-clone/SKILL.md
參考影片風格克隆器 — 使用者給一支參考影片(本機檔案、螢幕錄影或 YouTube/網址)加上一句需求(「做一支類似風格的影片,主軸是…」),就拆解它的剪法與視覺風格、判斷屬於哪種風格、交給對應的製作 skill,寫分鏡、做動畫、逐格自我審查,最後輸出 MP4 並依回饋修改。Use whenever the user supplies a reference video or link and asks for a video "like this", "in this style", "clone/模仿/參考這支的風格/剪法", or asks to add a new video style to the registry.
Skill1.3k starsChanged yesterday
What's in it
- video-clone:參考影片 → 風格拆解 → 生成新影片
- 0. 收件
- 1. 拆解參考片
- 2. 選風格 → 選製作 skill
- 3. 配樂(有音樂的風格才需要)
- 4. 分鏡
- 5. 製作:一關一關過,不要堆到最後才審
- 歌詞字幕
- 6. 依回饋修改
- 規則
- 擴充新風格
---
name: video-clone
description: 參考影片風格克隆器 — 使用者給一支參考影片(本機檔案、螢幕錄影或 YouTube/網址)加上一句需求(「做一支類似風格的影片,主軸是…」),就拆解它的剪法與視覺風格、判斷屬於哪種風格、交給對應的製作 skill,寫分鏡、做動畫、逐格自我審查,最後輸出 MP4 並依回饋修改。Use whenever the user supplies a reference video or link and asks for a video "like this", "in this style", "clone/模仿/參考這支的風格/剪法", or asks to add a new video style to the registry.
---
# video-clone:參考影片 → 風格拆解 → 生成新影片
這個 skill 是總指揮。**所有產出都照 `CONTRACT.md` 的檔名與欄位寫**(App 前端直接讀那些檔案畫畫面;CLI 使用時也照寫,方便之後接到 App)。
在 App 裡時,每一輪只做被指定的階段(拆解 / 企劃 / 修改企劃 / 生成 / 修改成片);**前製企劃被使用者核准之前,不准開始正式生成**。
使用者沒有素材時,先用 `scripts/fetch_assets.py` 從授權安全的來源(Openverse CC0/CC BY、Pixabay、Freesound)找;不夠可以自己上網搜尋。每個素材都把來源、作者、授權記進 assets/ASSETS.md,授權不明的標「授權未確認」並告訴使用者。
它自己不畫任何東西,負責的是:拆解參考片、選出正確的製作 skill、把關品質、跟使用者對焦。
**目標是驚艷、讓人起雞皮疙瘩,不是「沒有錯」。** 驚艷來自高潮設計:找出參考片打動人的那 1–2 刻,設計我們的對應高潮
(鋪陳 → 屏息 → 落在重拍的爆發 → 停住),把力氣集中在那幾鏡,並且一律用連續影格和參考片並排比,不看單張。
流程照這份文件走;每個階段做完都用一兩句話告訴使用者現在做到哪。
## 0. 收件
使用者會給:
- **參考影片**:本機檔案、螢幕錄影,或網址(YouTube 等)。網址用 analyze.py 內建的 yt-dlp 下載,僅供分析風格。
- **需求**:主題 / 主軸 / 情感方向 / 長度 / 比例。沒說的用預設(30 秒、16:9),不要一次追問一大串。
- (選配)**配樂音檔**與 **LRC 歌詞檔**。
在 `projects/<短代號>/` 開新專案;分析結果放 `projects/<代號>/analysis/`。
## 1. 拆解參考片
```bash
python .claude/skills/video-clone/scripts/analyze.py "<檔案或網址>" --out projects/<代號>/analysis
```
它會自動處理:手機螢幕錄影的 UI 裁切、黑邊、切點偵測、平均鏡頭長度、BPM 與拍點、左右聲道相位相反(錄音常見)、音量正規化、最熱鬧的 30 秒段落,
以及**每個鏡頭的運鏡(shot_details:推近/拉遠/平移/環繞/靜止 + 快慢)與畫面數據(亮度、對比、暗部比例、飽和度、主色)**,`look_summary` 是整支的摘要。
然後**用 Read 打開 `sheet_1fps.jpg` 和 `sheet_scenes.jpg` 實際看**,搭配 `report.json` 寫 `analysis/STYLE.md`:
- **媒材**(必填、放第一行):2d-painted(水彩/墨線)· 2d-crayon(蠟筆/色鉛筆繪本)· 2d-vector(扁平向量、動態圖像)· 2d-pixel(像素)·
2d-paper(剪紙/定格)· 2d-lineart(白板/手繪線稿解說)· 2d-cel(日式動畫賽璐璐)· 3d-stylized · 3d-photoreal · live-action。這是選 skill 的硬條件
- 鏡頭清單:把 `shot_details` 整理成表(編號、秒數、內容、運鏡與快慢、亮暗),企劃會逐鏡對照這張表
- 配色與色彩弧線、角色造型語言
- 剪接:鏡頭數、平均鏡頭長度(秒與拍)、切點是否對拍、轉場種類
- 敘事結構:有沒有故事、開頭結尾是否呼應、有沒有反覆出現的符號(motif)、笑點怎麼設計
- 字幕 / 文字的用法
- 畫面裡若出現製作工具或開源專案連結,記下來(可能直接就是對應的 skill)
**找高潮**:report.json 的 `audio.peak_candidates`(音樂蓄力後爆發)與 `flashes`(閃白格)是線索。每個候選用
`scripts/clip_strip.py analysis/source.mp4 --range a:b --out analysis/peak_<n>.jpg` 抽 12fps 連續影格實際看,
確認真正的爆點,寫 `analysis/peaks.json`(格式見 CONTRACT.md):怎麼鋪陳、有沒有屏息、爆點那一格發生什麼、停多久、聲音、用了哪些手法、為什麼打得到人。
把拆解結果精簡回報給使用者(一張表 + 3–5 個「這支好看的關鍵」+ 高潮在哪裡、靠什麼)。
## 2. 選風格 → 選製作 skill
讀 `styles/` 底下所有 `*.md`(`_TEMPLATE.md` 除外)。每個檔案的 frontmatter 有 `engine`(交給哪個 skill)、`medium` 與 `priority`,內文有「辨識特徵」。
**engine 對應的 `.claude/skills/<engine>/` 資料夾不存在的風格直接跳過**(使用者沒有安裝那個引擎,例如開源版不附的 Remotion skills)。
- **先過濾媒材**:只考慮 `medium` 與參考片媒材相同的風格;沒有同媒材的風格時,選畫面最接近的媒材並在 why 說明(live-action 參考片 → 用最接近的 2D 媒材重現,並告訴使用者)。
**目前只做 2D**(3D 賽道暫停,`styles/_disabled/` 裡的風格不參與選擇)。參考片是 3D/擬真時,選最接近的 2D 風格,
重現它的節奏、運鏡、構圖、光影氣氛與字卡手法(例如黑底+光暈、慢推、灰白兩階標語),並在 route.json 的 why 與回報裡明說
「參考片是 3D,這支用 2D 重現」——不要默默降級。
- 在同媒材的風格裡,拿 STYLE.md 對辨識特徵打分,選最符合的;平手看 priority。
- 使用者明確指定風格或工具時,以使用者為準。
- **都不符合**:挑最接近的 engine 做,並在做完後依 `_TEMPLATE.md` 新增一個風格檔,讓下次能直接對應(告訴使用者新增了什麼)。
- 告訴使用者:判斷成哪個風格、用哪個 skill、為什麼。
然後**載入該 engine skill**(Skill 工具),接下來的製作細節以它的指示為準,並遵守該風格檔的「製作預設」與「已知的坑」。
## 3. 配樂(有音樂的風格才需要)
- 用使用者提供的音檔。沒有的話請使用者提供(可以是他自己合法取得的檔案或螢幕錄音);不要自行下載商業歌曲。
- 再跑一次 analyze.py 分析那個音檔(`--out projects/<代號>/analysis/song`),拿到 BPM、拍點、最熱鬧的段落。
- 報告有 `silent: true` → 請使用者重錄(Windows 剪取工具要打開「系統音訊」);`phase_inverted: true` 或底噪 > -45 dB → 可以先用,但告訴使用者音質上限,建議換正式音檔。
- 從小節線切段:`ffmpeg -ss <start> -t <len> -i audio.wav -af "loudnorm=I=-14:TP=-1.5,afade=t=in:d=0.08,afade=t=out:st=<len-2>:d=2" -c:a aac -b:a 192k assets/clip.m4a`,讓第 0 秒落在拍點上(offset = 0)。
- 所有鏡頭時間用「拍」寫,換音檔只需改 BPM/offset。
## 4. 分鏡
寫 `projects/<代號>/STORYBOARD.md`:Logline、世界觀與色彩弧線、motif、主角情緒弧線、鏡頭表(拍數 · 轉場進 · 事件 · 反應 · 鏡頭運動)。
學參考片的**手法**(節奏、轉場、構圖、motif、呼應結構、笑點設計),內容與角色全部原創。
**逐鏡對照(克隆風格的核心)**:先把參考片的鏡頭清單分成段落(開場、每個賣點、謝幕…),我們的每個鏡頭都要對應到一個參考鏡頭:
plan.json 每個 shot 填 `ref_shot`(參考片鏡頭編號)、`ref_what`(那個鏡頭用了什麼手法),以及具體的 `camera`(engine 能直接用的規格:
運鏡種類、鏡頭焦段、主體佔畫面比例 fill、拍哪個部位 region、景深、起訖角度)。運鏡種類與快慢要跟參考鏡頭一致(參考是慢推,我們就慢推;
參考幾乎每鏡都在動,我們也不能有死的靜止鏡頭)。純字卡的比例、明暗比例、平均鏡頭長度要跟參考片接近(誤差 ±30%)。
寫完自己檢查:把 plan 的鏡頭和 `shot_details` 逐列對一次,不一致的要改,或在 notes 寫理由。
**高潮先設計**:plan.json 的 `peaks` 對應 analysis/peaks.json,寫清楚鋪陳、屏息、爆點(hit_s 對拍)、停住、聲音與手法(參考用的一個都不少);
peaks 裡的鏡頭標 `hero: true`。核准前先把每個爆點那一格做到成片品質,和參考片同一格並排成 `out/check/key_<n>_vs_ref.jpg`,
放在 style_frames 最前面給使用者看;比參考片弱就繼續改,不要交出去。
**變化**:同一場景+同一機位不超過片長 40%,高潮之間換場景或視角;鋪陳段每 1–1.5 秒畫面要有新東西,不要一個構圖停著等爆點。
要有情緒弧線(想要什麼 → 等待或阻礙 → 高潮時得到),不只是能量往上。
給使用者看分鏡並簡短說明;使用者說過「你自己決定」就直接開做。
## 5. 製作:一關一關過,不要堆到最後才審
缺陷在哪裡產生就在哪裡攔下,後面才不會一直疊在壞掉的東西上。App 會照這個順序派 agent(CLI 單獨跑時也照這個順序自己做):
1. **企劃核准前**:plan.json 的 `required_inputs` 列出只有使用者能給的東西(歌詞文字、自家角色設計圖、產品照、Logo)。
沒提供也沒略過就不能核准,生產中不會再卡在「缺歌詞」。
2. **導演建置**:共用素材、角色定義、分段(`build/production.json`,每段 2–5 鏡)。
3. **角色關**:先出角色設定圖(正面、表情 8+、本片會用到的姿勢 6+)→ 全新對話的審查員用人眼清單看全解析度裁切 → 不過就修,過了才開始做鏡頭。
2D 向量角色一律用 `assets/vector_rig/`(骨架+一體輪廓;見它的 README),不准用圓形、長方形另外拼頭、身體、手臂。
4. **分段製作+即時審查**:多個製作 agent 平行做不同段;每段一做完,就由一個全新的審查員看那一段的每鏡 sheet、strip 與角色裁切,
不過就退回同一個製作 agent 修(最多 3 輪)。
hero 鏡頭可以用特製姿勢、誇張變形、衝擊格、smear、光芒、粒子、鏡頭震動;做完用 clip_strip.py `--vs` 和參考高潮逐格並排比。
**不准用閃白或轉場蓋掉做不到的動作或該被看見的那一刻。** 動作一律看 12fps 連續影格判斷(跳格、瞬移、該動不動、僵硬整塊旋轉)。
5. **組裝**(跑 `motion_check.py` 抓黑格、片尾硬切黑、意外靜止;確認有音軌)→ **最後評審**:先做**高潮對決**(我們的高潮 vs 參考片高潮,連續影格並排),
輸給參考片就不能交件;分數以參考片為尺(4 = 和參考片並排不顯得陽春),每項附證據、逐鏡打分;再看接縫、連戲、節奏、字幕,並核對之前每一個「已修正」。
人眼清單(每一關都用):四肢都接在身上、有脖子、沒有接縫或雙層描邊、跟角色設定圖一致、線寬一致、沒有穿模、主體夠大、字看得清楚、
沒有色帶或閃爍、動作有預備與跟隨。看不清楚就裁切放大再看。
**修正要附證據**:每個「已修正」都寫進 fixes.json,附修改前後的全解析度裁切;審查員先核對,說修好但沒修好會原樣退回。
**needs_user**:只有使用者能提供的東西(歌詞、設計圖…)不算缺陷,寫進 `needs_user`,系統會暫停並請使用者提供或略過,不會一直重修。
輸出後回報:路徑、長度、解析度、每鏡一句話內容,並**誠實列出還沒做好或暫代的部分**。
### 歌詞字幕
使用者在 App 貼上歌詞文字(或放 `inputs/lyrics.txt` / `.lrc`),用他提供的音檔自動對時:
`python .claude/skills/video-clone/scripts/align_lyrics.py <音檔> inputs/lyrics.txt --out analysis/lyrics/subs.lrc [--start s --end s]`
(faster-whisper 的字詞時間只當量尺,文字一律用使用者貼的;輸出 .lrc 與 .json,每句附匹配度,匹配度低的句子用前後插值)。
字幕只能來自這些檔案,不自行聽寫或補寫歌詞。
## 6. 依回饋修改
使用者會用「第幾秒哪裡怪」回饋。只改對應鏡頭,重渲染那段影格(painted-animation:刪掉 `out/frames` 對應範圍再 `--frames`),重新編碼。
## 規則
- **角色**:
- **使用者自己擁有的角色可以直接用**:使用者提供自家角色/吉祥物的設計圖(放在 inputs/),就照它製作並保持造型一致,不必換成原創。
**設計圖就是規格**:比例、眼睛、手腳、配色照圖量(不要拿引擎內建的同名角色改),配件綁在臉的錨點上;角色關、鏡頭審查、評審都要把設計圖和畫面並排比。
- **使用者點名要用的角色可以直接用**:自己上網找它的造型(衣服、髮型、配件、配色)照著做,不要拒絕或換成「神似原創」。
- 使用者沒指定角色時用原創角色。
- **歌詞**:只使用使用者提供的 LRC / 歌詞文字,不自行寫出歌詞;分鏡與回報中也不要引用歌詞內容。
- **參考片**:只學風格與手法,不複製它的畫面、角色、Logo 或素材。
- **媒材**:目前只做 2D(3D 賽道暫停,見第 2 步);不做的是生成真人實拍影像或真實人物的臉。
- **使用者自己的產品**:使用者提供產品照片時,用它重建產品(blender-product-film 的 prep_product.py)。標語與賣點只用產品上印的資訊或使用者給的資料,不自編規格或數字;其他品牌的名稱與 Logo 不放進片裡。
- 有疑問但不影響方向的細節,用合理預設先做,完成後再列出來讓使用者調。
## 擴充新風格
使用者要加風格時:複製 `styles/_TEMPLATE.md` 成 `styles/<name>.md`,填 engine(必須是 `.claude/skills/` 下已安裝的 skill;沒有的話先幫使用者找並安裝可信的開源 skill,裝前掃過腳本),填辨識特徵、製作預設、已知的坑。每次製作中踩到新坑,都回頭補進對應風格檔的「已知的坑」。
More agent context in edenfunf/reelmimic
37 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- anime-cel.claude/skills/anime-cel/SKILL.md
- blender-product-film.claude/skills/blender-product-film/SKILL.md
- captions-overlay.claude/skills/captions-overlay/SKILL.md
- crayon-storybook.claude/skills/crayon-storybook/SKILL.md
- cut-the-curve.claude/skills/cut-the-curve/SKILL.md
- embedded-captions.claude/skills/embedded-captions/SKILL.md
- faceless-explainer.claude/skills/faceless-explainer/SKILL.md
- ffmpeg.claude/skills/ffmpeg/SKILL.md
- figma.claude/skills/figma/SKILL.md
- frontend-design.claude/skills/frontend-design/SKILL.md
- general-video.claude/skills/general-video/SKILL.md
- hyperframes-animation.claude/skills/hyperframes-animation/SKILL.md
- hyperframes-audio.claude/skills/hyperframes-audio/SKILL.md
- hyperframes-cli.claude/skills/hyperframes-cli/SKILL.md
- hyperframes-core.claude/skills/hyperframes-core/SKILL.md
- hyperframes-creative.claude/skills/hyperframes-creative/SKILL.md
- hyperframes-keyframes.claude/skills/hyperframes-keyframes/SKILL.md
- hyperframes-registry.claude/skills/hyperframes-registry/SKILL.md
- hyperframes.claude/skills/hyperframes/SKILL.md
- hyperframes-studio.claude/skills/hyperframes-studio/SKILL.md
- media-use.claude/skills/media-use/SKILL.md
- motion-doctrine.claude/skills/motion-doctrine/SKILL.md
- motion-graphics.claude/skills/motion-graphics/SKILL.md
- music-to-video.claude/skills/music-to-video/SKILL.md
- oversized-cursor.claude/skills/oversized-cursor/SKILL.md
- painted-animation.claude/skills/painted-animation/SKILL.md
- paper-cutout.claude/skills/paper-cutout/SKILL.md
- pixel-art.claude/skills/pixel-art/SKILL.md
- product-launch-video.claude/skills/product-launch-video/SKILL.md
- pr-to-video.claude/skills/pr-to-video/SKILL.md
- remotion-to-hyperframes.claude/skills/remotion-to-hyperframes/SKILL.md
- seam-craft.claude/skills/seam-craft/SKILL.md
- slideshow.claude/skills/slideshow/SKILL.md
- talking-head-recut.claude/skills/talking-head-recut/SKILL.md
- whiteboard.claude/skills/whiteboard/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

