基于ComfyUI 本地部署的「图像 + 音频 → 口型匹配 + 自动运镜」MV 全流程指南适用人群:有一定电脑(Windows / macOS / Linux)操作经验、显卡(GPU)支持 CUDA/ROCm、能自行安装 Python 第三方库的技术爱好者。目标:输入一张人像图片 + 一段伴奏/人声音频,自动生成带口型同步、镜头运动(运镜)的短视频(MV)。1️⃣ 项目概览步骤关键技术/模型说明1️⃣音频 → 文本 / 音素时间轴Whisper(ASR)+VITS‑TTS(可选)或OpenAI‑Whisper+g2p获得句子、音素序列以及每个音素的时间戳(用于口型驱动)。2️⃣音素时间轴 → 口型控制参数Voca‑Sync或Wav2Lip‑Sync‑Extractor把音素时间轴转化为 Wav2Lip/ SadTalker 所需的landmark / pose参数。3️⃣静态人像 → 动态口型SadTalker/Audio‑DrivenTalking‑Head(如LivePortrait、Wav2Lip‑3D)基于音素/姿态生成逐帧人脸动画(口型、眉眼微动)。4️⃣运镜(摄像机轨道)ComfyUI‑Camera‑Motion(自研节点)或Stable‑Diffusion‑Video‑2‑Depth+motion‑interpolation生成镜头平移、缩放、推拉等运动轨迹并把它们映射到渲染帧上。5️⃣合成 后期ComfyUI‑Video‑Edit、FFmpeg将动画帧、背景层、运镜信息合成为最终的视频文件,压缩、调色。6️⃣渲染ComfyUI‑Latent‑Video‑Video或ComfyUI‑Animation‑Scheduler把每个帧的 latent → pixel,输出 MP4。核心节点(后面会给出完整 JSON 示例)Whisper ASR→Phoneme Extractor→SadTalker (Audio‑Driven Face)→Camera Motion Generator→Video Composite→FFmpeg Encoder2️⃣ 环境准备项目最低/推荐配置OSWindows 10/11 (64‑bit) 或 Ubuntu 20.04+ 或 macOS 12+CPU任意 8 核心以上(渲染时多线程可加速)GPUNVIDIA RTX 3060 (12 GB) 以上或AMD RDNA2/3 with ROCm 5.4+;VRAM≥8 GB推荐。Python3.10.x(不建议3.11+,部分扩展仍在兼容)CUDA/ROCm对应显卡的驱动 + CUDA 11.8(或 ROCm 5.4)磁盘20 GB 以上空余(模型+生成数据)Tip:如果你的显存不足,可以在 SadTalker 中打开半精度(fp16),或使用LivePortrait的轻量版。3️⃣ 软件安装步骤所有命令均在终端(PowerShell / Terminal / CMD)下执行3.1 创建虚拟环境 安装依赖# 1) 创建项目文件夹mkdircomfyui-mvcdcomfyui-mv# 2) 建立 Python 虚拟环境python-mvenv .venv# Windows.venv\Scripts\activate# macOS / Linuxsource.venv/bin/activate# 3) 升级 pip、setuptoolspipinstall--upgradepip setuptools wheel# 4) 安装 ComfyUI(官方仓库)gitclone https://github.com/comfyanonymous/ComfyUI.gitcdComfyUI pipinstall-rrequirements.txt如果报错torch版本不匹配,请手动安装对应 CUDA 版本的torch:# 示例:CUDA 11.8(Linux)pipinstalltorch==2.2.0+cu118torchvision==0.17.0+cu118torchaudio==2.2.0+cu118-fhttps://download.pytorch.org/whl/torch_stable.html3.2 安装常用扩展(ComfyUI‑Custom‑Nodes)cd../ComfyUI/custom_nodes# Whisper(OpenAI Whisper + pyannote)gitclone https://github.com/kohya-ss/ComfyUI-Whisper.git# SadTalker(音频驱动的 Talking‑Head)gitclone https://github.com/KohakuBlueleaf/ComfyUI-SadTalker.git# Wav2Lip(口型同步提取器,用于精细控制)gitclone https://github.com/xxzy/ComfyUI-Wav2LipSync.git# Camera Motion (自研节点,可自行下载 release 包)gitclone https://github.com/YourName/ComfyUI-Camera-Motion.git# Video Post‑Processing (FFmpeg Wrapper)gitclone https://github.com/ltdrdata/ComfyUI-Video-Tools.git后续:每个仓库里通常都有requirements.txt,进入对应文件夹执行pip install -r requirements.txt(大多数已经在主环境中安装了,要确保opencv-python,ffmpeg-python,moviepy等已装)。3.3 下载模型文件(≈2 GB+)模型下载地址放置目录 (ComfyUI)Whisper large‑v2https://huggingface.co/openai/whisper-large-v2ComfyUI/models/whisper/whisper-large-v2/SadTalker (GFPGAN + wav2lip)https://huggingface.co/face-anim/SadTalker/ComfyUI/custom_nodes/ComfyUI-SadTalker/models/Wav2Liphttps://github.com/Rudrabha/Wav2Lip#pre-trained-modelsComfyUI/custom_nodes/ComfyUI-Wav2LipSync/models/Depth/Control‑Net (用于运镜)https://huggingface.co/controlnet/control_v11p_sd15_depthComfyUI/models/controlnet/Stable Diffusion 1.5 (可选做背景渲染)https://huggingface.co/runwayml/stable-diffusion-v1-5ComfyUI/models/diffusion/提示:下载后确保文件结构与节点脚本读取路径一致(多数节点会自动寻找models/xxx/)。4️⃣ 工作流(Workflow)设计思路下面用流程图形式罗列关键节点,随后给出完整的 ComfyUI JSON(可直接导入)。┌───────────────────────┐ │ 1️⃣ Audio (wav/mp3) │ └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 2️⃣ Whisper ASR + │ │ Phoneme Extractor │ └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 3️⃣ Wav2Lip Sync │ -- 生成 "mouth‑shape" 参数序列(LIP‑coeffs) | └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 4️⃣ SadTalker (Audio‑ │ │ Driven Face) │ -- 依据音素/嘴形生成逐帧人脸动画 | └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 5️⃣ Camera Motion │ -- 生成 “pan / zoom / dolly” 轨迹(2‑3 秒关键帧) | │ (Bezier / Random)│ └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 6️⃣ Video Composite │ -- 把人脸动画贴到背景、添加摄像机变换 | │ (Background + │ │ Depth‑ControlNet) │ └───────┬───────────────┘ ▼ ┌───────────────────────┐ │ 7️⃣ FFmpeg Encode │ -- 合并音频、帧率 (30 fps) → MP4 | └───────────────────────┘4.1 关键节点功能说明节点名(示例)来源(哪个扩展)主要输入主要输出Audio LoadComfyUI 原生本地路径(wav/mp3)audio_tensorWhisper TranscribeComfyUI‑Whisperaudio_tensortext,timestamps(每段文字的起止时间)Phoneme Extractor本仓库(自研)text,timestampsphoneme_seq,phoneme_timesWav2Lip Sync ExtractorComfyUI‑Wav2LipSyncaudio_tensorlip_coeffs(每帧嘴形系数)SadTalker GenerateComfyUI‑SadTalkersource_image,audio_tensor,lip_coeffsframes(RGBA 序列)Camera Motion GeneratorComfyUI‑Camera‑Motionframes或frame_countcamera_matrix_seq(每帧 3×3 仿射矩阵)Video CompositeComfyUI‑Video‑Toolsframes,camera_matrix_seq,background_imagecomposited_framesFFmpeg EncoderComfyUI‑Video‑Toolscomposited_frames,audio_tensoroutput.mp45️⃣ 完整的 ComfyUI Workflow(JSON)将以下代码复制为mv_workflow.json,在 ComfyUI 界面 →“Load workflow”中导入即可。*注:本工作流使用了上面列出的所有第三方节点,请确保已经安装并下载模型。{"last_node_id":32,"last_link_id":43,"nodes"/