Communitygithub.com

tach-nguoi

在您自己的影片上製作人物去背特效——大文字放在人物背後(chữ sau lưng người)、凍結幀角色介紹附姓名卡、瞬間凍結/漫畫凍結,以及分身(phân thân,一鏡或兩鏡)。自動正確處理越南文,將文字放在可讀範圍內,並在各 App 的安全區域內,支援 9:16 或 16:9。

tach-nguoi 是什麼?

tach-nguoi 是一項專為 AI 代理工具(如 Claude Code)設計的技能,用於在用戶自己的影片上製作人物去背特效。它支援多種效果,包括「文字背後」(將大文字放在人物背後,並自動調整位置以保持可讀性)、「凍結幀角色介紹」(附姓名卡)、「瞬間凍結/漫畫凍結」以及「分身」(一鏡或兩鏡拍攝合成)。此技能針對越南文使用者進行了最佳化,能自動設定文字位置以避開各平台的安全區域(如 TikTok 的按鈕區、YouTube Shorts 的標題區等),並支援 9:16 和 16:9 的影片比例。核心去背功能依賴 PyTorch 和 RVM 模型,在配備 NVIDIA GPU 的電腦上可達到 35-50 fps 的處理速度;若無 GPU 則速度會大幅下降。所有處理都在用戶的電腦上本地完成,確保隱私,僅在首次使用時下載 RVM 模型。使用流程包括先產生靜態圖進行可讀性檢查,接著提供低解析度預覽,最後才進行完整渲染。技能內建詳細的設定問答流程,引導用戶選擇平台、字型、顏色、動畫等偏好,並可將設定儲存於專案資料夾中。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thegentleminh/thegentleminh-skills/tree/HEAD/plugins/tach-nguoi/skills/tach-nguoi

在你喜歡的 AI 中提問

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

說明文件

人物去背特效(person cut-out effects)

您協助創作者在其自己的影片中圍繞人物加入特效。許多使用者是越南人:如果他們用越南文書寫,請用口語、自然的越南文回答。

腳本位於此技能的 scripts/ 資料夾中。請使用完整路徑(或從技能資料夾)執行它們,同時在使用者自己的資料夾中工作:設定檔和所有輸出都會放在使用者的資料夾中,絕不會放在技能資料夾中。

需求與限制

在安裝任何東西之前,以及每當要求缺少某些東西時,請告知使用者這些事項。 python scripts/tn.py check 會顯示目前的安裝狀態。

  • 需求: 付費的 Claude 方案搭配 Claude Code;ffmpeg;Python 3.10+ 且安裝 numpy、opencv-python、pillow。 去背功能需要 PyTorch(約 2-3 GB,最好安裝在獨立的 Python 環境中)以及 RVM 模型,PyTorch 會在首次進行去背時從 GitHub 下載一次該模型(約 15-100 MB)。
  • GPU: 強烈建議使用 NVIDIA 顯示卡。使用 GPU 時,去背處理速度約為每秒 35-50 張;使用 CPU 則會慢大約 20-50 倍(一個 30 秒的片段可能需要 10-20 分鐘)。無論使用哪種方式,所有特效都可執行。
  • 速度(測試於 RTX 4080): 靜態圖片只需數秒;1080p 的完整渲染,文字背後和分身效果約為 18-27 fps,凍結效果約為 9-19 fps(一個 20 秒的片段約需 1-2 分鐘,這是一次性去背之後的速度)。
  • 作業系統測試: Windows 10(所有指令皆可)。macOS:尚未測試(那裡沒有 NVIDIA GPU,因此去背速度很慢)。
  • 限制: 最適合有一或兩個人,且頭部上方或側邊有空間的場景。緊湊的垂直特寫會導致文字變小。快速移動、頭髮與複雜背景交錯以及透明物體會產生粗糙邊緣。分身效果需要三腳架或幾乎靜止的相機。雙鏡分身需要從同一位置拍攝兩個鏡頭。
  • 缺少時的狀況: 若無 PyTorch,則無法執行任何特效(每個特效都需要去背)。請說明情況並提供安裝選項(先詢問)。
  • 隱私: 所有處理都在使用者電腦上進行;唯一的下載是 RVM 模型,僅一次。

安裝 PyTorch(先詢問;告知約 2-3 GB)

在獨立的環境中安裝,以免破壞其他 Python 工具:

python -m venv tach-nguoi-env
tach-nguoi-env/Scripts/python -m pip install numpy opencv-python pillow      (macOS/Linux: tach-nguoi-env/bin/python)
tach-nguoi-env/Scripts/python -m pip install torch --index-url https://download.pytorch.org/whl/cu126   (NVIDIA GPU)
tach-nguoi-env/Scripts/python -m pip install torch                                                     (無 NVIDIA GPU)

然後使用該 Python 環境執行所有 tn.py 指令(tach-nguoi-env/Scripts/python scripts/tn.py ...)。

規則(始終遵循)

  1. 切勿變更使用者的原始片段。 讀取它們;將每個結果寫入計畫檔案旁(或使用者指定的位置)的新檔案。不會覆寫任何內容:請選擇一個新名稱。
  2. 安裝任何東西之前先詢問(說明內容、原因、大小、確切指令)。
  3. 先產生靜態圖,然後是低解析度預覽,最後才是完整渲染。 在花費時間進行完整渲染之前,先顯示靜態圖並說明檢查結果。
  4. 閱讀腳本列印的檢查結果(隱藏百分比、對比度、NOT READABLE 備註;也會儲存在靜態圖旁的 checks.json 中),並用一句簡單的話向使用者說明每一項。凍結效果會列印其凍結的幀數:請查看靜態圖。

設定(僅首次)

在執行第一個特效之前,請先執行 python scripts/tn.py settings。如果顯示 NOT saved yet,請依序使用使用者的語言(提供越南文措辭)逐一詢問下列設定問題;如果顯示 NOT finished,則僅詢問其列出的問題。每個問題都提供其選項,外加兩個額外選項:

  • "Mình chưa chắc, giải thích giúp mình":用一兩句簡單的話說明該選擇會改變什麼,然後再次詢問。
  • "Cho mình xem hết để so sánh":執行 python scripts/tn.py sample <種類> <他們的片段> --out <專案>/tach-nguoi-mau/<種類>.mp4 --text "<他們影片中的一個詞>",顯示該檔案,然後再次詢問。大約需要 5-40 秒(請告知);它會使用他們自己的片段、低解析度、所有選項並排顯示,並附有標籤。

立即儲存每個答案:python scripts/tn.py settings set <鍵>=<值>。答案會存放在他們專案資料夾中的 tach-nguoi.settings.json 檔案裡,因此設定不會再次執行,除非他們要求(「làm lại phần cài đặt」→ 執行 tn.py settings reset,然後重新詢問)。計畫檔案仍然可以針對單一影片覆寫任何設定。

#問題(越南文)選項 → 值鍵sample 種類
1你的影片最常發佈在哪裡?TikTok → tiktok · YouTube Shorts → shorts · Reels → reels · YouTube 橫式影片 → youtubeplatformplatform
2你喜歡哪種字型?高瘦、緊湊 → cao · 粗體 → dam · 適中粗體 → dam-vuafontfont
3文字顏色?白色 → #ffffff · 黃色 → #ffd400 · 黑色 → #111111 · 頻道品牌色(詢問色碼)colorcolor
4人物遮蓋文字的程度?少,文字始終易讀 → light · 適中 → medium · 多,潮流感 → boldcovercover
5文字出現的方式?升起 → rise · 彈出 → pop · 逐字母出現 → letters · 直接出現 → noneanimanim
6角色介紹時,人物周圍的邊框樣式?白色邊框 → white · 發光邊框 → glow · 無邊框 → noneoutlineoutline
7強調色(姓名旁的線條、職稱行、漫畫對話框)?黃色 → #ffd400 · 頻道品牌色(詢問色碼)accent(顯示 outline)
8是否加入音效?是 → on · 否 → offsfxsfx(播放每種音效)

對於「chưa chắc」的說明:

  1. 每個應用程式都會遮蓋一部分畫面(右側的按鈕、下方的描述區域)。我們會將文字和姓名卡放置在避開這些區域的位置。
  2. 高瘦、緊湊的字型看起來最像潮流影片;粗體字型在小型手機上容易閱讀。
  3. 我們會自動檢查對比度:如果文字在背景上難以閱讀,我們會添加陰影並通知您。
  4. 「少」表示頭部只會輕微觸碰到文字。「多」表示頭部會完全遮蓋詞彙中間的一兩個字母,看起來更像潮流風格,但較難閱讀。每個詞的第一個和最後一個字母始終保留。
  5. 這只是文字在前半秒內出現的方式。
  6. 邊框有助於在影片凍結時,讓人物從暗色背景中凸顯出來。
  7. 音效是完全重新製作的,沒有版權問題。

不要詢問片段已經能回答的問題(例如其形狀、長度)。如果使用者說「cứ làm đi」或「mặc định」,則執行 python scripts/tn.py settings defaults(設定為 tiktok、cao、白色、medium、rise、white、黃色強調色、音效開啟)並繼續。

指令

所有指令都使用已安裝套件的 Python 環境執行(請參閱 python scripts/tn.py check)。

python scripts/tn.py check                                   # 檢查已安裝項目、GPU、RVM 模型
python scripts/tn.py behind plan.json --out out/clip.mp4 --stills    # 每段文字產生 4 張靜態圖 + 檢查(快速)
python scripts/tn.py behind plan.json --out out/clip.mp4 --preview   # 半尺寸,僅文字範圍 -> out/clip.preview.mp4
python scripts/tn.py behind plan.json --out out/clip.mp4             # 完整渲染,保留原始音訊

在片段上首次執行時,會將整個片段中的人物去背(RTX 4080 上約 50 fps)並快取在輸出旁的 _tach-nguoi-work/ 資料夾中。

計畫檔案(您來撰寫)

{"clip": "raw/my-clip.mp4",
 "items": [{"text": "Thành công", "start": 1.0, "end": 7.0,
            "font": "cao", "color": "#ffffff", "anim": "rise", "cover": "medium"}]}
  • text:支援越南文(任何輸入形式;會自動正規化)。預設以大寫顯示,除非 "upper": false。\n 會強制換行;否則腳本也會嘗試雙行佈局並保留較佳者。
  • start / end:秒數。至少 0.5 秒。
  • font:cao(高瘦、緊湊,經典外觀)、dam(粗體)、dam-vua(特粗),或 .ttf 檔案的路徑。
  • anim:rise、pop、letters(一次一個字母)、none。每段文字也會在 0.25 秒內淡出,並在其持續時間內推動 3%("drift": 0 可關閉此效果)。
  • cover:人物遮蓋文字的程度。light(始終易讀)、medium(預設)、bold(潮流感外觀)。
  • 可選項目:x、y(0-1 的中心位置,用於手動放置)、width(佔畫框寬度的比例)、shadow(0-1 的發光程度;會根據對比度檢查自動設定)。

位置是自動的:文字會以最大尺寸和最佳位置放置,使其位於頭部後方,且每個詞的第一個和最後一個字母保持可見,同時避開各平台的安全區域(9:16 會避開頂部欄、右側按鈕和底部字幕區域)。

凍結幀效果

python scripts/tn.py freeze plan.json --out out/clip.mp4 --stills    # 每個凍結效果的關鍵靜態圖(快速)
python scripts/tn.py freeze plan.json --out out/clip.mp4 --preview   # 半尺寸 -> out/clip.preview.mp4
python scripts/tn.py freeze plan.json --out out/clip.mp4             # 完整渲染
{"clip": "raw/my-clip.mp4",
 "items": [
  {"effect": "intro", "at": 2.0, "name": "Anh Tuấn", "role": "Đầu bếp · 20 năm nghề", "outline": "white", "color": "#ffd400"},
  {"effect": "snap", "at": 8.5},
  {"effect": "comic", "at": 13.2, "caption": "Ủa, thiệt hả?!"}
 ]}
  • 影片會在一個幀上暫停 hold 秒(預設:intro 2.4 秒,snap 1.6 秒,comic 1.8 秒),然後繼續播放。片段會因暫停而變長;原始聲音也會暫停,並播放效果本身的音效(從頭製作,無需授權;"sfx": false 可關閉,"sfx_gain" 可調整音量)。
  • at 是原始片段中的時間。腳本會凍結在 ±0.25 秒內最清晰的幀(無動態模糊);"exact": true 會保留確切的幀。請選擇人物臉部清晰的時刻:例如有人說出他們的名字時、有強烈反應時、或擺出姿勢時。
  • intro:背景變暗並轉為灰色,人物向前突出 6% 並帶有邊框(white、color 指定的 glow,或 none),姓名卡從人物另一側滑入。name 以大寫顯示,role 以 color 指定的顏色顯示。
  • snap:白色閃光 + 快門聲,畫面縮小成一個傾斜的沖印照片,疊在模糊的副本之上。
  • comic:平面色彩、墨線、網點、人物背後閃爍的速度線,可選的 caption 對話框(color 設定框的顏色)。

分身(phân thân)

python scripts/tn.py clone plan.json --out out/clip.mp4 --stills | --preview | (完整渲染)
{"clip": "raw/walk.mp4",
 "items": [{"effect": "trail", "start": 6.3, "end": 13.0, "every": 0.8, "style": "fade", "fade": 0.6}]}
  • trail(一鏡):當人物移動時,在 start 到 end 之間每隔 every 秒留下一個複製體並停留,然後所有複製體會在 fade 秒內淡出。只有移動中的人物會被複製(靜止的人物不會被複製)。style:fade(較舊的複製體較淡)、solid、ghost(半透明,一半灰色)。每個複製體出現時會播放一個柔和的閃現音效(在計畫檔案頂層設定 "sfx": false 可關閉)。
  • two(雙鏡,一人分飾兩角):{"effect": "two", "second": "raw/take2.mp4", "start": 0, "end": 10, "b_start": 0, "mode": "overlay"}。overlay 會將第二個鏡頭中的人物去背,並疊加在第一個鏡頭上("front": "a" 可在人物交錯時讓第一個鏡頭中的人物保持在前面);split 會沿最空的列合併兩個鏡頭,並帶有柔和的接縫。
  • 兩者都會先將每個幀與背景對齊,因此輕微晃動的相機仍然可行(指令會列印相機移動的距離)。但三腳架仍然是最佳選擇:大幅度移動、平移或手持的相機將無法對齊。

已知限制

  • 最適合頭部上方或側邊有空間的場景。在緊湊的特寫鏡頭中,如果臉部充滿垂直畫框,文字最終會出現在頭部上方且變得很小;請告知使用者並建議使用較寬的鏡頭或 cover: bold。
  • 整個影片的去背需要 PyTorch 和 RVM 模型(GPL-3.0,由使用者機器在首次使用時下載);NVIDIA GPU 可加快速度。

範例提示詞

可複製貼上的提示詞(更多範例和備註請參閱 examples/prompts.md):

  • 一句話起手式: "Làm chữ 'THÀNH CÔNG' sau lưng mình trong clip raw/clip.mp4." → 設定問題(首次)、4 張附帶可讀性檢查的靜態圖,然後是完整的文字背後影片。
  • 詳細需求: "Clip raw/phong-van.mp4: giây 2 giới thiệu nhân vật tên 'Chị Lan', chức danh 'Chủ quán phở · 15 năm', giây 9 dừng hình kiểu truyện tranh với câu 'Thiệt luôn hả?!', giây 14 chụp ảnh dừng hình. Có tiếng động." → 一次渲染,包含姓名卡角色介紹、附對話框的漫畫凍結以及照片瞬間凍結,每個效果都有自己的音效。
  • 文字背後,潮流感: "Chữ 'ĐÀ LẠT' sau lưng mình, cho đầu che nhiều như trend, chữ vàng, hiện từng chữ cái."
  • 分身: "Clip raw/di-bo.mp4 mình đi ngang qua: để lại bóng mình mỗi 0,8 giây rồi mờ dần." → 沿著路徑留下複製體,然後一起淡出。
  • 雙鏡: "Mình quay 2 lần cùng chỗ (raw/vai-a.mp4, raw/vai-b.mp4), ghép thành 2 người nói chuyện với nhau."
  • 比較: "Cho mình xem các kiểu chữ để so sánh." → 在您自己的片段上產生一個帶標籤的並排比較。
  • 修改意見: "Chữ to hơn chút, dời lên trên, dừng hình lâu hơn 1 giây, bỏ tiếng chụp ảnh." → 僅進行這些修改;新的靜態圖,然後是新的渲染(舊的保留)。

如果出現問題

此技能是使用 Claude Code 構建的,因此可能存在錯誤,且每台電腦都不同。當某個步驟失敗,或使用者表示結果看起來不對時:

  1. 用簡單的越南文解釋: 用一兩句話說明什麼失敗了以及原因。除非被要求,否則不要顯示原始堆疊追蹤。
  2. 閱讀此技能文件以及涉及的腳本(scripts/tn.py 和該效果的 tn_*.py 檔案)。如果可能缺少某些東西,請執行 python scripts/tn.py check。
  3. 修復問題並重新執行,寫入一個新的輸出檔案。即使在修復過程中,也絕不要觸碰或覆寫使用者的片段。
  4. 如果問題原因是此技能本身,請說明並建議回報問題,以便為所有人修復: https://github.com/thegentleminh/thegentleminh-skills/issues

常見失敗

  • No module named 'torch': 執行指令的 Python 環境中未安裝 PyTorch;請使用 tach-nguoi-env 環境中的 Python。

Individual skills in this repo

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

anh-thanh-video

Turn photos into a video - a beat-synced photo edit (photos change on the beat with flash, pop, shake and snap-and-ease camera moves, like the "2 ảnh / 3 ảnh" templates but with any song the user owns and any number of photos), a gentle photo album (slow push toward faces, soft crossfades, title and captions), or a 2.5D "3D zoom" where near things move more than far things. Faces stay in frame, Vietnamese text done right, 9:16 / 16:9 / 1:1 / 4:5. Use for "biến ảnh thành video", "ghép ảnh thành video", "video ảnh theo nhạc", "photo slideshow", "mẫu capcut nhiều ảnh", "video kỷ niệm", "album ảnh cưới/gia đình", "ảnh 3D", product photo videos.

dung-video

Set up a computer for editing YouTube videos with Claude Code and do basic edits with the free tool ffmpeg - check and install ffmpeg/Python, create a tidy project folder, trim, join, make a vertical 9:16 version for Shorts, Vietnamese subtitles (.srt) with Whisper, even out loudness, export with YouTube's recommended upload settings, grab a thumbnail frame. Use when the user wants to set up video editing, cut or join clips, make Shorts, add subtitles, fix volume, or export a video for YouTube.

video-giai-thich

Make a Vietnamese animated explainer video (9:16, TikTok / Reels / Shorts) from a topic or a question - "vì sao bầu trời màu xanh?", "lãi kép là gì?" - with a spoken-Vietnamese script, a voice (ElevenLabs, your own recording, or none), on-screen words that appear as they are spoken, and pictures animated in code and timed to the words. Five looks (riso print, chalkboard, newsprint, blueprint, poster). Use for "làm video giải thích", "video kiến thức", "video khoa học", "giải thích bằng hoạt hình", "explainer video in Vietnamese", "vibe coding animation", "video kiểu Vibe知识".

相關技能