Communitygithub.com

haoyiyin/sadtalker-mac

Agent 技能:一鍵生成口播頭像影片 (macOS)。提供一張照片 + 音訊 → 獲得數位人影片。適用於任何 AI Agent(Claude Code、Pi、Cursor、Codex、Copilot)。

sadtalker-mac 是什麼?

此技能旨在讓開發者與 AI Agent 能夠在 macOS 上,透過單一指令快速生成「口播影片」(talking-head video)。用戶只需提供一張人像照片和一段語音音訊,技能便能驅動照片中的人物嘴形與表情,輸出逼真的數位人影片。它支援所有主流 AI Agent 平台(如 Claude Code、Cursor、Codex 等),並特別針對 Apple Silicon(M1/M2)與 Intel Mac 進行了環境配置。技能本身封裝了 SadTalker 模型,並透過 shell 腳本(setup.sh 與 generate.sh)自動處理相依性安裝(如 conda 環境、ffmpeg、dlib 等)與推論流程。用戶可透過參數控制是否啟用 GFPGAN 臉部增強、靜態模式或不同預處理方式。由於 SadTalker 在 Mac 上僅能以 CPU 運行,技能文件特別提醒記憶體與套件版本相容性問題,並提供詳細的驗證與故障排除步驟。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add haoyiyin/sadtalker-mac

在你喜歡的 AI 中提問

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

說明文件

使用時機

用戶想從一張人像照片和一段音訊檔案創建口播 / 數位人影片(口播視頻, 数字人生成, photo talk)。觸發詞:"生成口播视频"、"make this photo talk"、"照片說話"、"数字人視頻"、"sadtalker"、"talking head"、"avatar video from photo"。僅適用於 macOS(Apple Silicon 或 Intel)。

步驟

  1. 定位腳本:它們位於此 SKILL.md 的同一目錄中。使用以下指令找到它們:ls "$(dirname <path-to-this-SKILL.md>)" — 你會看到 setup.sh 和 generate.sh 與此檔案並列。
  2. 檢查先決條件:ffmpeg、conda 環境 sadtalker、~/SadTalker/checkpoints/。若缺少任何項目,請執行 setup.sh(僅首次需要,約需 15 分鐘,下載約 2.5GB)。
  3. 確認用戶已提供人像照片(.jpg/.png)和語音音訊檔案(.wav/.mp3)。如果音訊為其他格式,請先使用 ffmpeg 轉換。
  4. 執行生成:bash generate.sh <照片> <音訊> [--enhancer gfpgan] [--still] [--preprocess full|resize|crop]。此命令會在後台調用 conda run -n sadtalker python inference.py。
  5. 輸出 .mp4 檔案會出現在 ~/SadTalker/results/<時間戳>/ 中。可使用 open <路徑>(macOS)打開。將路徑回報給用戶。

注意事項

  • Python 在 conda 環境內必須是 3.10。3.8 缺少 Apple Silicon 的 wheel 套件,3.11+ 則沒有 scikit-image==0.19.3 的 wheel。
  • 8GB RAM:執行前請關閉 Chrome/IDE。SadTalker 在 Mac 上完全使用 CPU — 沒有 GPU 路徑可用。
  • dlib 必須在 Mac 上單獨安裝:conda run -n sadtalker pip install dlib — 這是 M1 最常見的錯誤。
  • 安裝 torch 時請勿加上 CUDA 後綴:使用純 pip install torch torchvision torchaudio。如果 torch.version 包含 '+cu',請重新安裝。
  • ffmpeg 請使用 brew 安裝,不要用 conda。conda 版本的 ffmpeg 有時會缺少所需的 codec。
  • 首次執行會下載約 2GB 的 checkpoints。在中國境內,請先設定 HF_ENDPOINT=https://hf-mirror.com。
  • GFPGAN 增強器(--enhancer gfpgan)大約會使處理時間加倍。快速預覽時可跳過。
  • --still 模式在搭配 --preprocess full 時,需要全身照片來源。
  • 音訊必須是 .wav 或 .mp3。其他格式會出現 'Header missing' 錯誤。可使用 ffmpeg 轉換:ffmpeg -i input.m4a output.wav。

驗證

  1. conda run -n sadtalker python -c 'import torch; print(torch.version)' — 結果不可包含 '+cu'
  2. ls ~/SadTalker/checkpoints/ — 必須包含 auido2exp_00300-model.pth, auido2pose_00140-model.pth, epoch_20.pth 及其他 .pth 檔案
  3. conda run -n sadtalker python -c 'import dlib; print("ok")' — 必須輸出 'ok'(沒有 Illegal Hardware Instruction)
  4. 煙霧測試:cd ~/SadTalker && conda run -n sadtalker python inference.py --driven_audio examples/driven_audio/bus_chinese.wav --source_image examples/source_image/full_body_1.png — 應在 results/ 目錄下產生輸出

相關技能