关于 comfyui-voice-pipeline
comfyui-voice-pipeline 用于通过 TTS 或声音克隆创建角色语音,并与生成的视频同步,涵盖工具选择、脚本准备、音频处理和口型同步流程。
主要功能
- 01指导选择语音生成工具
- 02提供声音克隆与 TTS 选项
- 03准备语音生成脚本
- 04提供音频处理与格式建议
- 05介绍口型同步方法和流程
适用场景
- 01为角色视频制作对白
- 02根据参考音频选择语音工具
- 03准备 TTS 多说话人脚本
- 04将生成语音与角色视频同步
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mckruz/ comfyui-expert --skill comfyui-voice-pipeline安装后在 Claude Code 中输入/comfyui-voice-pipeline确认已加载。
详细介绍
ComfyUI 语音流水线
通过 TTS/语音克隆生成角色语音,并与生成的视频同步。
语音生成决策树
VOICE REQUEST
|
|-- Have reference audio of target voice?
| |-- Yes (5+ seconds) → Chatterbox (MIT, paralinguistic tags)
| |-- Yes (10-15 seconds) → F5-TTS (fastest zero-shot)
| |-- Yes (10+ minutes) → RVC training (highest fidelity)
| |-- Yes (any length, budget) → ElevenLabs (production quality)
|
|-- No reference audio?
| |-- Need emotion control → IndexTTS-2 (8-emotion vectors)
| |-- Need multi-language → TTS Audio Suite (23 languages)
| |-- Need voice design → ElevenLabs Voice Design (describe voice)
| |-- Quick prototype → Any TTS with default voice
|
|-- Need multi-speaker dialog?
| |-- Chatterbox (4 voices) or TTS Audio Suite (character switching)
|
|-- Need lip-sync?
| |-- Best accuracy → Wav2Lip + CodeFormer
| |-- Need head movement → SadTalker
| |-- Full expression control → LivePortrait
| |-- Unlimited length → InfiniteTalk
工具参考
Chatterbox(推荐的开源工具)
优势:MIT 许可证,盲测表现比 ElevenLabs 高 63.8%,只需 5 秒样本,支持情绪控制,延迟低于 200 毫秒。
韵律标签:
[laugh] [chuckle] [sigh] [gasp] [cough] [clear throat]
[whisper] [excited] [sad] [angry] [surprised]
关键参数:exaggeration(0.25-2.0)用于控制表现力。
限制:生成时长上限为 40 秒。更长的内容需要拆分。
F5-TTS
优势:零样本克隆速度最快,所需样本时长低于 15 秒,MIT 许可证,支持多语言。
要求:参考音频必须与 .wav + .txt 文件配对(转录文本必须匹配)。
语言:英语、德语、西班牙语、法语、日语、印地语、泰语、葡萄牙语。
TTS Audio Suite
优势:统一的多引擎平台,支持 23 种语言,支持切换角色。
特色功能:
- 角色切换:
[CharacterName]标签 - 语言切换:
[de:Alice]、[fr:Bob] - 暂停控制:
[pause:1s] - SRT 时间同步
集成:F5-TTS、Chatterbox、Higgs Audio 2、VibeVoice、IndexTTS-2、RVC。
IndexTTS-2
优势:支持 8 种情绪向量控制,可按片段设置参数。
情绪:开心、愤怒、悲伤、惊讶、害怕、厌恶、平静、忧郁。
RVC(语音转换)
适用场景:使用目标语音训练模型(至少 10 分钟音频),然后转换任意 TTS 输出。
流水线:Text → Any TTS → Base Audio → RVC Model → Character Voice
训练:300-500 轮,使用 RMVPE 进行特征提取。
ElevenLabs(商业工具)
级别:
- 即时克隆:1 分钟样本,质量良好
- 专业克隆:30 分钟以上(理想时长为 3 小时),效果几乎无法分辨
- 语音设计:用文本描述语音(无需样本)
语音配置文件设置
为每个角色在 projects/{project}/characters/{name}/profile.yaml 中建立语音配置文件:
voice:
cloned: true
model: "chatterbox"
sample_file: "references/voice_sample.wav"
settings:
exaggeration: 1.2
default_emotion: "neutral"
notes: "Warm, confident tone. Slight Italian-American undertones."
脚本准备
TTS 文本格式
- 标点很重要:逗号会产生停顿,句号会产生停顿收尾
- 发音提示:如果生僻词发音错误,请按发音拼写
- 情绪提示:使用 Chatterbox 标签,或按情绪拆分内容以用于 IndexTTS-2
- 长度:按 30-40 秒拆分片段,以满足 Chatterbox 的限制
多说话人脚本
[Sage] Hello! *laughs* I've been looking forward to this.
[pause:0.5s]
[Alex] [excited] Same here! Let's dive right in.
[Sage] [whisper] But first, I need to tell you something...
音频后期处理
口型同步输入要求
- 采样率:16-24kHz(取决于模型)
- 格式:WAV(未压缩)
- 单声道
- 裁掉开头的静音
- 在结尾添加 0.2 秒静音
- 将峰值归一化至 -3dB
FFmpeg 处理
# Convert to mono 24kHz WAV, normalized
ffmpeg -i input.wav -ac 1 -ar 24000 -af "loudnorm=I=-16:TP=-3" output.wav
# Trim silence from start/end
ffmpeg -i input.wav -af "silenceremove=start_periods=1:start_threshold=-50dB,areverse,silenceremove=start_periods=1:start_threshold=-50dB,areverse" trimmed.wav
# Concatenate segments
ffmpeg -f concat -safe 0 -i filelist.txt -c copy combined.wav
口型同步方法
Wav2Lip(精度最高)
设置:
wav2lip_model: "wav2lip_gan.pth" # Better than wav2lip.pth
face_detect_batch: 16
nosmooth: false
pad_bottom: 10
必须进行后期处理:在 Wav2Lip 输出后使用 CodeFormer(保真度 0.7)。
SadTalker(头部动作)
设置:
preprocess: "full" # Better for novel faces
enhancer: "gfpgan"
pose_style: 10-20 # Natural conversation range
LivePortrait(表情控制)
设置:
lip_zero: 0.03 # Reduces unnatural lip movement
stitching: true # Seamless face blending
最适合:创建高级虚拟形象、从驱动视频迁移表情。
LatentSync 1.6(最新,质量最高)
ByteDance 模型,使用 TREPA 模块在 512x512 分辨率下训练,以保证时间一致性。
InfiniteTalk(时长不限)
适用于时长超过常规口型同步限制的视频。可与 Wan 集成,实现联合生成。
完整的说话头像工作流
流水线 A:快速(图像 → 说话)
1. [Text] → Chatterbox/F5-TTS → audio.wav
2. [Character Image] + audio.wav → SadTalker → video.mp4
3. video.mp4 → GFPGAN/CodeFormer → final.mp4
耗时:约 2 分钟。质量:良好。
流水线 B:高质量(图像 → 视频 → 口型同步)
1. [Text] → Chatterbox → audio.wav
2. [Character Image] → Wan I2V → base_video.mp4
Prompt: "person talking, slight head movement, indoor"
3. base_video.mp4 + audio.wav → Wav2Lip → lipsync.mp4
4. lipsync.mp4 → FaceDetailer batch → enhanced.mp4
5. enhanced.mp4 → Color correct + Deflicker → final.mp4
耗时:约 10 分钟。质量:可用于制作。
流水线 C:高级(表情迁移)
1. Record driving video (actor performing lines)
2. [Text] → Voice Clone TTS → audio.wav
3. [Character Image] + driving.mp4 → LivePortrait → expression_video.mp4
4. expression_video.mp4 + audio.wav → Wav2Lip → lipsync.mp4
5. lipsync.mp4 → CodeFormer → final.mp4
耗时:约 15 分钟。质量:高级。
故障排除
| 问题 | 解决方案 |
|---|---|
| 音频不同步 | 使用 ffmpeg 调整偏移:ffmpeg -itsoffset 0.1 -i audio.wav ... |
| 嘴部动作不明显 | 使用 wav2lip_gan.pth,提高音量 |
| 面部瑕疵 | 使用 CodeFormer 进行后期处理(保真度 0.6-0.8) |
| 克隆语音听起来机械 | 使用更长、更干净的参考音频,提高 exaggeration |
| 头部动作不自然 | 将 SadTalker 的 pose_style 调低至 0-10 |
参考
references/voice-synthesis.md- 完整的语音工具文档references/models.md- 语音模型下载链接projects/{project}/characters/中的角色语音配置文件