Communitygithub.com

montage-editeur

將說話人頭影片(9:16 Reels、TikTok、Shorts 或付費廣告)剪輯成節奏明快的動態圖像版本,並開啟本機 CapCut 風格的編輯介面。

montage-editeur 是什麼?

此技能專注於將說話人頭影片轉化為充滿動態圖像的專業編輯版本,特別適合 9:16 格式的社群媒體 Reels、TikTok、Shorts 或付費廣告。它會自動將全螢幕的臉部鏡頭與「面板」交替呈現——在面板中,說話者會縮小到底部的卡片,頭部彈出,同時上方會播放符合品牌規範的動畫圖形(官方標誌、網站擷圖、聊天/電話模擬、功能卡片、標誌揭示)。此外,還會自動加入字幕、背景音樂、音效以及推近/拉遠的鏡頭運動。關鍵在於,它會開啟一個本機的 CapCut 風格編輯介面(包含場景列表、即時預覽、每個動畫的時間軸、字幕、語音/音樂/音效軌道),使用者可以點擊任何元素留下註解,Claude 會據此處理。此技能在接收到「加入動態圖像」、「為客戶製作」、「做成廣告」、「產品示範」、「需要編輯介面/時間軸」、「調整音量」或「對動畫提出註解」等請求時最為有用。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hakunadigitalpro-png/montage-editeur/tree/HEAD

在你喜歡的 AI 中提問

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

說明文件

動態圖像編輯 + 編輯介面

以使用者的語言與他們交談。字幕請使用說話者的原話(切勿改寫)。

路徑說明:ME 代表此技能資料夾,W 代表每個影片的專案資料夾。所有腳本皆為 bash/python/node;scripts/env.sh 會自動尋找 ffmpeg、node、python、Chrome 以及配套的引擎(engine/)。首次使用:請參閱 README.md → 安裝說明(在技能資料夾中執行 npm install,以及 pip install -r requirements.txt)。

規則(不可協商)

  1. 僅使用官方標誌,不得使用任何重新繪製或「仿製」的圖示。請從品牌官方網站取得(capture_site.js)或詢問使用者。
  2. 品牌規範:若是為客戶製作,請從客戶網站(captures/info.json)讀取顏色、字型與標誌,並將色票寫入 parts/top.js 頂端。若為使用者自己的影片,請詢問一次使用者的品牌規範,並保存在 theme.json 與 top.js 中。
  3. 網站擷圖:擷取客戶網站(完整頁面,包含桌面版與行動版),並在面板中使用(滾動瀏覽器視窗、裁切過的官方插圖)。Cookie 橫幅應隱藏,絕不接受。無法存取已登入的產品畫面:請告知使用者,並提議整合他們提供的螢幕截圖。
  4. 節奏:全螢幕 ↔ 面板(拉遠時放大進入,推近時縮小退出)、在重音單詞上推近(約每 2-3 秒一次)、恰好一個標誌性時刻(標誌/姓名揭示)、背景音樂在語音下方降低音量、音效(每次縮放時的嗖聲、彈出聲、點擊聲、打字聲、揭示時的衝擊聲)、跳接時的光閃。
  5. 付費廣告:頂部 14%(y < 270)及 y ≈ 1250 以下區域(Reels/TikTok 介面)不得放置重要內容;字幕需提高(CAPDY);面板內不得有字幕(面板會以標題形式顯示文字);結尾卡 = 品牌標誌 + 網址 + 說話者的話語;不得編造任何主張或數字。
  6. 字幕絕不能蓋在臉上。從左到右的語言 → projet.json 中設定 "sens": "ltr"(建置過程會修正文字順序);從右到左(阿拉伯語)→ 設定 "rtl"。品牌名稱使用藥丸形狀(fx: "pill",顏色在 projet.json → pill 中設定)。
  7. 混音:使用者可在編輯器中設定語音/音樂/音效的音量。預設值:語音 100%,音樂 46%,音效 36%。務必將響度歸一化至 -14 LUFS。
  8. 每個動畫都是一個註冊元素(請見下方說明),以便使用者可以選取、移位、隱藏及註解。任何動畫都不能存在於註冊機制之外。
  9. 錨點:每個 wS(card, word) 都必須指向該動畫所說明的單詞——執行 scripts/ancres.py 並閱讀其產生的表格;絕不猜測索引。

工作流程

  1. 準備:執行 bash $ME/scripts/preparer.sh <video> <W> <lang> "<Whisper 提示詞:專有名詞>" → 複製來源、全幀裁切、畫面格、可能的剪輯點、逐詞逐句轉錄。然後進行背景中的人物去背(約 1 秒/幀;不要同時執行 Whisper——會佔用過多 RAM):python $ME/engine/mask.py u2net_human_seg <W> && python $ME/engine/make_head.py <W>。
  2. 客戶(如有):執行 node $ME/scripts/capture_site.js <url> <W> → 產生 captures/、assets/logo-*.png、顏色/字型。檢視擷圖,將有用的視覺素材裁切至 W/assets/(例如插圖、適合滾動瀏覽器的長頁面)。
  3. 字幕:撰寫 W/cartes.json(使用原話 + Whisper 時間戳;每張 2-5 個單詞;hot、fx)→ 執行 python $ME/scripts/cartes.py <W>。範本:templates/cartes.EXAMPLE.json。
  4. 編輯計劃:將腳本分段(鉤子、問題、產品、證明、行動呼籲…),為每段選擇:全螢幕或面板、要顯示的具體物件、一個標誌性時刻、音效。撰寫 W/plan-montage.md(範本 templates/plan.EXAMPLE.md),並在動畫化之前簡要向使用者展示。
  5. projet.json(範本 templates/projet.EXAMPLE.json):包含 nom、titre、langue、sens、outro、vol、musique_gain、pill、coupes、cadrage(進入面板的鏡頭 → 測量視窗)、cadrage_force(如果遮罩捕捉到背景)。然後執行 python $ME/scripts/framing.py <W>。
  6. 場景 在 W/parts/ 中:top.js ← templates/top.EXAMPLE.js(色票、CUTS/SEGB、PANELS、縮放 ZP、CAPDY);primitives.js ← templates/primitives.js;gfx.js ← templates/gfx.EXAMPLE.js(SCENES_ED、每個動畫一個 EL(...)、圖層、結尾卡、字型)。
  7. 音效:W/sons.json(範本 templates/sons.EXAMPLE.json):包含 musique {bpm, intro_filtree, coupure = 揭示前的靜音, accords} 以及 events = [元素|null, 時間|"fin+x", "音效[:參數]", 增益, [重複, 間隔]]。可用的音效:pop、bulle、clic、shutter、succes、buzz、tick、touche、impact、tape、whoosh_in:持續時間、whoosh_out:持續時間、ding:頻率:持續時間、shimmer:持續時間、riser:持續時間、souffle:持續時間。將每個音效連結到其對應的元素,以便在元素被移位或隱藏時音效能與之同步。
  8. 錨點:執行 python $ME/scripts/ancres.py <W>。
  9. 預覽:執行 python $ME/scripts/build.py <W>,然後執行 node $ME/engine/04_render_frames.js <W> preview t1 t2 … → 產生連絡表 → 像挑剔的編輯一樣審查(文字可讀?臉部清晰?廣告安全區域?)並在渲染前修正。
  10. 渲染:執行 bash $ME/scripts/rendu.sh <W>(背景執行,需時 3-6 分鐘) → 產生 <nom>.mp4(+ .srt/.txt)、音源分軌在 mixage/pistes/、編輯器媒體檔。檢查 MP4 的 6-8 幀畫面、-14 LUFS 響度、檔案大小。
  11. 編輯器:執行 python $ME/scripts/editor_server.py <W> <port>(在 Claude Code 桌面版中:將其加入 .claude/launch.json 並使用預覽工具),開啟 http://localhost:<port>/editeur/。驗證預覽、點擊選擇及播放功能是否正常。
  12. 監控註解:監看 W/comments.json,每當出現 status == "à faire" 的新註解時輸出一行(指令在 references/editor.md 中)。

處理註解

  1. 讀取註解(target = el:<id> | scene:<id> | cap:<n> | audio:<track>、t、點擊位置 x、y)。
  2. 將狀態設為「處理中」:POST /api/comments/status {"id":…, "status":"en cours"}。
  3. 修改 parts/gfx.js(縮放/面板修改 top.js、字幕修改 cartes.json、音效修改 sons.json)中的對應元素,並確保符合品牌規範及元素註冊機制。若請求不明確,請套用最佳選項並在回覆中提及替代方案。
  4. 執行 python $ME/scripts/build.py <W>(若音效有變更則加上 sons.py) → 編輯器會自動重新載入其預覽。檢查 1-2 幀預覽畫面。
  5. 將狀態設為「完成」並附上簡短 reply(說明修改內容)——此回覆會顯示在編輯器中。提醒使用者他們可以點擊「渲染影片」。
  6. 一般性偏好(「我從不想要 X」)→ 將其加入本檔案中的規則。

元素註冊機制(與編輯器的合約)

EL(id, name, scene, layer, [x,y,w,h], ()=>[start,end], t=>{…繪製…})

  • layer:'panel'(在面板內部繪製,在彈出的頭部後方)· 'full'(全螢幕,在前方)· 'none'(全域:閃光、結尾卡)。
  • t 接收的是編輯器移位過的時間(EDITS.off);僅在你的視窗內繪製;若 EDITS.hide[id] 則隱藏。
  • 範圍 [x,y,w,h] 用於在預覽中點擊:請保持其準確。
  • SCENES_ED = 列在編輯器左側的場景(id、label、a、b、kind)。
  • 縮放:每個 ZP 條目即為元素 zoom<i>(可在編輯器中移除)。

專案檔案

projet.json · cartes.json → caps.json(caps.orig.json = 編輯器基礎) · sons.json · parts/{top,primitives,gfx}.js · framing.js · edits.json(編輯器設定:off、hide、caps、vol) · comments.json · captures/、assets/ · mixage/pistes/ · editeur/ · <nom>.mp4/.srt/.txt。

相關技能