特效:51 種影片特效(作者 Ray,@raycfu)
使用者通常不具備技術背景。請保持回覆簡短且友善,爲他們完成工作,絕不要求他們自行執行指令。
以下所有路徑均相對於此技能所在的資料夾(即此 SKILL.md 所在的資料夾)。請在指令中使用其絕對路徑。
1. 首次執行:設定(一次性)
執行 bash scripts/setup.sh。完成時會顯示 READY(首次執行需 1 到 3 分鐘)。
NEED_FFMPEG:爲他們安裝 FFmpeg。在 Mac 上:brew install ffmpeg(如果缺少brew,請告知他們先從 brew.sh 安裝 Homebrew)。在 Windows 上:winget install ffmpeg。NEED_PYTHON:安裝 Python 3.12(Mac:brew install [email protected],Windows:winget install Python.Python.3.12),然後重新執行設定腳本。- 在 Windows 上,Python 的路徑是
.venv\Scripts\python.exe,而非.venv/bin/python。 - Windows 無
bash:執行py -3.12 -m venv .venv,然後執行.venv\Scripts\python.exe -m pip install -r requirements.txt。可選的乾淨去背:將 https://github.com/PeterL1n/RobustVideoMatting/releases/download/v1.0.0/rvm_mobilenetv3_fp32.onnx 下載到models/。 NEED_PYTHON_312:他們的預設 Python 無法安裝套件。請依上述方式安裝 Python 3.12 並重新執行設定腳本。- 來自 TensorFlow Lite、MediaPipe 或 OpenCV 的無害日誌訊息(
INFO:、WARNING:、W0000、[ WARN)是正常的。只有Done:或saved才表示成功。
2. 取得影片與特效
- 影片:使用者將檔案拖入對話,或提供路徑。直立的手機影片效果最佳。
- 特效:來自
/effects <名稱>,或來自他們描述的效果。將他們的描述與下方表格配對。如果不確定?向他們顯示清單。 - 他們的名字與帳號:會顯示個人資料的特效(glass-widgets、comment-box、pastel-word、profile-wall、headline-wall 等)預設使用 Ray / @raycfu。向用戶詢問一次他們的名字與帳號,然後在每個特效中傳入
name與handle。
3. 找到時間點
- 如果他們說「在『X』這個詞的時候」或「當我說……的時候」,執行
.venv/bin/python scripts/words.py <影片>並使用那些時間點。 - 如果他們沒有提供時間點,則對整個片段套用特效,或詢問他們要套用哪個部分(一個簡短的問題)。
- 短時間視窗看起來最好:每個特效 1.5 到 4 秒。
4. 草稿、檢查、渲染
- 在他們的影片旁邊寫下計畫,檔案名稱為
<影片名稱>_effects.json:{"effects": [ {"fx": "orbit", "start": 3.2, "end": 6.0}, {"fx": "backdrop-word", "start": 14.0, "end": 16.3, "text": "CLAUDE"} ]} - 先檢查影格(快速):
.venv/bin/python scripts/fx.py --plan <計畫.json> <影片> <資料夾>/check.png --still 4.5,15.2,使用每個特效的中間時間點。自行查看那些 PNG 圖片。如果某些部分看起來不對勁(遮擋臉部、被邊緣裁切、難以閱讀),修正文字、時間點或選項。 - 渲染:
.venv/bin/python scripts/fx.py --plan <計畫.json> <影片> <影片名稱>_effects.mp4。輸出會保留原始音訊。預設渲染為 1080p;加上--width 2160可輸出 4K(較慢)。 - 告知他們檔案的位置。用一句話提醒他們在發布前先觀看:這是草稿,他們來批准。
單一特效無需計畫:.venv/bin/python scripts/fx.py orbit <影片> <輸出.mp4> --start 3 --end 6 --text "..." --opt key=value。
51 種特效
| # | fx 名稱 | 作用 | 選項(皆為可選) |
|---|---|---|---|
| 1 | noise | 動態精選片段在頭後堆疊,每秒疊上一個 | images(螢幕截圖或剪輯的資料夾)、size |
| 2 | lineup | 編號方塊在頭頂上方展開成弧形 | text(方塊名稱,用 ` |
| 3 | locked-on | 角落框標鎖定臉部,鏡頭跟隨移動 | zoom(預設 1.35)、text(標籤) |
| 4 | orbit | 動態精選片段繞頭旋轉:下方在前、上方在後 | images、count、speed、size |
| 5 | lean-in | 在一個詞上快速推近 | zoom(預設 1.45,最大 2)、speed |
| 6 | backdrop-word | 一個巨大的詞從身後落下 | text、color(十六進位)、font(bold 或 serif) |
| 7 | spotlight | 熄滅燈光,僅照亮你 | text(身後發光的詞)、color、push |
| 8 | the-bill | 將你的步驟像收據一樣印在頭頂上方牆上 | text(行,用 ` |
| 9 | moody | 營造氛圍的調色 | grade(moody、bw、warm、cool、pop) |
| 10 | swipe | 前後對比滑桿橫掃過你 | grade(「之後」的色調) |
| 11 | todo | 臉旁的檢查清單卡片,隨著說話逐項打勾 | text(項目,用 ` |
| 12 | comment-box | Instagram 評論欄打出一串字並發布 | text(預設 EFFECTS) |
| 13 | tap | 追蹤按鈕彈出並翻轉爲「正在追蹤」 | at(翻轉的影片秒數)、x、y(0 到 1)、color |
| 14 | pause-point | 凍結畫面並用一隻手繪箭頭指向你 | text(標籤)、color、label_x |
| 15 | uninstall | 故障風格的卸載進度條將畫面打碎 | text |
| 16 | reel-frame | 影片縮小成 Instagram Reels 卡片 | text(帳號) |
| 17 | shortcut-rain | 鍵盤快捷鍵在身後如雨落下 | text(按鍵,用 ` |
| 18 | reject-stamp | 一個巨大的紅色印章猛砸在畫面上 | text、color、angle、y |
| 19 | countdown-flip | 頭頂上方的 3、2、1 翻頁時鐘 | from |
| 20 | rabbit-hole | 畫面陷入自身,旋轉縮小 | ratio、speed、spin |
| 21 | cover-star | 你變成雜誌封面,標題在頭後 | text(標題)、lines(用 ` |
| 22 | scribble | 記號筆塗鴉在你周圍自行畫出 | text(標籤)、color |
| 23 | glass-widgets | 磨砂玻璃小工具和小物件漂浮在頭部周圍,加上一個「Edited by Claude」藥丸 | text(數字)、name、handle、look(simple 為 3 小工具版本) |
| 24 | red-collage | 黑白的你、身後巨大的紅色詞彙、三行文字猛擊入場 | text(紅色詞彙)、lines(用 ` |
| 25 | split-headline | 標題卡片滑下,將你推到下半部 | text(行,用 ` |
| 26 | pastel-word | 薰衣草色房間、身後巨大的詞、個人檔案卡片被追蹤 | text、name、handle |
| 27 | check-pills | 方格紙房間、身後 Reels 面板、游標點擊藍色藥丸 | text(藥丸,用 ` |
| 28 | timeline | 暗紅色調色、編輯時間軸、REC 時間碼、發光的播放頭 | text(標題)、sub、tc |
| 29 | headline-box | 推近搭配兩行標題,第二行在白色框中 | text(行,用 ` |
| 30 | profile-wall | 動態精選片段以網格填滿身後牆壁,計數器增加 | images、count、label |
| 31 | tier-list | 階級列表落下,Claude 飛入 S 階 | title、item、others |
| 32 | broll-split | 上方 B-roll 搭配價格標籤貼紙,你位於下方 | images、text(標籤) |
| 33 | phone-fan | 動態精選片段如手機扇展開在標題下方 | images、text(行,用 ` |
| 34 | dot-reveal | 畫面由螢光點構成,然後瞬間切換為完整圖片 | color、cell |
| 35 | headline-wall | 自己的標題在頭後堆疊,然後總數彈出在前 | text(`標題::元資料 |
| 36 | checklist | Claude 任務清單在下巴下方:每個步驟旋轉後轉為綠色勾選 | text(`步驟::元資料 |
| 37 | liquid-glass-graph | 下巴下方的液體玻璃卡片:綠色圖表攀升,數字同步增加 | text(標籤)、from、to(例如 197K、59%)、color |
| 38 | carousel-spin | 動態精選片段在 3D 旋轉木馬中環繞,然後慢速停止 | images、count、size、turns |
| 39 | match-cut | 新聞頁面在一個詞處剪輯,鎖在頭後的紅框中 | text(詞,預設 Claude)、color |
| 40 | apple-toggles | 下巴下方的 iPhone 設定卡片逐行打開開關 | text(行,用 ` |
| 41 | led-sign | 燈光暗下,發光 LED 標誌在身後逐字打出 | text(行,用 ` |
| 42 | slow-push | 緩慢的電影感推近臉部,同時房間淡出失焦 | zoom(預設 1.6)、blur |
| 43 | over-the-shoulder-zoom | 鏡頭推入一個上角落,透明液體玻璃圖表出現在頭旁(線條攀升、數字增加),拉回,然後另一個角落出現第二張相關長條圖。頭部保持在前面 | text(兩個標籤,用 ` |
| 44 | messages | iMessage 通知一條接一條彈出,奶油玻璃質感搭配柔和光暈,在畫面底部上方堆疊 | text(訊息,用 ` |
| 45 | place-in-grid | 你縮入 3x3 個人檔案網格的中心格子(磨砂玻璃),然後 8 則 Reels 在周圍彈出,每格一個,每格顯示 Instagram 觀看次數 | images(你的 Reels 或封面資料夾)、views(9 個數字,用 ` |
| 46 | tape-label | 一條帶有你文字的黃色膠帶貼在胸前,避開臉部 | text |
| 47 | select-resize | 一個藍色選取框帶手柄抓住頭頂的數字,游標將其拖大 | text(預設 2X) |
| 48 | wave-trim | 頭頂深色面板顯示你的聲音波形;兩端紅色虛線的靜音部分向內收縮,直到只留下你的話語 | 無 |
| 49 | huge-strike | 一個巨大的襯線字體詞彙在頭後擦拭入場,然後一條紅線將其劃掉 | text、at(特效開始後的秒數,預設 0.6) |
| 50 | crayon-write | 一支紅色蠟筆在頭後寫出你的詞彙,然後畫線強調並飛走 | text |
| 51 | fan-build | 你的 Reels 封面一張接一張地發牌成扇形,置於頭後 | images(你的封面資料夾)、count(預設 13) |
命名樣式(同樣特效,更華麗的版本;不增加數量):
glitter-spotlight= 帶有look=sparkle的spotlight:房間變暗,金色光芒從頭後迸發,一個帶有光澤掃過的大金字、閃爍的亮片和周圍的光暈。text(詞)、color、push。- 帶有
look=editorial的cover-star:柔和溫暖的電影感色調、頭後經典襯線字體報頭、期號線和優雅的封面標題。text(報頭)、issue、lines(3 行,用|連接)、right(行,用|連接)、color、accent、lines_y、right_y。 - 帶有
look=bento的liquid-glass-graph:攀升的圖表移動到頭後的煙燻玻璃螢幕上,前方有玻璃便當盒磚(甜甜圈、KPI、長條圖)。text、from、to、donut(29%::標籤)、kpi(672K::標籤)、bars(197|140|124::標籤)。 apple-toggles現在位於頭上,藏在頭後,帶有輕柔的縮放(pos=below為舊版下巴下方卡片;overlap、zoom)。
別名也可用:bill、to-do、follow、stamp、countdown、cover、rain、pause。
規則
- 絕不遮擋臉部。所有內容都放在人物後方或自行避開臉部;如果檢查影格仍顯示文字覆蓋在臉上,請移動它(
x、y)或縮短文字。 - 特效按列出的順序執行。當相機特效(
locked-on、lean-in、spotlight)與其他特效重疊時,應放在前面。 - 縮放絕不超過 2 倍,以保持影片清晰。
- 此技能僅添加視覺效果。音效和字幕由使用者自行處理(CapCut 效果很好)。
- 這些是入門版本。如果使用者將其與他們看過的 Reels 比較,請誠實告知。
額外選項(Ray 版)
這些是在基礎特效之上新增的,用於修正真實影片中看起來不協調的部分。像其他選項一樣傳入(在計畫中為 "key": "value",或使用 --opt key=value)。
| 特效 | 選項 | 作用 |
|---|---|---|
| 任何卡片/環繞特效 | play=1 | 在卡片中播放 images 資料夾內的每個影片而非靜止畫面 |
liquid-glass-graph | pos=behind | 將圖表放在頭後的深色玻璃螢幕上,而非胸前 |
liquid-glass-graph | smoke=0.5..0.85 | 深色煙燻玻璃取代透明液體玻璃(無你身體的模糊複製) |
liquid-glass-graph、over-the-shoulder-zoom | to=$32,000 | 貨幣前綴和千位數分隔符能正確計數 |
checklist | smoke、scale=0.86、bottom=0.95、guard=0 | 深色易讀卡片,較小,位置偏低,絕不碰到臉 |
checklist | span=2.9 | 勾選標記落下的總秒數,使最後一個勾對應到你的手勢 |
spotlight | flicker=0、lift=0.8 | 關閉霓虹燈閃爍效果,或降低詞的位置使頭部遮蓋部分文字 |
cover-star | mast_y=0.15 | 固定報頭高度(搭配更緊湊的裁切,使頭部重疊其上) |
comment-box | lock=1、avatar_color=#FDB827 | 固定評論面板位置,設定頭像顏色(字母來自 handle) |
若手部擋在卡片前方:先渲染特效,然後執行 .venv/bin/python scripts/hands_front.py <原始影片> <已套用特效的影片> <輸出>。
去背品質:如果 models/rvm_mobilenetv3_fp32.onnx 存在,每個特效都會使用 Robust Video Matting 進行人物去背(更乾淨的髮絲,無閃爍)。設定 FX_MATTE=mp 以使用原始的 MediaPipe 分割器。