如何用ComfyUI-WanVideoWrapper让静态照片开口说话:语音驱动视频实战完整指南
【免费下载链接】ComfyUI-WanVideoWrapper项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper
ComfyUI-WanVideoWrapper 是 WanVideo 视频生成模型的 ComfyUI 节点封装,其中的 HuMo 模块只需一张人物照片加一段录音,就能生成人物随语音起伏的动态视频。本指南面向 AI 新手和有 ComfyUI 使用基础的普通用户,从环境搭建、跑通示例工作流,到关键参数调优与排错,全程带你走通语音驱动视频的完整链路。
环境搭建:缺一不可的三件事
语音驱动功能对模型文件的要求比普通图生视频更严格,缺一个节点就会在运行时报错。按顺序完成下面三件事:
克隆仓库到 custom_nodes 目录。WanVideoWrapper 是 ComfyUI 的自定义节点包,必须放在
ComfyUI/custom_nodes下才能被识别:git clone https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper ComfyUI/custom_nodes/ComfyUI-WanVideoWrapper安装 Python 依赖。进入仓库目录执行
pip install -r requirements.txt;如果你用的是 Windows 便携版,则在便携版根目录执行python_embeded\python.exe -m pip install ComfyUI\custom_nodes\ComfyUI-WanVideoWrapper\requirements.txt。另外,示例工作流还依赖三个配套节点包:ComfyUI-KJNodes、ComfyUI-VideoHelperSuite、ComfyUI-MelBandRoFormer,缺哪个就补哪个。把模型下载到对应目录。这是新手最容易翻车的一步,模型放错文件夹节点下拉框里就不会出现。语音驱动链需要:
模型 放入目录 作用 HuMo 主模型(如 Wan2_1-HuMo-14B_fp8_e4m3fn_scaled_KJ.safetensors)ComfyUI/models/diffusion_models语音驱动的视频扩散主干 Wan2_1_VAE_bf16.safetensorsComfyUI/models/vae图像编码与最终解码 umt5-xxl-enc-bf16.safetensorsComfyUI/models/text_encoders文字提示词编码 whisper_large_v3_encoder_fp16.safetensorsComfyUI/models/audio_encoders从音频提取语义特征 MelBandRoformer_fp16.safetensors(可选)按 ComfyUI-MelBandRoFormer 节点要求放置 人声分离 Lightx2v 蒸馏 LoRA(可选) ComfyUI/models/loras把采样步数压到 8 步 主模型建议选 fp8 scaled 版本,显存占用更小;下载渠道见仓库 readme.md 的 Models 一节。
最短路径:先跑通示例工作流
环境就绪后,先别急着搭自己的工作流。仓库自带一份官方示例 example_workflows/wanvideo_2_1_14B_HuMo_example_01.json,直接导入 ComfyUI 即可。它已经把整条链路预接好:模型加载、Whisper 加载、人声分离与响度归一、HuMoEmbeds 特征合并、采样、VAE 解码、VHS 合成 mp4。
你只需要做两件事:把LoadImage换成自己的人像照片、把LoadAudio换成自己的录音,然后点 Queue Prompt。示例中 1280x720 分辨率、65 帧的配置是作者在备注里确认过的最佳默认值,首次运行保持不动即可。跑通这一步,你就成功一大半了 🎉
原理速览:三条输入各走各的链路
理解下面三条线,你就能看懂工作流里每个节点为什么存在:
- 音频线:录音先被统一重采样到 16kHz,再交给 Whisper 编码器提取语义特征。特征按时间切成 5 帧一组,由 HuMo/audio_proj.py 里的投影层压缩成模型可消费的上下文,告诉视频模型"这一时刻该有什么动作"。
- 图像线:参考图经 VAE 编码成 latent(潜空间表示,即图像压缩后的特征形式),作为"长相锚点"拼在待生成序列的前面,保证人物外观不变。
- 生成线:两条特征在 WanVideoSampler 的扩散采样中合流,从纯噪声逐步去噪出视频帧,最后经 VAE 解码回像素、由 VHS 节点封装成 mp4。注意帧数永远是 4n+1(如 65、81),因为 VAE 对时间维度做 4 倍压缩。
分步实操
选素材:清晰人像 + 干净人声
适合作为 HuMo 语音驱动主体的人物参考图
参考图选正面、面部清晰、背景不杂乱的照片,分辨率最好贴近输出目标(1280x720 或 832x480),节点会自动缩放,但原图越接近目标变形越小。音频选人声为主的录音,时长 5–30 秒为宜;格式上 16kHz 采样率的 WAV 最稳,因为整条链路最终都换算到 16kHz。
音频预处理:分离人声 + 归一响度
原始录音如果带背景音乐或响度忽大忽小,Whisper 提出的特征会偏。工作流里LoadAudio之后接两个节点:MelBandRoFormerSampler把人声从伴奏、噪音中剥离,NormalizeAudioLoudness把响度压到 -23dB(这是广播级响度标准,避免音量差异干扰特征强度)。处理干净的人声再送入HuMoEmbeds的audio输入;Whisper 模型则由WhisperModelLoader从audio_encoders目录加载。
配置 HuMoEmbeds:两路特征在这里合流
这是全链路的核心节点,重点参数如下:
num_frames:总帧数。填-1时按音频长度自动推算(推荐新手这样用),手动填则必须是 4n+1;width/height:输出分辨率,步进 16。推荐 1280x720(质量优先)或 832x480(显存优先);audio_scale:音频条件强度,控制动作跟随语音的幅度,推荐 2.5 起步;audio_start_percent/audio_end_percent:语音条件作用的视频区间,0 到 1 表示全程生效。
reference_images输入支持多张图:用 KJNodes 的ImageBatchMulti把多张参考图拼成批次即可,参考帧会作为序列前缀参与生成,可用于补充视角。vae输入必接,否则报错。
采样与导出:steps、cfg 与帧率
WanVideoSampler的参数分两种打法:挂了 Lightx2v 蒸馏 LoRA 时,steps设 8、cfg设 1 即可(示例工作流就是这个组合);不挂 LoRA 时用完整 20–30 步、cfg5–7。shift保持默认 5,seed固定住便于对比调参。
输出端WanVideoDecode解出帧序列后,交给VHS_VideoCombine封装:frame_rate设 25(音频特征按 25fps 插值,与之一致),format选 video/h264-mp4,文件落到ComfyUI/output目录。显存不够时,调WanVideoBlockSwap的 swap 数量——14B 模型换出 20 个块时实测约 16GB 显存可跑,块数越大越省显存但越慢。
调参与调优:关键参数速查
| 参数 | 推荐值 / 区间 | 影响 |
|---|---|---|
audio_scale | 1.0–5.0,起步 2.5 | 越大动作越"听"语音的,过大动作夸张失真 |
audio_cfg_scale | 默认 1.0 | >1 会额外跑一次无音频的去噪对照,动作更自由但更慢 |
num_frames | -1(跟随音频)或 4n+1 | 决定时长;音频多长视频就多长 |
| 分辨率 | 1280x720 或 832x480 | 作者备注:这两档效果最稳 |
steps/cfg | 8/1(蒸馏 LoRA)或 20–30/5–7 | 步数越多细节越好、越慢 |
blocks_to_swap | 显存决定,参考 20 | 显存与速度的折中 |
sageattn | 安装了就开 | 注意力加速,接近 2 倍推理速度 |
| 模型精度 | fp16_fast优先 | 作者备注 fp8_fast 有较明显质量损失 |
踩坑速查
- 症状:显存不足(OOM)→ 增大 block swap 数量、开启
tiled_vae分块编码、降分辨率到 832x480,或换 GGUF 量化版主模型。 - 症状:动作卡顿、不连贯→ 把
audio_scale降到 2.0 以下,或不用蒸馏 LoRA 时把steps提到 30;蒸馏 LoRA 场景下卡顿多由音频本身不清晰导致。 - 症状:人物几乎不动,对语音没反应→ 检查 Whisper 模型是否接上(不接音频线会静默回退为零特征)、
audio_scale是否过低、音频响度是否太小(加 NormalizeAudioLoudness)。 - 症状:视频时长和音频对不上→ 帧数是 4 倍时间压缩 + 1 的关系,
num_frames手动值没按 4n+1 填会被截断;用 -1 跟随音频,并在 VHS 节点按需开启trim_to_audio。 - 症状:第一次运行极慢、显存异常高→ 多为 torch.compile 与旧 Triton 缓存问题,换个分辨率或重跑一次让缓存生效即可。
收尾与延伸
跑通 HuMo 之后,这条语音驱动链路还有三个方向值得继续探索:
- 把 ControlNet 或 WanMove 轨迹控制接进采样前,让语音驱动叠加精确的动作约束;
- 换用 Wan 2.2 5B 主模型跑同一条 HuMo 链路,用更低显存拿到 2.2 代画质;
- 试试仓库内的 multitalk/ 模块,实现多人物交替对话场景。
一张照片加一段录音,静态图像就能"开口说话"——先把示例工作流跑通,剩下的交给参数表慢慢调,你会比想象中更快拿到满意的成片。
【免费下载链接】ComfyUI-WanVideoWrapper项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考