max(fa_end, midpoint) ensures that even if FA reports slightly overlapping timestamps, we never truncate the current sentence below its own FA endpoint.
AIIA Nodes for ComfyUI
欢迎来到 AIIA Nodes for ComfyUI 仓库!这是一个旨在为 ComfyUI 提供一系列强大、直观且高度可定制的节点的集合。这些节点专注于简化复杂的工作流,并为创意工作者提供最大的灵活性。
本节点套件致力于解决 ComfyUI 工作流中的核心痛点。
🚀 全新旗舰节点:AIIA 媒体浏览器 🚀
还在费力地翻找 output 文件夹,或者对着一堆时间戳命名的文件猜内容吗?
我们隆重推出 AIIA 媒体浏览器——一个完全集成在 ComfyUI 内部的、功能完备的媒体文件管理中心。它的诞生,旨在彻底改变你管理和使用生成结果的方式,让整个过程变得高效、直观且充满乐趣。
✨ 为何选择 AIIA 浏览器?
- 告别猜测: 无需离开 ComfyUI 即可即时预览图片、视频和音频。
- 为性能而生: 专为处理包含数千乃至数万个文件的海量输出文件夹而设计,极致流畅,拒绝卡顿。
- 精美且直观: 拥有现代化的用户界面,与 ComfyUI 原生主题无缝融合,宛若天生。
核心亮点
1. 强大的核心功能
- 一键加载工作流: 直接从浏览器中加载任何图片、视频或工作流文件,瞬间恢复你的创作环境。
- 直接下载文件: 无需再打开系统文件夹,一键下载你需要的任何文件。
- 内容丰富的工具提示 (Tooltip): 将鼠标悬停在任何文件或文件夹上,即可看到包含详细元数据(尺寸、时长、日期等)的浮窗,甚至还能 直接在浮窗里预览图片、视频和音频!
- 高级排序与筛选: 按 名称、日期、大小、类型、尺寸或时长 对文件进行排序,并可选择隐藏文件夹,总能快速找到你想要的。
2. 顶级的界面与用户体验
- 双视图模式: 可在经典的 图标视图(支持缩放)和信息详尽的 列表视图 之间一键切换。
- 沉浸式全屏查看器: 双击文件即可进入一个独立的媒体查看器。支持视频/音频播放、用于快速导航的胶片缩略图,并提供多种导航方式(鼠标滑动、滚轮、键盘方向键和长按按钮)。
- 全键盘导航: 为高级用户设计,你可以完全通过键盘在文件夹之间穿梭、选择文件、打开预览、显示/隐藏工具提示,实现真正的“效率流”操作。
- 交互式路径与面包屑导航: 通过可点击的面包屑轻松跳转目录,或直接输入路径进行导航。
3. 无与伦比的性能与技术
- 高性能后端: 基于 Python 的异步后端,利用
ffmpeg和Pillow进行即时的缩略图与视频海报生成。 - 智能缓存: 所有缩略图和元数据都会被智能缓存。浏览器仅在文件发生变化时才重新生成,确保后续加载瞬间完成。
- 懒加载与虚拟滚动: 我们在图标视图中使用
IntersectionObserver,在列表视图中实现 完全虚拟滚动。这意味着浏览器永远只渲染屏幕上可见的内容,即使面对上万个文件也能保持极低的内存占用和零延迟。 - 无阻塞元数据分析: 在列表视图中,浏览器会在后台批量分析视频时长、尺寸等元数据,并以进度条显示,完全不阻塞UI操作。
4. 灵活的自定义选项
- 在设置面板中,你可以根据习惯隐藏文件夹侧边栏,或开关视频预览功能。所有设置都会被自动保存。
🚀 核心设计理念:为大规模生成而生
本节点套件的另一个核心设计初衷,是为了攻克困扰许多用户的技术难题,特别是解决在生成长视频或处理大量图像帧时常见的内存不足(OOM)问题。
🌟 告别OOM:为处理海量帧而生
处理成百上千张高清图像帧时,轻易就会耗尽 VRAM 和系统内存,导致工作流中断。AIIA 节点通过 增量式处理(Incremental Processing) 的策略从根本上解决了这个问题。
v1.9.21+ 内存优化
自 v1.9.21 起,AIIA Body Sway 和 AIIA Video Combine 节点实现了激进的内存管理策略:
- 分批处理:每次只处理 50 帧,处理完立即释放中间变量。
- 逐帧释放:每帧转换后立即
del并定期gc.collect()。 - GPU 内存同步释放:处理前移至 CPU 并调用
torch.cuda.empty_cache()。
这意味着即使处理 1500+ 帧的高分辨率视频(如 1288×1920),也能在合理的内存占用下完成,无需磁盘中转。
两种工作模式
我们提供了两种工作模式,以适应不同场景:
- 内存模式 (推荐): 直接将上游节点的
IMAGE张量输入。v1.9.21+ 的优化使其可处理数千帧而不 OOM。 - 磁盘模式: 对于极端长序列或内存受限环境,仍可通过
frames_directory从磁盘流式读取帧。
🔧 强大且可扩展的预设系统
通过简单的 JSON 文件,您可以完全自定义视频和音频的编码参数,并将其保存为可复用的格式预设。这使得高级用户可以轻松实现复杂的 FFmpeg 配置,而无需修改任何代码。
🛠️ 安装与先决条件
1. 安装 FFmpeg (视频与浏览器节点强依赖)
视频合并节点和媒体浏览器的视频功能依赖 ffmpeg 和 ffprobe。
- 访问 FFmpeg 官网 下载并安装。
- 强烈建议将 FFmpeg 的
bin目录添加到您系统的PATH环境变量中。 - 在终端中运行
ffmpeg -version和ffprobe -version来验证安装。
2. 安装 SoX (VibeVoice 变速不变调必须)
VibeVoice 节点的 speed 参数依赖系统级 sox 命令。
- Ubuntu/Debian:
sudo apt-get update && sudo apt-get install -y libsox-dev sox - macOS:
brew install sox - Windows: 下载 SoX 编译版 并将目录添加到
PATH。
3. 安装 NeMo 模型 (音频AI节点必须)
音频处理节点(如说话人日志)依赖 NeMo 模型。
- 在 ComfyUI 的
models目录下,创建一个名为nemo_models的子目录。最终路径应为ComfyUI/models/nemo_models/。 - 从 NVIDIA NeMo 目录 下载所需的
.nemo模型文件。- 基础模型:
diar_sortformer_4spk-v1.nemo - 流式模型 (v2.1):
diar_streaming_sortformer_4spk-v2.1.nemo
- 基础模型:
- 将下载的
.nemo文件放入ComfyUI/models/nemo_models/目录中。
使用 huggingface-cli 下载 (推荐):
nvidia/nemo-models 仓库很大,建议直接下载指定文件:
# 进入 ComfyUI/models 目录
cd ComfyUI/models
mkdir -p nemo_models
# 下载基础模型
hf download nvidia/nemo-models diar_sortformer_4spk-v1.nemo --local-dir nemo_models
# 下载流式模型
hf download nvidia/nemo-models diar_streaming_sortformer_4spk-v2.1.nemo --local-dir nemo_models
4. 安装本节点套件
进入 ComfyUI 的自定义节点目录,然后克隆本仓库:
cd ComfyUI/custom_nodes/
git clone https://github.com/havvk/ComfyUI_AIIA.git
最后,重启 ComfyUI。
✨ 可用节点
1. 媒体管理 (Media Management)
AIIA 媒体浏览器
- 安装并重启后,一个 "AIIA Browser" 按钮会出现在 ComfyUI 主菜单中。
- 点击即可启动浏览器。
- 尽情探索你的
output目录吧!
2. 视频生成与合成 (Video Generation & Compositing)
2.1 视频合并 (AIIA, 图像或目录)
这是一个功能强大且高度可定制的视频合并节点,是您工作流中处理视频生成的终极解决方案。
核心亮点:
- 内存高效: 通过
frames_directory输入,可以处理几乎无限数量的图像帧,完美解决了 OOM 问题。 - 直接张量输入: 接受上游节点的
IMAGE张量,方便快速迭代和测试。 - 全面的音频控制: 支持
AUDIO张量和外部文件,并提供对编解码器和码率的精细控制。 - 智能自动配置:
auto模式能自动应用格式预设中的音频参数,并能自动检测源文件的码率。 - 安全清理帧目录 (v1.11.1 New):
cleanup_frames开关(默认关闭)。开启后,视频合成成功时自动删除输入的frames_directory。- 防误删机制: 仅删除包含
.aiia_temp标记文件的目录(由 AIIA 上游节点自动写入),用户自己提供的素材目录永远不会被误删。 - 合成失败时不执行任何删除操作,确保帧文件安全。
- 防误删机制: 仅删除包含
2.2 FLOAT 影片生成 (内存与磁盘模式)
这组节点封装了先进的 FLOAT 模型,能够根据参考图像和音频生成高质量的口型同步影片。我们提供了两种模式,以应对不同长度的生成需求。
1. Float Process (AIIA In-Memory)
- 用途: 用于生成短片、快速预览或直接与其他内存节点(如视频合并的
images输入)连接。 - 输出:
IMAGE张量。 - 优势: 速度快,流程无缝。
- 限制: 受限于您的 VRAM 和系统内存大小,不适合生成长视频。
2. Float Process (AIIA To-Disk for Long Audio)
- 用途: 专门用于长音频的影片生成,是解决OOM问题的关键。
- 输出:
STRING(包含所有生成帧的目录路径) 和INT(帧总数)。 - 优势: 在解码过程中,节点以小批量方式处理帧并逐帧保存到磁盘,内存占用极低,可以处理任意长度的音频。
- 工作流: 此节点的输出目录可以直接作为 视频合并节点 的
frames_directory输入,构建一个完整的、内存高效的 talking head 视频生成管线。
2.3 PersonaLive 视频驱动 (AIIA Integrated)
这组节点基于强大的 PersonaLive 模型,专为生成高质量的 Talking Head 视频而设计。我们将原版代码完全重构并集成到 ComfyUI 中,通过特有的分块处理和磁盘流式技术,彻底解决了长视频生成时的显存和内存溢出 (OOM) 问题。
1. PersonaLive Checkpoint Loader
- 用途: 加载所有必要的模型权重(Base Model, VAE, PersonaLive Weights)。
- 功能: 首次运行时会自动从 HuggingFace 下载所需模型,无需手动配置。
2. PersonaLive Photo Sampler (AIIA In-Memory)
- 用途: 标准生成模式,适合短视频或中等长度视频。
- 输出:
IMAGE张量(所有生成的帧)。 - 机制: 节点会自动将长视频切分为多个 Chunk 进行推理,每推理完一个 Chunk 就会清空显存,从而允许你在有限的显存下生成较长的视频。
3. PersonaLive Photo Sampler (AIIA To-Disk for Long Video)
- 用途: 专门用于超长视频生成。这是解决系统内存(System RAM)OOM 的终极方案。
- 输出:
STRING(包含生成帧的目录路径) 和INT(帧数)。 - 最佳实践: 将此节点的输出目录直接连接到 AIIA Video Combine 节点,即可实现从生成到合成的全流程 OOM-Safe。
2.4 EchoMimic V3 (AIIA Integrated)
这组节点集成了最新的 EchoMimic V3 (1.3B Parameters) 模型,它是目前开源界效果最惊艳的 Talking Head 解决方案之一。
特点:
- 多模态驱动: 支持 Audio Only (仅音频驱动) 和 Audio + Reference Pose (音频+参考姿态) 驱动。
- 自然度极高: 相比 float 等早期模型,V3 在头部运动、表情微表情的自然度上有巨大提升。
- ComfyUI 原生: 我们将其封装为标准的 Loader 和 Sampler 节点,支持流式生成和内存优化。
1. EchoMimic V3 Loader
- 用途: 加载模型权重 (Transformer, VAE, Wav2Vec, etc.)。
- 参数:
model_subfolder: 模型子目录名 (默认Wan2.1-Fun-V1.1-1.3B-InP)。device: 指定运行设备 (CUDA)。
2. EchoMimic V3 Sampler
- 用途: 执行推理生成。
- 输入:
ref_image: 参考人物图片 (建议 1:1 比例,如 768x768)。ref_audio: 驱动音频。
- 参数:
cfg: 视觉引导系数 (默认 4.0)。audio_cfg: 音频引导系数 (默认 2.9)。enable_teacache: True (默认)。开启后生成速度提升 1.5 倍以上,且质量无损。keep_model_loaded: True (默认)。即使显存占用增加,也强制将模型保留在 GPU 上,显著减少多段视频生成时的加载时间。negative_prompt: 已内置优化过的 眼部修复 (Eye Correction) 提示词,有效防止翻白眼和眼神飘忽。
🚀 性能优化 (Performance):
- Flash Attention 2: 强烈推荐安装。检测到时会自动启用,大幅提升推理速度。
- TeaCache: 默认启用。通过缓存部分 Transformer 层计算,大幅加速生成。
- Full GPU Mode: 默认启用。适合显存充足 (24GB+) 用户,享受极致流畅的生成体验。
🛠️ 模型下载指南 (Manual Download Guide)
由于 EchoMimic V3 模型较大且组件较多,目前不支持自动下载,请按以下步骤手动准备模型。
目标目录: ComfyUI/models/EchoMimicV3/
目录结构:
ComfyUI/models/EchoMimicV3/
├── Wan2.1-Fun-V1.1-1.3B-InP/ <-- 主模型目录
│ ├── transformer/
│ │ ├── config.json
│ │ └── diffusion_pytorch_model.safetensors
│ ├── vae/
│ │ ├── config.json
│ │ └── diffusion_pytorch_model.safetensors
│ ├── text_encoder/
│ ├── tokenizer/
│ ├── image_encoder/
│ └── scheduler/
└── wav2vec2-base-960h/ <-- 音频编码器 (必需)
├── config.json
├── pytorch_model.bin
└── ...
下载地址:
-
主模型 (EchoMimicV3):
- HuggingFace: BadToBest/EchoMimicV3
- 下载命令 (推荐):
hf download BadToBest/EchoMimicV3 --local-dir models/EchoMimicV3/EchoMimicV3 - 注意:此模型包含 EchoMimic 特有的 Transformer 权重,是生成嘴型的核心。
-
底模 (Wan2.1-Fun-V1.1-1.3B-InP):
- HuggingFace: alibaba-pai/Wan2.1-Fun-V1.1-1.3B-InP
- 下载命令:
hf download alibaba-pai/Wan2.1-Fun-V1.1-1.3B-InP --local-dir models/EchoMimicV3/Wan2.1-Fun-V1.1-1.3B-InP - 注意:作为 fallback 来源,提供 VAE、Text Encoder 和 Image Encoder权重。
-
音频编码器 (wav2vec2-base-960h):
- HuggingFace: facebook/wav2vec2-base-960h
- 下载命令:
hf download facebook/wav2vec2-base-960h --local-dir models/EchoMimicV3/wav2vec2-base-960h
环境依赖:
- 请确保安装了
requirements.txt中的依赖,如diffusers>=0.30.1。节点加载时会尝试自动引用,但如果报错缺包,请手动安装。
2.5 Ditto Talking Head (AIIA Integrated)
这组节点集成了 Ditto 数字人模型。我们采用了 PyTorch 原生实现,避免了复杂的 TensorRT 编译过程,让用户能够“开箱即用”地生成高质量的 Talking Head 视频。
特点:
- PyTorch Native: 无需安装 TensorRT,兼容性更好。
- In-Memory Pipeline: 针对 ComfyUI 优化的内存内处理流程,无需生成中间视频文件。
- 自动模型管理: 支持自动下载模型权重。
1. AIIA Ditto Loader
- 用途: 下载并加载 Ditto 模型 (约 1.2GB)。
- 参数:
model_name: 模型名称 (默认ditto-talkinghead)。device: 运行设备 (CUDA/CPU)。
2. AIIA Ditto Sampler
- 用途: 执行推理生成。
- 输入:
pipe: 来自 Loader 的模型管道。ref_image: 参考人物图片 (建议正方形,人脸居中)。audio: 驱动音频。fps: 建议 25 (Ditto 针对 25FPS 训练)。即使输入其他值,目前内部逻辑也会优先保证 25FPS 的同步率。
- 输出:
IMAGE(视频帧),AUDIO。 - 高级参数 (Advanced Parameters):
seed: 随机种子 (Random Seed)。- 控制扩散模型的噪声生成。
- 关键作用: 在长语音生成中,当触发“静音重置”时,种子会被重置,从而确保每一句话的生成条件都与第一句话完全一致,彻底消除“长语音嘴型漂移”和“对口型不准”的问题。
crop_scale: (默认 2.3) 面部工作区视野 (Face Context Scale)。- 注意: 此参数不会改变输出视频的分辨率,它决定了模型“看”到了多少人脸周围的内容。
- 数值越大 (如 2.5): 广角视野。模型能覆盖更多头发、脖子和背景。
- ✅ 优点:适合头部运动幅度大的场景,不容易出框。
- ❌ 缺点:在固定的推理画布中,人脸占比变小,生成的五官细节(如牙齿、眼神)可能会变糊。
- 数值越小 (如 2.0): 特写视野。模型聚焦于面部核心区域。
- ✅ 优点:人脸占比大,五官细节极其清晰锐利。
- ❌ 缺点:容易裁掉下巴或额头,头部大幅运动时可能会出现“断头”或伪影。
- 推荐值:
- 标准场景: 2.3
- 大动态/全身/半身: 2.5 (牺牲细节换稳定性)
- 大头照/证件照: 2.0 (追求极致细节)
emo: (默认 Neutral) 表情控制。可选 Angry, Happy, Sad 等。drive_eye: (默认 True) 是否驱动眼睛。关闭后眼睛将保持参考图状态(或微动),适合原图眼神较好的情况。chk_eye_blink: (已废弃,请使用blink_mode)。blink_mode: (默认 Natural) 眨眼模式控制。Natural: 拟人化随机眨眼。- 基础频率:90-150帧/次 (约 3.6s - 6.0s)。
Slow: 慢速沉稳眨眼 (120-200帧/次)。Fast: 快速频繁眨眼 (10-40帧/次)。None: 彻底关闭眨眼。
blink_amp: (v1.9.1 New) 眨眼幅度控制。- 1.0 (默认): 标准闭眼幅度。
- < 1.0 (推荐 0.8): 适合男性角色或眼睛较小的人物,避免“用力挤眼”的感觉。
- > 1.0: 加深闭眼力度。
mouth_amp: (v1.9.1 New) 嘴型幅度控制。- 1.0 (默认): 标准嘴部开合幅度。
- > 1.0 (推荐 1.1-1.2): 适合大声说话或需要更夸张表情的场景,增强口型辨识度。
- < 1.0: 适合轻声细语。
relax_on_silence: (默认 True) 静音归位 (Relax Face on Silence)。- 结合下方的
silence_release参数,针对静音片段进行平滑过渡(慢速闭合),避免“紧绷抿嘴”。 - 智能预测 (Predictive Logic): 自动识别短停顿(如逗号)与长静音(如句号)。短停顿不触发闭嘴动画,由模型自由发挥;长静音则触发优雅的慢速闭合。
- 防止累积误差 (Drift Correction):
- 精密网格对齐 (Exact Onset Alignment): 将模型的时间步长精确对齐到语音的开始(Onset),而不是固定的处理块。
- 状态重置 (State & RNG Reset): 在长静音后,强制重置模型状态和随机种子,确保每一句话的生成质量一致,彻底消除“长语音嘴型漂移”。
- 结合下方的
silence_release: (v1.9.2 New) 静音闭嘴速度 (Adsr Release Control)。- Natural (0.8s) [默认]:
- 自然平衡模式。适合大多数常速对话。
- 触发阈值: >0.88s。
- Fast (0.5s):
- 快速响应模式。适合语速极快、充满激情的演讲。
- 触发阈值: >0.56s。
- Deep (1.3s):
- 深沉模式。适合朗诵、讲故事或情感类内容。超长尾韵,极度平滑。
- 触发阈值: >1.4s。
- Natural (0.8s) [默认]:
ref_threshold: (默认 0.005) 静音检测相对阈值 (Relative Silence Threshold)。- 现在的阈值是基于全段音频峰值音量的比例 (例如 0.005 = 0.5% 的峰值音量)。
- 这意味着无论音频整体是大声还是小声,系统都能自动适应,准确捕捉微弱的语音片段。
- 只有低于此比例的音量才会被视为静音。
smo_k_d: (默认 3) 运动平滑系数。数值越大动作越柔和,可抑制面部抖动。hd_rot_p/y/r: 头部旋转微调 (Pitch/Yaw/Roll)。speech_pitch: (v1.10.0 New) 说话时俯仰角补偿 (Speech Pitch Offset)。- 用于修正"说话时头抬得太高"或"需要低头说话"的场景。此偏移量仅在说话期间生效,并随语音强度平滑切入切出。
- 正值 (+) = 低头 (Look Down)。例如
5.0表示说话时微微低头。 - 负值 (-) = 抬头 (Look Up)。
mouth_smoothing: (v1.9.5 New) 嘴型惯性平滑 (Mouth Motion Inertia)。- 防止模型输出的嘴型瞬间开合(如爆破音时),增加物理惯性感。
None (Raw): 无平滑,模型原始输出。追求极致对口型,容忍偶尔快速开合。Light(0.3): 轻微平滑,推荐快语速使用。Normal(0.5) [默认]: 适中平滑,常规对话推荐。Heavy(0.7): 强力平滑,适合低质量音频或模型输出抖动严重的情况。
save_to_disk: (v1.9.24 New) OOM 安全模式 (OOM-Safe Mode)。Memory (Default): 传统模式,所有帧保存在内存中。适合短视频(<1000帧)。Disk (OOM-Safe): 长视频推荐。边生成边保存到磁盘,无 OOM 风险。- 选择 Disk 模式时,
frames_dir输出会包含帧保存路径,可直接连接 AIIA Video Combine 节点的frames_directory输入。 - ⚠️ Disk 模式下
images输出为占位符,请使用frames_dir连接后续节点。
- 输出:
images: 生成的视频帧序列(Memory 模式)或占位符(Disk 模式)。audio: 透传的音频。frames_dir: (v1.9.24 New) Disk 模式下的帧保存路径。Memory 模式下为空字符串。
🛠️ 模型下载指南 (Manual Download Guide)
如果自动下载失败,请手动下载模型并放入 ComfyUI/models/ditto/ 目录。
目标目录结构:
ComfyUI/models/ditto/
├── ditto_pytorch/
│ ├── audio2motion.pth
│ ├── ...
└── ditto_cfg/
├── v0.4_hubert_cfg_pytorch.pkl
├── ...
下载地址:
- HuggingFace: digital-avatar/ditto-talkinghead
下载命令:
# 进入 models 目录
cd ComfyUI/models
# 下载模型 (直接下载到 ditto 目录,避免多层嵌套)
hf download digital-avatar/ditto-talkinghead --local-dir ditto
2.6 身体微动后处理 (Body Sway Post-Processing)
这个轻量级后处理节点可以为 Ditto 等 Talking Head 模型的输出添加模拟的身体晃动效果,让人物看起来更加自然、有呼吸感。
工作原理:
- 通过裁切平移 + 轻微旋转模拟人体站立或坐着时的自然重心漂移和呼吸起伏。
- 使用多频正弦波叠加(基于黄金比例)生成平滑、有机的运动轨迹。
- 纯裁切方式,不放大图像,保持原始画质。
AIIA Body Sway 节点
- 输入:
images(可选): 来自 Ditto 等节点的视频帧张量 (Memory 模式)frames_directory(可选, v1.9.25 New): 帧目录路径 (Disk 模式,连接 Ditto 的frames_dir输出)
- 参数:
crop_ratio: (默认 0.99) 输出尺寸占输入的比例。- 0.99 = 保留 99%,晃动幅度较小 (推荐)
- 0.98 = 保留 98%,晃动幅度中等
- 支持三位小数 (如 0.995)
rotation_amplitude: (默认 0.1) 最大旋转角度 (度)。smoothness: (默认 0.02) Perlin 噪声平滑度。数值越小,运动越缓慢。seed: 控制随机轨迹。
- 输出:
images: 应用了微动效果的帧 (Memory 模式) 或占位符 (Disk 模式)。output_frames_dir(v1.9.25 New): Disk 模式下处理后的帧保存路径。
Note
v1.9.17 改进:使用 Perlin 噪声 替代正弦波,运动更有机自然。已移除垂直方向位移,减少叠加 Ditto 头部运动时的"晕船"感。
Tip
OOM-Safe 工作流 (v1.9.24+): Ditto (
Disk) → BodySway (frames_directory) → VideoCombine (frames_directory),全流程无 OOM 风险。 性能无损 (v1.9.28+): 采用并行 I/O 和零压缩策略,Disk 模式生成速度与 Memory 模式完全一致 (~30fps+),且极大降低 RAM 占用。强烈推荐长视频生成使用! 自动清理 (v1.11.1 New): 开启 VideoCombine 的cleanup_frames后,中间帧目录会在合成成功后自动删除,无需手动清理磁盘。
3. 音频智能处理 (Intelligent Audio Processing)
3.1 说话人日志 (Diarization)
这组节点利用 NeMo Sortformer E2E 模型,为您的音频提供先进的说话人识别功能。在4090RTX显卡上只需2秒钟就能完成10分钟音频的声纹分割聚类任务。
1. AIIA Generate Speaker Segments
- 用途: 对一段音频进行分析,找出“谁在什么时候说话”。
- 输入:
AUDIO张量。 - 输出:
WHISPER_CHUNKS(一个结构化的数据,包含一系列带有说话人标签的时间片段,如SPEAKER_00,SPEAKER_01等)。 - 亮点: 提供多种后处理配置(从宽松到严格),让您可以微调分割的灵敏度,以适应不同质量的音频。
2. AIIA E2E Speaker Diarization
- 用途: 将
Generate Speaker Segments的识别结果精确地应用到由 Whisper 等工具生成的、带有文本的WHISPER_CHUNKS上。 - 输入:
WHISPER_CHUNKS(来自文本转录节点) 和AUDIO张量。 - 输出: 更新后的
WHISPER_CHUNKS,其中每个文本块都已被赋予了最匹配的说话人标签。 - 工作流:
(音频) -> Whisper -> (文本Chunks)+(音频) => E2E Diarizer=> 最终带有说话人标签的文本稿。
3.2 说话人隔离与合并 (Speaker Isolation & Merger)
Audio Speaker Isolator (AIIA)
- 用途: 根据说话人日志(Diarization)产生的 JSON 数据,从原始音轨中精确提取属于特定说话人的声音。
- 输入:
audio: 原始音频张量。whisper_chunks: 由 Diarization 节点生成的 JSON 片段数据。speaker_label: 要提取的说话人 ID(例如 "SPEAKER_00")。isolation_mode:- Maintain Duration (推荐): 输出与原音频等长的音轨,非目标说话人部分填充静音。这对于 视频驱动(Talking Head) 工作流至关重要,能确保口型与原视频时间轴严格对齐。
- Concatenate: 将属于该说话人的所有片段无缝拼接在一起,去除中间的空隙。
- 亮点:
- 防爆音: 内置微小的淡入淡出(Fade In/Out)处理,确保片段边缘自然顺滑。
- 时间对齐: 专门针对 AIIA 视频节点套件优化,保证音画同步。
- 防爆音: 内置微小的淡入淡出(Fade In/Out)处理,确保片段边缘自然顺滑。
Audio Speaker Merger (AIIA)
- 用途: 将两段不同的音频流合并为一条。通常用于在分别对不同说话人进行视频驱动后,将各自的音轨重新混缩。
- 输入:
audio_1,audio_2: 待合并的两段音频。duration_mode:Longest: 输出时长等于两段音频中的最大值。Shortest: 输出时长等于两段音频中的最小值。Audio 1 / Audio 2: 严格跟随特定输入段的时长。Specified: 手动指定输出秒数。normalize: 开启后将自动防止音量叠加导致的破音。
3.3 智能切片 (Smart Chunking)
Audio Smart Chunker (Silence-based)
- 用途: 全量扫描长音频,寻找最优切片方案。
- 机制:
- 全局静音扫描: 自动识别音频中的天然停顿区间。
- 贪心优化算法: 在不超出设定时长(如 27s)的前提下,计算出能让每一刀都切在静音处的片段序列。
- 输出: 供
Voice Conversion (AIIA Unlimited)使用的whisper_chunks引导数据。 - 协同优势: 预先规划好切点,避免转换节点在词句中间暴力切分,是彻底消除拼接毛刺的关键。
3.4 Voice Conversion (AIIA Unlimited) (CosyVoice 增强)
1. CosyVoice Model Loader (AIIA)
- 用途: 不需要安装任何其他第三方节点,直接加载 CosyVoice 模型。
- 功能:
- 自动安装依赖: 首次运行时会自动安装
cosyvoice及其依赖环境。 - 自动下载模型: 选择模型后,首次运行会自动从 HuggingFace 下载模型权重。
- 支持模型:
Fun-CosyVoice3-0.5B-2512(最新 CosyVoice 3.0, 推荐)CosyVoice2-0.5B(CosyVoice 2.0)CosyVoice-300M系列 (SFT, Instruct, TTSFRD)
- 自动安装依赖: 首次运行时会自动安装
- 输出:
COSYVOICE_MODEL(专为 AIIA Voice Conversion 节点优化)。-
⚠️ 模型下载问题 (Model Download Issues): 如果遇到自动下载卡顿或失败,请手工下载模型文件夹,并将其放入
ComfyUI/models/cosyvoice/目录中。目录结构示例 (Directory Structure): 请注意:文件夹名称建议与下方列表保持一致(即去除
FunAudioLLM/前缀)。ComfyUI/models/cosyvoice/ ├── Fun-CosyVoice3-0.5B-2512/ <-- 对应选项 FunAudioLLM/Fun-CosyVoice3-0.5B-2512 │ ├── cosyvoice.yaml │ ├── model.pt │ └── ... ├── CosyVoice2-0.5B/ <-- 对应选项 FunAudioLLM/CosyVoice2-0.5B └── CosyVoice-300M/ <-- 对应选项 CosyVoice-300M下载地址 (Download Sources):
- ModelScope (魔搭社区) (搜索 CosyVoice)
- HuggingFace - FunAudioLLM
使用命令行快速下载 (CLI Examples):
Tip
国内用户推荐使用 ModelScope (魔搭),下载速度更快且无需代理。
1. 使用 ModelScope (推荐):
# 进入 ComfyUI/models/cosyvoice 目录 cd ComfyUI/models/cosyvoice # 下载 CosyVoice 3.0 (0.5B - 推荐) modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir Fun-CosyVoice3-0.5B-2512 # 下载 CosyVoice 2.0 (0.5B) modelscope download --model iic/CosyVoice2-0.5B --local_dir CosyVoice2-0.5B # 下载 CosyVoice 300M 系列 (V1) modelscope download --model iic/CosyVoice-300M --local_dir CosyVoice-300M modelscope download --model iic/CosyVoice-300M-SFT --local_dir CosyVoice-300M-SFT modelscope download --model iic/CosyVoice-300M-Instruct --local_dir CosyVoice-300M-Instruct2. 使用 HuggingFace:
# 下载 CosyVoice 3.0 (0.5B) huggingface-cli download FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local-dir Fun-CosyVoice3-0.5B-2512 # 下载 CosyVoice 2.0 (0.5B) huggingface-cli download FunAudioLLM/CosyVoice2-0.5B --local-dir CosyVoice2-0.5B # 下载 CosyVoice 300M 系列 (V1) huggingface-cli download FunAudioLLM/CosyVoice-300M --local-dir CosyVoice-300M huggingface-cli download FunAudioLLM/CosyVoice-300M-SFT --local-dir CosyVoice-300M-SFT huggingface-cli download FunAudioLLM/CosyVoice-300M-Instruct --local-dir CosyVoice-300M-Instruct
-
2. Voice Conversion (AIIA Unlimited)
- 用途: 增强版语音转换节点,解决了原版 CosyVoice3 只能转换 30 秒内语音的限制。
- 🔥 核心突破: 全球首个突破时长限制的 ComfyUI 节点。通过创新的静音点智能切片技术,本节点彻底突破了 CosyVoice 3 官方模型“建议 20 秒、最长 60 秒”的生成限制。它实现了真正无限时长的音色克隆,且拼接处自然无痕,完美满足长篇教学视频、有声书等专业制作需求。
- 创新设计 (创新亮点):
- 语义感知切片 (Semantic-Aware Chunking): 节点可选接入
whisper_chunks数据。它能智能识别每句话之间的“缝隙”,优先在说话人停顿的天然空隙处进行切分,从根本上避免了“在单词中间切开”导致的违和感。 - 牺牲上下文无缝拼接 (Sacrificial Context Stitching): 针对生成式模型在重叠区域的相位不稳定性,我们在拼接时采用“牺牲上下文”策略。即利用重叠区域作为生成引导,但在最终拼接时丢弃前一片段的“尾部”,仅保留极短的 Cross-fade(约 50ms),从而彻底消除长音频拼接处的“发虚”和回声感。
- 双层寻点算法: 在语义缝隙确定的候选范围内,算法会自动进行微秒级的物理静音探测(基于能量平滑曲线),确保切点处于绝对静默状态。
- 语义感知切片 (Semantic-Aware Chunking): 节点可选接入
- 输入:
model: 连接CosyVoice Model Loader (AIIA)的输出。source_audio: 待转换的源音频(支持任意时长)。whisper_chunks(可选): 接入 Diarization 节点数据,开启语义感知切片。target_audio: 目标音色参考音频(自动截取前 30 秒)。chunk_size: 目标切片大小(默认 25 秒)。overlap_size: 重叠大小,用于平滑衔接。
3.5 CosyVoice 3.0 TTS (AIIA) (全版本集成文本转语音)
- 用途: 一个节点通连 CosyVoice 全系列模型 (V1, V2, V3),支持从纯文字描述生成到高保真音色克隆的全场景需求。
- 🔥 核心架构优势:
- 全版本自适应 (Version-Agnostic): 自动根据
Model Loader加载的模型版本切换底层推理逻辑。无论是老牌的 300M 系列还是最新的 V3 0.5B 模型,均能获得最佳表现。 - 300M-Instruct (V1) 专项修复:
- 指令跟随 (Fixed): 已修复指令读出问题。
- 能力矩阵:
- ✅ 支持: 情感 (Emotion), 语速 (Speed), 基础性别 (Gender)。
- ⚠️ 注意: 请务必使用 英文指令 (如 "Sad tone", "Fast speed") 以确保生效。中文指令可能被忽略。
- ❌ 不支持: 方言 (Dialect)。300M-Instruct 模型无法通过指令修改方言。
- V3 稳定性引擎: 深度适配 V3 模型的推理协议。内置自动补全机制,确保在任何配置下(即使缺少参考音频或内部音色)都能稳定运行,杜绝
AudioDecoder和KeyError等常见崩溃。 - 无限长文本支持 (Streaming Architecture): 与 VibeVoice (类 GPT) 存在 8K/32K Token 上限不同,CosyVoice 采用流式架构,理论支持无限长文本输入的连续生成。系统会自动按句切分流式合成,适合长篇有声读物生成。
- 全版本自适应 (Version-Agnostic): 自动根据
- 🚀 五种核心生成模式:
- 风格/情感建模 (Instruct): 文字 + 描述。通过文字描述(如“非常开心地说”、“四川话”、“语速极快”)来控制生成的表现力。
- 音色克隆 (Zero-Shot): 文字 + 音频。通过极短的参考音频,完美复现目标说话人的身份和音色特征。
- 混合控制 (Hybrid): 音频 + 描述。在克隆音色的基础上,通过描述词改变情感或方言。
- 跨语言 (Cross-Lingual): 让你的克隆音色流利说出 9 种语言。
- 固定 ID (SFT): 直接选取模型内置的高保真音色(如 V3 的原生 01 序列)。
- 💡 进阶使用建议:
- V3 推荐用法: 优先通过
reference_audio提供一个高音质片段。V3 模型对比 V1 有质的飞跃,其对音质的还原度和表现力极高。 - 描述词技巧: 尽量使用具体的场景化描述(例如“在大雨中嘶吼”或“温柔的枕边话”),V3 模型能捕捉到极其细微的情感波动。
- 种子音频回退: 在“描述生成 (Instruct)”模式下,若不提供参考音频,系统将使用内置的高保真种子作为底色。可以通过切换
base_gender来获取不同的基础人声方向。
- V3 推荐用法: 优先通过
3.6 智能音频增强 (Audio AI Enhance) (推荐)
- 用途: 专为 CosyVoice 等生成式语音设计的增强器。它基于
resemble-enhance强大的 Conditional Flow Matching (CFM) 模型,能同时完成后处理降噪和超分辨率(Bandwidth Extension)。 - 核心能力: 将任意低采样率(如 22kHz, 16kHz)的输入音频,重构为 44.1kHz 的高保真音频。
参数详解:
-
mode:
Enhance (Denoise + Bandwidth Ext): (推荐) 同时去除底噪并提升音质。Denoise Only: 仅去除噪声,不改变音质。
-
solver: 推理求解器。
Midpoint(默认): 速度与质量的最佳平衡。RK4: 质量最高,但速度慢 2 倍。Euler: 速度最快,但可能产生条纹。
-
nfe (Steps): 迭代步数。
- 32: 快速预览。可能会有残留条纹。
- 64: (推荐) 标准质量。
- 128: 极高画质,消除所有细微伪影,但耗时。
-
tau (Temperature): 先验温度 (默认 0.5)。
- 控制生成过程的“创造力”。
- 0.5 为平衡点。如果声音发虚,尝试降低到 0.3。
-
denoise_strength (去噪强度) :
- 范围
0.0-1.0。默认0.5。 0.0: 保留所有原始底噪。1.0: 强力去噪。- Tip: 如果你在频谱图的低频部分看到 水平条纹 (Hum/Buzz),请将此值提高到 0.8 - 1.0。
- 范围
-
high_pass_hz (高通滤波) 🔥 新增 (v1.4.82):
- 范围:
0 - 1000Hz。默认0(关闭)。 - 作用: 在 AI 增强之前,直接切除指定频率以下的低频信号。
- 为什么需要它?: 如果
denoise_strength=1.0仍无法消除低频条纹,说明 AI 把这些噪音当成了“真实信号”进行增强。 - 最佳实践: 遇到顽固的低频条纹时,设置 60 - 80 Hz。
- 安全: 只要保持默认为 0,此功能完全禁用,对原音质零影响。
- 范围:
-
chunk_seconds / overlap_seconds:
- 30s / 1s: (推荐) 4090 等显卡的最佳平衡点。
- 注意: 首次运行时,模型会进行 JIT 编译(约60秒)。请耐心等待,这只发生一次。
- 依赖: 首次运行会自动安装
resemble-enhance。
3.7 智能音频降噪 (VoiceFixer) (Legacy)
-
用途: 用于修复严重受损的音频(如老电影、严重削波或极强背景噪)。
-
注意: 对于 CosyVoice 生成的较干净语音,不推荐使用此节点,因为它通过重构方式修复,容易在干净语音上引入伪影(Spectral Stripes)。请优先使用
Audio AI Enhance。 -
参数:
mode:- 0 (Full): 去噪 + 去混响 + 去破音 + 超分。适合质量最差的音频。
- 1 (No DeClip): 去噪 + 去混响 + 超分。适合大多数情况。
- 2 (Denoise Only): 仅去噪。
use_cuda: 是否使用 GPU (推荐)。
-
依赖: 首次运行会自动安装
voicefixer库。 -
⚠️ 模型下载问题 (Model Download Issues): 如果遇到下载卡顿或
PytorchStreamReader报错,请尝试手工下载模型文件,并按以下结构放入ComfyUI/models/voicefixer目录中:ComfyUI/models/voicefixer/ ├── analysis_module/ │ └── checkpoints/ │ └── vf.ckpt (466MB) └── synthesis_module/ └── 44100/ └── model.ckpt-1490000_trimed.pt (135MB)下载地址 (Download Links):
- vf.ckpt: HuggingFace Mirror 或 Zenodo
- model.ckpt-1490000_trimed.pt: HuggingFace Mirror 或 Zenodo
使用 huggingface-cli 下载 (CLI Example):
# 进入 ComfyUI/models/voicefixer 目录 cd ComfyUI/models/voicefixer # 下载 vf.ckpt (注意路径) hf download Diogodiogod/VoiceFixer-vf.ckpt vf.ckpt --local-dir analysis_module/checkpoints # 下载 model.ckpt (注意路径) hf download Diogodiogod/VoiceFixer-model.ckpt-1490000_trimed.pt model.ckpt-1490000_trimed.pt --local-dir synthesis_module/44100
3.8 Audio Post-Process (Resample/Fade/Norm)
- 用途: 音频后期处理“母带”节点。
- 功能:
- Resample: 使用高精度算法(sinc_interp_hann)将音频上采样至 44.1kHz 或 48kHz,改善听感清晰度。
- LowPass Filter: 可选的低通滤波器(默认 11000 Hz)。采用 6级级联(Cascaded) 设计,像“砖墙”一样强力消除由 CosyVoice 带来的高频混叠(Resampling Artifacts)。
- HighPass Filter: 可选的高通滤波器(默认 60 Hz)。采用 单级平滑 设计,在去除低频轰鸣声和直流偏移的同时,完美保留人声的低音厚度。
- Fade In/Out: 对音频首尾添加淡入淡出,消除由于切割或拼接可能残留的爆音。
- Normalize: 将音量标准化至 -1dB,确保输出响度饱满且不破音。
- 场景: 建议串联在
Voice Conversion节点之后使用。
3.9 Audio Splice Analyzer (AIIA Debug)
- 用途: 可视化验证音频拼接质量。
- 功能:
- 生成 Log-Mel 语谱图 (Spectrogram)。
- 如果接入了
Voice Conversion节点的SPLICE_INFO输出,会自动在图上用红线标记出所有拼接点的位置。 - 帮助用户直观地检查拼接点是否位于静音区,以及是否有明显的频谱断裂。
- 依赖: 需要
matplotlib库。如果未安装,节点会生成一张提示错误的图片,不会导致工作流崩溃。
3.10 音频信息查看 (Audio Info & Metadata)
- 用途: 实时查看音频流的元数据,确保你的采样率符合预期。
- 输入:
AUDIO张量。 - 输出:
info_text: 包含采样率、时长、通道数、BatchSize等详细信息的文本报告。sample_rate: 采样率 (INT)。duration: 时长秒数 (FLOAT)。channels: 通道数 (INT)。
3.11 Microsoft VibeVoice (Beta)
- 用途: 微软最新的 TTS/音色克隆模型,支持 1.5B 和 7B 两种规格。
- 当前状态: ✅ 可用(已通过测试)
- 支持语言: 英文 (en) 和 中文 (zh)(官方仅在这两种语言数据集上训练)
- 可选模型:
microsoft/VibeVoice-Realtime-0.5B: 最新实时版,极致速度,支持多种语言(如日、韩、英、中等),上下文 8K。推荐用于低延迟对话场景。microsoft/VibeVoice-1.5B: 轻量版,64K 上下文(~3GB 显存)。vibevoice/VibeVoice-7B: 高质量版,32K 上下文(~14GB 显存)。推荐用于生产环境。
- 特点:
- 多语言支持: 0.5B 版本支持比 1.5B/7B 更多的语言种类。
- 即时启动: 无需预热或编译,首次运行即可使用(CosyVoice 首次需 ~1 分钟编译)。
- 语言自动识别: 模型会自动识别中英文文本。
- 零样本音色克隆: 输入
reference_audio即可克隆声音。参考音频会自动重采样到 24000Hz。
- 节点参数 (推荐参数建议):
-
cfg_scale(默认: 1.3): CFG 引导强度。建议使用 1.3。 -
ddpm_steps(默认: 20): 扩散步数。 -
do_sample(默认: "auto"): 智能采样开关。"auto": 自动适配。1.5B 模型默认关闭(保证稳定性),7B 模型默认开启(释放表达力)。"true": 强制开启。如果 1.5B 开启后出现电音或逻辑混乱,请切换回"auto"。"false": 强制关闭(即 Greed Search)。
-
temperature(默认: 0.8): 采样温度。仅在do_sample开启时有效。 -
top_k / top_p: 采样约束。 -
speed(默认: 1.0): 播放速度。 -
do_sample: "auto" (或false) - 保证极速和绝对稳定。 -
normalize_text: True - 帮助处理各种语言的特殊符号。 -
特点: 该模型支持包括韩语、日语在内的更多语种,速度极快。
-
🔬 详细观察与进阶技巧
-
0.5B 实时版:
- 频谱特征: 在静音区域(Silence)可能在全部频率范围内观察到较高的能量分布,尤其在中频区域。
- 听感: 尽管频谱显示有能量,但实际听感比较干净,只有轻微的底噪。这表明其声码器可能存在某种特征泄露,但不影响实用性。
- 迭代次数: 由于基于音素(Phoneme)和流式切片处理,其显示的迭代次数(Total Steps)通常多于标准版,这是正常的。
-
1.5B vs 7B 对比:
- 音质与风格: 在参数调整得当(如开启
do_sample)的情况下,1.5B 模型生成的语音内容、风格和音质与 7B 模型几乎无法区分。 - 性价比: 1.5B 模型的推理速度约为 7B 的 2倍,显存占用仅为 1/4。除非对极细微的表达有极致要求,否则 1.5B 是生产环境的最佳选择。
- 迭代差异: 1.5B 的迭代次数(Token数)可能略少于 7B,这反映了不同模型对同一文本编码的简洁程度差异,属正常现象。
- 音质与风格: 在参数调整得当(如开启
💡 7B 模型音质“全开”指南
要达到官方 Benchmark 的水准,请对 7B 模型尝试以下组合:
-
do_sample: True (开启采样) -
temperature: 0.8 - 0.9 -
cfg_scale: 1.3 - 1.8 -
ddpm_steps: 20 - 50 -
normalize_text: False -
环境要求:
- Flash Attention 2: 强烈推荐安装(否则速度较慢)。
- Transformers:
>= 4.51(重要: 旧版本不支持该模型)。
-
节点:
VibeVoice Loader: 加载模型。支持从 HuggingFace 自动下载,也支持加载本地模型。VibeVoice TTS: 支持 Zero-shot 音色克隆(输入reference_audio即可)。
-
模型准备 (Model Preparation): 如果遇到下载问题或分词器报错,请手动下载模型文件到
models/vibevoice目录。必须的文件结构 (以 1.5B 为例,7B 类似):
ComfyUI/models/vibevoice/microsoft/VibeVoice-1.5B/ # 或 VibeVoice-7B/ ├── model-*.safetensors (模型权重) ├── config.json └── [Tokenizer Files] (必须包含以下 Qwen 文件!) ├── tokenizer.json ├── tokenizer_config.json ├── vocab.json └── merges.txt💡 说明: 插件已内置并修复了所有 VibeVoice 的 Python 核心代码 (
vibevoice_core)。你不需要也不建议在模型目录中保留modeling_vibevoice_*.py等 Python 脚本,以避免潜在的冲突。⚠️ 重要提示: VibeVoice 依赖 Qwen2.5 的分词器。如果模型包里没有 tokenizer 文件,请手动补全:
- 1.5B 模型使用 Qwen/Qwen2.5-1.5B 的 tokenizer
- 7B 模型使用 Qwen/Qwen2.5-7B 的 tokenizer
💡 VibeVoice 使用指南 (Node Usage Guide)
由于模型架构不同,我们现在提供 两个独立的 TTS 节点 以优化体验:
1. 🗣️ VibeVoice TTS (Standard)
- 适用模型:
VibeVoice-1.5B,VibeVoice-7B - 参考音频 (Reference Audio): 可选 (
optional)。如果不连接,将自动使用内置的高品质女声种子 (Fallback Seed) 进行生成。 - 功能: 支持零样本音色克隆 (Zero-shot Cloning)。输入任何音频,它都会模仿该音色。
- 不支持:
voice_preset(预设)。
2. 🗣️ VibeVoice TTS (Realtime 0.5B)
- 适用模型:
VibeVoice-Realtime-0.5B - 必选参数:
voice_preset(音色预设) - 必须选择。 - 功能: 极速实时生成。基于预计算的
.pt缓存文件生成语音。 - 不支持:
reference_audio(直接克隆)。 - 特点:
- 极低延迟: 首包延迟极低,适合即时交互。
- BF16 加速: 自动使用 Bloat16 精度进行推理(如果硬件支持),大幅提升速度。
- 多语言支持: 官方预设涵盖英、日、韩、法、德等。
3. 🎤 VibeVoice Preset Maker (0.5B) (Experimental ⚠️)
-
用途: 尝试制作 0.5B 模型专用的
.pt音色预设。 -
现状: 极不稳定。
-
原因: 社区反馈和测试表明,VibeVoice-Realtime-0.5B 模型的权重似乎对自定义音色进行了限制或未进行充分的 Zero-Shot 泛化训练。即使使用长达 1 分钟的高质量音频,生成时也极易出现死循环、胡言乱语或噪音。
-
建议:
- 首选: 请直接下载并在
Realtime 0.5B节点中使用 微软官方提供的预设 (Carter, Emma 等)。 - 尝试: 如果您一定要克隆音色,请使用 VibeVoice 1.5B / 7B (Standard) 节点,它们原生支持完美的 Zero-Shot 克隆。
- 仅供研究: 此节点保留给开发者进行研究调试,普通用户不推荐使用。
手动下载命令:
# ===== 0.5B 实时多语言模型 (Realtime) ===== mkdir -p models/vibevoice/microsoft/VibeVoice-Realtime-0.5B hf download microsoft/VibeVoice-Realtime-0.5B --local-dir models/vibevoice/microsoft/VibeVoice-Realtime-0.5B # 补全 Tokenizer (使用 Qwen2.5-0.5B) wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct/resolve/main/tokenizer.json -P models/vibevoice/microsoft/VibeVoice-Realtime-0.5B/ wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct/resolve/main/tokenizer_config.json -P models/vibevoice/microsoft/VibeVoice-Realtime-0.5B/ wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct/resolve/main/vocab.json -P models/vibevoice/microsoft/VibeVoice-Realtime-0.5B/ wget https://huggingface.co/Qwen/Qwen2.5-0.5B-Instruct/resolve/main/merges.txt -P models/vibevoice/microsoft/VibeVoice-Realtime-0.5B/ # 🔥 [重要] 下载 0.5B 官方音色库 (Voices Presets) 🔥 # 0.5B 模型必须配合官方音色预设使用,不支持零样本克隆。 # 请务必将以下文件下载到 `models/vibevoice/voices/streaming_model` 目录: mkdir -p models/vibevoice/voices/streaming_model cd models/vibevoice/voices/streaming_model # 下载核心音色 (仅示例,全部音色请参考官方 GitHub) # ⚠️ 注意:官方仓库目前暂未提供中文 (.pt) 预设,建议使用英文或日韩文测试,或自行制作预设。 # 英文 (English) wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/en-Carter_man.pt wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/en-Emma_woman.pt # 日语 (Japanese) wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/jp-Spk0_man.pt wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/jp-Spk1_woman.pt # 韩语 (Korean) wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/kr-Spk0_woman.pt wget -N --no-check-certificate https://github.com/microsoft/VibeVoice/raw/main/demo/voices/streaming_model/kr-Spk1_man.pt # 更多语言 (德语 de, 法语 fr, 意大利语 it, 西班牙语 sp/es, 葡萄牙语 pt 等) 均支持! # ===== 1.5B 基础模型 ===== mkdir -p models/vibevoice/microsoft/VibeVoice-1.5B hf download microsoft/VibeVoice-1.5B --local-dir models/vibevoice/microsoft/VibeVoice-1.5B # 补全 Tokenizer wget https://huggingface.co/Qwen/Qwen2.5-1.5B/resolve/main/tokenizer.json -P models/vibevoice/microsoft/VibeVoice-1.5B/ wget https://huggingface.co/Qwen/Qwen2.5-1.5B/resolve/main/tokenizer_config.json -P models/vibevoice/microsoft/VibeVoice-1.5B/ wget https://huggingface.co/Qwen/Qwen2.5-1.5B/resolve/main/vocab.json -P models/vibevoice/microsoft/VibeVoice-1.5B/ wget https://huggingface.co/Qwen/Qwen2.5-1.5B/resolve/main/merges.txt -P models/vibevoice/microsoft/VibeVoice-1.5B/ # ===== 7B 模型 ===== mkdir -p models/vibevoice/vibevoice/VibeVoice-7B hf download vibevoice/VibeVoice-7B --local-dir models/vibevoice/vibevoice/VibeVoice-7B # 补全 Tokenizer (如果没有) wget https://huggingface.co/Qwen/Qwen2.5-7B/resolve/main/tokenizer.json -P models/vibevoice/vibevoice/VibeVoice-7B/ wget https://huggingface.co/Qwen/Qwen2.5-7B/resolve/main/tokenizer_config.json -P models/vibevoice/vibevoice/VibeVoice-7B/ wget https://huggingface.co/Qwen/Qwen2.5-7B/resolve/main/vocab.json -P models/vibevoice/vibevoice/VibeVoice-7B/ wget https://huggingface.co/Qwen/Qwen2.5-7B/resolve/main/merges.txt -P models/vibevoice/vibevoice/VibeVoice-7B/ - 首选: 请直接下载并在
3.12 VoxCPM 1.5 TTS (Beta)
-
用途: 下一代 Tokenizer-free TTS 模型,提供 44.1kHz 原生高保真音质。
-
状态: Beta (骨架已上线,推理逻辑完善中)
-
手动下载指南 (Manual Download): 如果节点无法自动下载模型,请手动下载
openbmb/VoxCPM1.5并放入以下目录:ComfyUI/models/voxcpm/VoxCPM1.5/ ├── model.safetensors ├── config.json └── ... (其他相关文件)HuggingFace 下载命令:
mkdir -p models/voxcpm/VoxCPM1.5 hf download openbmb/VoxCPM1.5 --local-dir models/voxcpm/VoxCPM1.5降噪模型 (Optional Denoiser - ZipEnhancer): 默认开启
enable_denoiser会自动从 ModelScope 下载speech_zipenhancer_ans_multiloss_16k_base到以下目录:ComfyUI/models/voxcpm/speech_zipenhancer_ans_multiloss_16k_base/如需手动下载(或离线使用):
pip install modelscope modelscope download --model iic/speech_zipenhancer_ans_multiloss_16k_base --local_dir models/voxcpm/speech_zipenhancer_ans_multiloss_16k_baseNote
频谱特征说明 (Spectral Analysis Note): 用户实测发现,尽管该模型输出 44.1kHz 格式,但在频谱图上可能观察到以下特征:
- 静音区能量较高 (High Noise Floor): 并非绝对静默。
- 水平条纹 (Horizontal Stripes): 特别是在低频区域,这通常是 Neural Upsampling (VAE/GAN) 重构波形的典型痕迹。
- 听感: 这种“升频痕迹”可能会带来轻微的机械感或金属音,这属于模型权重的固有特性。
💡 用户实测与选型指南 (Model Comparison & Selection)
经过深度测试,我们在三个主流模型中整理了以下对比,助您选择最适合的引擎:
| 维度 | VoxCPM 1.5 (800M) | CosyVoice 3.0 (0.5B/1.5B) | VibeVoice (1.5B/7B) |
|---|---|---|---|
| 音质 (Fidelity) | 44.1kHz 格式 <br>虽然物理格式为 44.1k,但因采用 Neural Upsampling (神经升频) 技术,听感上会有含混 (Muffled) 或金属感,且伴有底噪。 |
优秀 <br>听感最自然,但采样率稍低 (22/24kHz),有时需 AI 增强。 |
良好 <br>主要强在语气自然度,纯音质略逊。 |
| 推理速度 (Speed) | 🚀 冠军 (RTF ~0.17)<br>得益于 Tokenizer-free,极其高效。 |
极快 <br>流式响应仅 150ms,且支持 TensorRT 加速。 |
一般/较慢 <br>7B 版本较重,更适合离线生成。 |
| 克隆能力 (Cloning) | SOTA (Zero-Shot)<br>只需 3-10秒,对音色质感还原极高。 |
SOTA (稳定性)<br>对说话韵律/口音的捕捉最准。 |
良好 <br>适合克隆特定语气,而非纯粹音色。 |
| 多语言/方言 | 中/英 (双语优化) | 👑 霸主 (9种语言 + 18种方言) | 中/英 |
| 语音转换 (VC) (Audio-to-Audio) | ❌不支持 <br>仅支持 TTS (Text-to-Speech)。无法改变已有音频的音色。 |
✅支持 <br>可以将任意音频转换为任意音色 (保留语调/停顿)。 |
❌不支持 <br>纯 TTS 模型。仅支持 Text-to-Speech。 |
| Qwen3-TTS (1.7B/0.6B) | ✅支持 <br>支持 Presets (内置音色) 和 VoiceDesign (描述)。 |
✅支持 <br>支持 3秒极速 Clone (克隆) 模型。 |
✅支持 <br>支持 10 种语言。 |
3.13 Qwen3-TTS (New! 🔥)
- 用途: 阿里巴巴 Qwen 团队推出的最新旗舰级 TTS 模型,支持 10 种主要语言及多种方言,具备极高的稳定性和表现力。
- 核心能力:
- Base (Clone): 核心能力为 3秒极速音色克隆。支持 X-Vector 模式提升稳定性。
- CustomVoice (Presets): 阿里巴巴官方提供的 9 种高品质内置音色 (如 Vivian, Zack 等),支持极强的情感和方言控制。
- VoiceDesign: 通过自然语言描述(如“活泼的少女音,带点羞涩”)从零设计音色。
- 环境要求:
- qwen-tts:
pip install qwen-tts(插件会自动尝试安装)。 - Flash Attention 2: 强烈推荐以获得最佳推理性能。
- qwen-tts:
- 节点:
🤖 Qwen3-TTS Loader: 加载模型。支持Base (Clone)、CustomVoice (Presets)和VoiceDesign模型。🗣️ Qwen3-TTS Synthesis: 执行合成。支持单模型连接或通过 Router 连接的 Bundle。🔌 Qwen3-Model Router (Bundle): [新] 路由节点。将多个分立的 Qwen 模型捆绑成一个,供对话节点自动调用。🎙️ Qwen3-TTS Dialogue (Specialist): [旗帜级] 专为 Qwen3 设计的对话节点。单输入设计,支持通过 Router 实现混合克隆/捏人。
- 模型列表:
Qwen/Qwen3-TTS-12Hz-1.7B-Base(或 0.6B-Base)Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice(或 0.6B-CustomVoice)Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign
📊 模型功能映射表 (Model Capability Mapping)
| 模型版本 | 音色克隆 (Clone) | 情感控制 (Emotion) | 文字捏人 (Design) | 方言支持 (Dialect) |
|---|---|---|---|---|
| Base (1.7B/0.6B) | 👑 最强 | ❌ 仅限录音自带 | ❌ 不支持 | ⚠️ 仅限录音自带 |
| CustomVoice (1.7B) | ⚠️ 效果极差 | ✅ 支持 | ⚠️ 指令干扰严重 | ⚠️ 效果一般 |
| VoiceDesign (1.7B) | ❌ 不支持 | 👑 专家 | 👑 专家 | 👑 完美支持 |
| CustomVoice (0.6B) | ⚠️ 效果极差 | ✅ 支持 | ✅ 表现优异 | ✅ 表现优异 |
Tip
关于 UI 简化: 现在的对话节点只有一个
qwen_model输入槽。
- 如果你只需要一种模型,直接连上即可。
- 如果你想实现“Speaker A 克隆,Speaker B 捏人”的混合效果,请使用
🔌 Qwen3-Model Router节点进行打包连接。
Important
结论:
- 做 3秒音色克隆:必须连
Base模型。- 说 方言 或 文字定制音色:优先连
VoiceDesign(1.7B)或CustomVoice(0.6B)。- 使用 Vivian/Zack 内置音色:连接
CustomVoice模型。
🛠️ 手工下载指南 (Manual Download Guide):
如果节点无法自动下载,或您需要在离线环境使用,请手动从 HuggingFace 或 ModelScope 下载模型文件夹,并放入以下目录(文件夹建议保留原名):
ComfyUI/models/qwen_tts/Qwen/
├── Qwen3-TTS-12Hz-1.7B-Base/ <-- 对应 1.7B Base (Clone)
├── Qwen3-TTS-12Hz-1.7B-CustomVoice/ <-- 对应 1.7B CustomVoice
├── Qwen3-TTS-12Hz-1.7B-VoiceDesign/ <-- 对应 1.7B VoiceDesign
├── Qwen3-TTS-12Hz-0.6B-Base/ <-- 对应 0.6B Base (Clone)
└── Qwen3-TTS-12Hz-0.6B-CustomVoice/ <-- 对应 0.6B CustomVoice/VoiceDesign
下载命令 (HuggingFace CLI):
mkdir -p models/qwen_tts/Qwen
# 1.7B 系列
hf download Qwen/Qwen3-TTS-12Hz-1.7B-Base --local-dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-1.7B-Base
hf download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local-dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice
hf download Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign --local-dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign
# 0.6B 系列
hf download Qwen/Qwen3-TTS-12Hz-0.6B-Base --local-dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-0.6B-Base
hf download Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local-dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice
ModelScope 下载 (国内推荐):
# 0.6B 示例
pip install modelscope
modelscope download --model qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice --local_dir models/qwen_tts/Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice
Note
对于 0.6B 系列,官方目前将
CustomVoice和VoiceDesign(文字设计)能力集成在同一个模型中。因此在设计模式下,加载0.6B-CustomVoice即可获得极佳效果。
🎭 掌握指令控制 (Instruct Control)
Qwen3-TTS 最强大的特性之一是其自然语言指令驱动的能力。与传统的“固定标签”不同,你可以直接在 instruct 输入框中用一段描述来控制声音的表现。
1. 情感与语气控制 (Emotion & Tone) 虽然官方没有强制的固定标签列表,但以下描述词被证明效果极佳(支持中文或英文):
- 基础情感: "开心" (Happy), "悲伤" (Sad), "生气" (Angry), "兴奋" (Excited), "温柔" (Gentle), "严肃" (Serious)。
- 微表情控制 (New!): 在 Specialist 节点中,你可以叠加更细腻的语气,如 "带点羞涩的" (With a hint of shyness), "语气充满诱惑力" (Seductive tone), "语气带着哭腔" (Crying tone), "语气充满笑意" (Cheerful tone) 等。
- 提示: 这些指令可以组合,例如
生气且激动的。或Very happy and excited.
2. 语速与节奏 (Prosody)
虽然节点有专门的 speed 滑块,但通过 instruct 可以实现更自然的节奏控制:
- "语速极快" (Very fast speaking rate), "缓慢且深情地" (Slow and soulful), "中间有明显的停顿" (Dramatic pauses)。
3. 音色设计 (Voice Design) 在加载 VoiceDesign 模型时,指令框即为你的“捏人”引擎:
-
特征描述: "沙哑的男低音" (Raspy deep male voice), "甜美的少女音" (Sweet young girl's voice), "充满磁性的中年女性" (Magnetic middle-aged female)。
-
示例:
A young woman with a clear, bright voice, speaking with great confidence. -
示例:
A young woman with a clear, bright voice, speaking with great confidence. -
方言与口音 (Dialect & Accent):
- 虽然官方称全系列支持,但实测发现不同模型遵循度不同:
- VoiceDesign (1.7B/0.6B-Custom): 👑 效果最强。因为没有固定身份限制,能完美呈现粤语、上海话等方言的韵律。
- CustomVoice (Presets): 效果一般。由于 Vivian 等音色有固定的标准语设定,方言指令常会被弱化以维持音色一致性。
- Base (Clone): 效果最弱。主要取决于你的参考音频本身是什么口音。
4. 使用技巧:
- 句尾符号: 指令末尾建议加一个句号(如
开心地。),这有助于模型更稳定地理解指令边界。 - 对话剧本: 在
🎙️ Qwen3-TTS Dialogue (Specialist)节点中,如果某位 Speaker 处于Preset或Design模式,系统会自动将剧本中的情感标签(如[开心])转换为对应的instruct指令。
💡 用户实测与选型指南 (Model Comparison & Selection)
选型建议:
- 追求“听起来最像真人” (音质+音色): 选 VoxCPM 1.5。它的 Tokenizer-free 架构带来了质的飞跃。
- 追求“方言/多语言/稳定性”: 选 CosyVoice 3.0。目前依然是生产环境最稳的选择。
- 追求“多样化音色设计/最新 Qwen 生态/长语音流畅度”: 选 Qwen3-TTS。其 VoiceDesign 功能能让你用描述语“捏”出从未听过的声音。
- 要做“长篇广播剧/播客”: 选 VibeVoice。它的长窗口上下文优势依然不可替代。
4. 播客与对话生成 (Podcast & Dialogue Generation)
https://github.com/user-attachments/assets/9a5502c5-79e3-4fc8-8a2d-2cbdbdbbc860
🎬 点击观看演示视频 (GitHub 限制,需要手工取消静音)
🚀 新增功能:这是专门为生成双人对话、相声、广播剧设计的完整工作流节点。能够自动解析剧本、调度多角色 TTS,并实现长音频的智能拼接。
4.1 AIIA Podcast Script Parser (脚本解析器)
负责将自然语言剧本转换为机器可读的结构化数据。
- Script Text: 剧本输入区域。
- 基本格式:
角色名: 台词(例如A: 大家好) - 暂停控制:
(Pause N)(例如(Pause 0.5)表示暂停 0.5 秒) - 情感标签 (仅 CosyVoice):
[Emotion] 台词(例如[Happy] 大家好)
- 基本格式:
- Speaker Mapping: 角色映射配置 (可选)。
- 格式:
原剧本角色名=A,原剧本角色名=B - 示例:
Teacher=A,Student=B
- 格式:
4.2 AIIA Dialogue TTS (对话生成引擎)
核心调度与生成节点,支持自动角色切换和长音频拼接。
- TTS Engine: 后端引擎选择。
- CosyVoice: 精准控制型。
- Qwen3-TTS: 万能旗舰型。支持混合模式:通过连接多个 Qwen 模型,可实现在一个对话中同时使用克隆和内置音色。
- Qwen Model Pins (Multi-Routing):
qwen_model: 默认主模型。qwen_base_model(可选): 连接Base模型,专门处理有参考音频 (Clone) 的角色。qwen_custom_model(可选): 连接Custom模型,专门处理使用内置 ID (Presets) 的角色。qwen_design_model(可选): 连接VoiceDesign模型,专门处理复杂描述的角色。- Ref Audio: 参考音频 (用于 Zero-Shot 克隆)。
- ID: 内置音色 ID (如 CosyVoice 的
Chinese Female)。
- Batch Mode: 生成模式控制。
Natural (Hybrid): 混合批处理。仅在(Pause)处断开。语流最自然,但可能发生音色泄漏。Strict (Per-Speaker): 严格模式。每句话都会强制断开重置。彻底杜绝音色泄漏,但对话流畅度略低。Whole (Single Batch): 全量模式。无视所有暂停,一次性生成整本剧本。连贯性最强,但无法控制停顿时间。
- Batching Parameters:
max_batch_char(Default 1500): 单次批处理的最大字符上限。增加此值可大幅提升 Qwen3 的对话连贯性和情感一致性。最高支持模型上限 32,768。
- Emotion Safeguard (New!):
- 智能检测: 系统会自动嗅探加载模型的元数据。如果你使用 CosyVoice SFT/Base 或 VibeVoice 等不支持
Instruct功能的模型,系统将自动跳过[Emotion]标签插入,防止模型读出方括号。
- 智能检测: 系统会自动嗅探加载模型的元数据。如果你使用 CosyVoice SFT/Base 或 VibeVoice 等不支持
4.6 AIIA Qwen Dialogue TTS (Qwen 旗舰对话节点)
[v1.11.0 New] 深度集成 Qwen3-TTS 的多模式特性,支持复杂的混合角色场景。
- Parameters:
seed: 随机种子。speed: 语速调节。cfg_scale: 指令遵循强度 (Classifier-Free Guidance)。建议值 1.5 - 7.0。emotion: [v1.11.1 New] 选中预设情感(开心、悲伤、幽默、愤怒等系统预置微调)。dialect: [v1.11.1 New] 选中预设方言(粤语、上海话、东北话、四川话等)。temperature: 采样温度。max_batch_char: 单次批处理上限(最高 32,768)。
- Speaker A/B/C Configuration:
- Mode: 选择
Clone(音色克隆)、Preset(官方预设) 或Design(文字设计)。 - ID: 当模式为 Preset 时,输入预设音色名 (如
Vivian,Serena,Uncle_Fu,Dylan,Eric,Ryan,Aiden,Ono_Anna,Sohee)。 - Expression: (New!) 为当前角色选择专属微表情描述。
- Dialect: [v1.11.1 New] 为当前角色选择方言/口音(支持粤语、上海话、四川话、东北话等)。
- Design Description: 当模式为 Design 时,输入对音色的详细自然语言描述。
- Ref Audio: 当模式为 Clone 时,连接参考音频。
- Mode: 选择
- 特点: 相对于通用对话节点,此节点能根据每个人的模式自动路由到最合适的 Qwen 引擎,且支持在 UI 直接输入设计描述。
4.7 AIIA Subtitle Gen (字幕生成器)
[v1.7.0 New] 无需 STT,直接从生成过程中提取精准时间轴。
- Input:
segments_info: 来自AIIA Dialogue TTS或AIIA Generate Segments的输出。calibration_info(可选): [v1.10.2 新增] 接入AIIA Generate Speaker Segments的输出。用于将估算的时间轴自动“吸附”到真实的 VAD 语音活动区间,解决 VibeVoice 等批处理引擎的时间轴偏移问题。
- Output:
SRT: 通用字幕格式。ASS: 高级排版字幕格式 (自动区分角色颜色)。
- 原理:
- CosyVoice: 使用生成时的精确时长。
- VibeVoice: 使用智能插值算法 (Smart Interpolation),根据字符长度自动计算长音频段内的单句时间轴。
- Qwen3-TTS: 基于生成的音频振幅精准断句,支持多角色时间轴导出。
4.4 AIIA Subtitle to Segments (字幕转分段)
[v1.10.3 New] 将现有的 SRT/ASS 字幕文件转换为 segments_info 格式,以便进行时间轴重新校准。
- Input:
subtitle_text: SRT 或 ASS 格式的文本内容。subtitle_path(可选): 字幕文件的本地路径(如果提供,将优先读取文件)。
- Output:
segments_info: 标准化的 JSON 字符串,可直接输入到AIIA Subtitle Gen。
- 用途: 结合
Subtitle Gen的calibration_info输入,可以将旧的、不准的字幕自动对齐到新的、精准的音轨上。
4.5 AIIA Subtitle Preview (字幕预览)
[v1.7.1 New] 实时校验音画同步效果。
- Input:
subtitle_content: 来自Subtitle Gen的srt_content或ass_content。audio(Optional): 待预览的音频。
- Output:
- 交互式界面: 提供 Web 播放器,按时间轴滚动显示字幕。
- ASS 样式渲染: 尝试还原 ASS 字幕的字体颜色、大小和描边效果。
4.5 Interactive Teaching (Web Export) (互动式教学导出)
[v1.8.1 New] 将播客升级为视听同步的互动网页。支持“读写分离”的缓存优化,修改 Visual 标签无需重跑 TTS。
- 工作流 (Workflow):
Script Parser输出tts_data(连接到 TTS) 和full_script(连接到 Merge)。AIIA Dialogue TTS生成音频和segments_info。AIIA Segment Merge将full_script中的 Visual 标签重新贴回到segments_info时间轴上。AIIA Web Export生成最终 HTML。
- Input:
audio: 音频信号。segments_info: 来自 Merge 节点的包含 Visual 信息的 JSON。template:Split Screen(适合宽屏) 或Presentation(适合演示)。
- Visual Tag 语法:
- 在剧本中插入
(Visual: url)。 - 支持绝对 URL:
(Visual: https://example.com) - 支持相对路径:
(Visual: ./slides/01.jpg)(相对于导出 HTML 的位置)
- 在剧本中插入
4.8 AIIA Podcast Splitter (对话拆分器)
[v1.12.0 New] 将对话 JSON 按说话人拆分为独立文本列表,用于"拆分→生成→拼接"的高级流程。
- Input:
dialogue_json: 来自Script Parser的对话 JSON。
- Output:
split_map: 拆分映射表(JSON),保存原始顺序和各句话归属信息。text_A,text_B: 分别为说话人 A、B 的纯文本列表(每行一句),可直接送入各自的 TTS 节点独立生成。
- 用途: 实现对不同说话人使用不同 TTS 引擎/参数生成音频,再通过 Stitcher 精确拼接的高级工作流。
4.9 AIIA ASR Node (语音识别)
[v1.12.0 New] 基于 FunASR 的语音识别节点,输出带词级时间戳的识别结果,为 Stitcher 提供精确对齐依据。
- Input:
audio(AUDIO 张量)。 - Output:
ASR_RESULT(包含词级时间戳的识别结果)。 - 依赖: 需要安装
funasr库。模型首次运行时自动下载。
4.10 AIIA Podcast Stitcher (精确拼接器)
[v1.12.0 New] 将分轨生成的多角色音频按原始对话顺序精确拼接,还原自然对话节奏。
- 核心工作原理:
- 利用 ASR 词级时间戳找到每句话在各自音频中的时间边界。
- 通过三层匹配策略(精确子串→编辑距离模糊→等分回退)实现鲁棒对齐。
- 在切分边界处进行精细微调(能量检测或 VAD),确保不切断语音、不吃进相邻句子。
- 对切片施加余弦淡入淡出,并在说话人切换处插入自然过渡间隙。
- Input:
split_map: 来自 Splitter 的拆分映射。audio_A,audio_B: 各说话人独立生成的完整音频。asr_A,asr_B: 对应的 ASR 识别结果。
- Parameters:
gap_duration(Default 0.25s): 说话人交替时的过渡间隙。padding(Default 0.10s): 切片前后保留的呼吸/尾音余量。fade_ms(Default 30ms): 余弦淡入淡出时长。use_vad(Default False): 🔬 启用 Silero VAD 精确边界检测。- 开启后,使用 Silero VAD 神经网络模型(~2MB,首次自动下载)替代基于能量的边界检测。
- VAD 能精确识别语音起止点,彻底解决清辅音误切、尾音截断等能量检测的固有缺陷。
- 关闭时使用内置的平滑能量包络检测(20ms 窗口 + 5-point 滑动平均),已能应对大部分场景。
use_forced_align(Default False): 🎯 启用 MMS Forced Alignment 字级强制对齐。- 使用 Facebook MMS 声学模型(~1.2GB)对文本和音频进行字级强制对齐,精度最高。
- 中文文本自动转换为拼音(pypinyin)后送入模型。
- 当与
use_vad同时启用时,三种方法(FA/VAD/Energy)全部运行,输出 IoU 匹配度用于质量评估。
- Output: 拼接后的完整
AUDIO+segments_info(JSON)。
💡 引擎选型与最佳实践 (Best Practices)
| 特性 | CosyVoice | VibeVoice | Qwen3-TTS |
|---|---|---|---|
| 核心优势 | 精准控制 (Instruction) | 自然演绎 (Context-Aware) | 万能旗舰 (Voice Design) |
| 情感控制 | ✅支持 (使用 [Happy] 等标签) |
❌ 不支持显式标签 (依赖上下文) | ✅支持 (通过 instruct 或标签) |
| 生成逻辑 | 逐句生成 (严格遵循每句话的指令) | 混合批处理 (Hybrid Batching) | 动态引擎 (支持流式与批处理) |
| 最佳场景 | 需要精确指定某句话语气、方言时 | 长篇对话、广播剧、闲聊 | 音色定制、高质量配音、极速克隆 |
| 使用建议 | 可以在剧本中详细标注情感。 | 尽量减少 (Pause)!<br>让多句对话连在一起,模型能更好地联系上下文产生自然语气。 |
尝试使用其 Voice Design 进行创意捏人。 |
📝 综合测试剧本 (Example Script)
复制以下内容到 Script Parser 进行测试,能够充分体现两种引擎的特性:
# 这是一个展示 CosyVoice 和 VibeVoice 能力的综合剧本
# 角色映射建议:A=男声, B=女声
A: 大家好,欢迎来到 AIIA 播客直播间。
B: [开心] 哇,今天的人气好高啊!看到这么多朋友在线,我太激动了。
(Pause 0.5)
A: 呵呵,淡定一点。即使是 VibeVoice 这种基于 LLM 的模型,也需要你保持从容。
B: [疑惑] 为什么?难道它不喜欢太吵闹的声音吗?
A: 不是不喜欢,而是因为它会“读取”上下文。你越自然,它演得越像。
(Pause 0.8)
A: 比如说,如果我们用 CosyVoice,我可以强行指定你现在的状态。
B: [悲伤] 比如让我突然变得很伤心?
A: 对,就像这样。CosyVoice 是“指哪打哪”,非常听话。
(Pause 0.5)
B: [机器人的方式] 那如果我变成一个机器人呢?可以吗?
A: 哈哈,完全没问题。
(Pause 1.0)
A: 但是,如果你想演一场相声,或者很自然的闲聊,VibeVoice 的“混合批处理”就是神技了。
B: [excited] 也就是它会把我们现在说的这一长串话,一口气生成出来?
A: 没错!只要我们中间不加 Pause,它就会一口气读完,语气极其连贯,就像真人对话一样。
B: 太神奇了!那我们快去生成试试吧!
5. 图像工具 (Image Utilities)
Image Concatenate (AIIA Utils, Disk)
-
用途: 将两个图像序列(来自两个不同的目录)逐帧拼接在一起,非常适合创建对比视频或多面板视频。
-
核心亮点 (OOM-Safe): 此节点逐帧读取、处理和保存,从不将整个图像序列加载到内存中,因此可以处理任意数量的帧。
-
功能:
- 支持上下左右四个方向的拼接。
- 可自动调整其中一个图像序列的尺寸以匹配另一个,并保持宽高比。
- 可自定义背景填充颜色。
-
输出:
STRING(包含所有拼接后帧的新目录路径)。
AIIA Image Smart Crop (智能图像裁切)
- 用途: 一个功能全面的智能裁切节点,专为解决人脸比例、视频构图等问题设计。
- 场景: 强烈建议在 Ditto Sampler 或其他视频生成节点之前使用,以确保输入图像(特别是人脸)处于最佳位置和比例,避免“嘴巴太大”或“五官漂移”等问题。
- 参数:
crop_basis: 裁切基准。fixed_width/fixed_height: 锁定一条边 (使用 width/height 参数),另一条边自适应。fixed_long_side: 匹配原图长边。裁切出的长边长度等于原图长边长度 (忽略 width/height 参数)。fixed_short_side: 匹配原图短边。裁切出的短边长度等于原图短边长度 (忽略 width/height 参数)。适合“最大化裁切”。custom_size: 强制裁切为指定的widthxheight。
aspect_ratio: 裁切比例。- 默认为
original(保持原图比例或使用 custom_size 的宽高)。 - 可选
1:1,16:9,custom等。 - 选择非 original 时,会根据
crop_basis自动计算另一条边的长度。
- 默认为
custom_aspect_ratio: 自定义比例值 (例如 2.35)。仅在aspect_ratio选custom时生效。position: 锚点位置 (九宫格)。支持center,top,bottom_left等。offset_x/offset_y: 相对偏移量。用于在自动定位的基础上进行微调 (范围 -1.0 到 1.0)。
- 输出:
IMAGE(裁切后的图像)。
6. 调试与实用工具 (Debug & Utilities)
6.1 文本调试拼接 (Text Debug Splicer)
- 用途: 方便地将多段文本拼接为一个字符串,支持自定义标题和分隔符,常用于构建和调试复杂的 Prompt 或记录中间结果。
- 功能:
- 多路输入: 支持最多 3 路文本输入 (
text_1~3) 和自定义标题 (title)。 - 灵活分隔: 内置多种常用分隔符 (换行、分割线等)。
- 自动归档: 支持将拼接结果自动保存为
.txt文件,文件名支持自定义前缀 (save_prefix),方便回溯。
- 多路输入: 支持最多 3 路文本输入 (
- 输出:
STRING(拼接后的文本)。
❓ 故障排查
- 错误: "FFmpeg not found" / "NeMo model not found"
- 请返回阅读 安装与先决条件 部分,确保所有依赖都已正确安装和放置。
- 错误: "帧目录验证失败"
- 请确保您填写的路径是绝对路径且真实存在。
许可证
本项目采用 MIT 许可证。
Changelog
[1.11.1] - 2026-02-15
- Video Combine: 新增
cleanup_frames开关(默认关闭)。- 开启后,视频合成成功时自动删除输入的
frames_directory,减少磁盘空间占用。 - 防误删安全机制: 引入
.aiia_temp标记文件,只有 AIIA 节点自动生成的帧目录才会包含此标记,用户提供的素材目录不会被误删。
- 开启后,视频合成成功时自动删除输入的
- ToDisk 节点安全标记: 所有产生帧输出的节点(
FloatProcess_ToDisk、DittoSampler磁盘模式、PersonaLive_ToDisk、BodySway)现在会在输出目录中写入.aiia_temp标记文件。
[1.11.0] - 2026-02-04
- Qwen3-TTS: 新增阿里巴巴 Qwen3-TTS 全系列支持。
- 🤖 Qwen3-TTS Loader: 支持加载 Base, CustomVoice, VoiceDesign 及其 1.7B/0.6B 版本。
- 🗣️ Qwen3-TTS Synthesis: 实现全功能生成,包括 Zero-shot 克隆、音色设计和内置音色合成。
- Podcast Integration: AIIA Dialogue TTS 节点现在正式集成 Qwen3-TTS 引擎。
- 支持多角色混合场景下的 Qwen3 驱动,支持使用脚本标签触发
instruct。
- 支持多角色混合场景下的 Qwen3 驱动,支持使用脚本标签触发
- Auto-Dependency: 首次运行 Qwen3 节点会自动检测并安装
qwen-tts库。
[1.10.17] - 2026-02-03
- Subtitle: 引入“说话人 ID 为了映射 (Speaker Mapping)”机制。
- 在字幕校准过程中,系统会建立脚本角色与 VAD 检测角色的对应关系。这确保了即使在短句重叠(Spillover)的情况下,字幕也能强制匹配到正确的说话人音频,避免被相邻的音量大/时长长的角色“抢走”。
[1.10.16] - 2026-02-02
- Subtitle: 优化了多片段合并逻辑,引入“贪婪说话人占用”原则。
- 对于同一说话人的连续音频片段,只要中间没有被其他说话人占用且停顿小于 3s,都会自动合并到当前行字幕中。解决多句/长句被意外截断的问题。
[1.10.15] - 2026-02-02
- Subtitle: 修复了字幕时间校准逻辑中的 Bug。
- 增加了说话人一致性检查,防止上一句音频片段(VAD Chunk)被错误地共享给下一个不同说话人的句子,从而导致当前句字幕被截断。
[1.10.14] - 2026-02-02
- Ditto Sampler: 修复了由于
comfy.model_management接口版本差异导致的AttributeError。
[1.10.13] - 2026-02-02
- Ditto Sampler: 修复了采样过程中无法正常响应 ComfyUI 中断/取消信号的问题。
- 为所有工作线程增加了超时检测和状态轮询,支持在长任务执行期间即时退出。
[1.10.12] - 2026-02-02
- Debug & Utilities: 新增 Text Debug Splicer 节点。
- 支持多路文本拼接、自定义分隔符和自动文件归档。
[1.9.0] - 2026-01-20
- Ditto Talking Head: 新增 Ditto 模型支持 (PyTorch 版)。
- AIIA Ditto Loader: 支持自动下载与加载。
- AIIA Ditto Sampler: 支持内存内流式生成。
- EchoMimic V3: 优化了音频同步逻辑,修复了唇形漂移问题。
[1.8.4] - 2026-01-19
- VibeVoice Speed Control: 实现了基于系统
sox命令的变速不变调(Time Stretching)。 - 稳定性修复:
- 修复了 VibeVoice 在调整速度时由于张量类型不匹配(Half vs Float)导致的崩溃。
- 强制所有音频输出为
float32,解决了在speed=1.0且有参考音频时,下游节点(如 Resemble Enhance)报错的问题。
- 依赖更新: 新增
sox依赖。Linux 服务器用户请确保安装系统库:sudo apt-get install libsox-dev sox。
[1.8.3] - 2026-01-07
- VibeVoice TTS (Standard):
reference_audio变为可选参数。如果不输入,节点会自动加载内置的高品质女声种子,方便快速测试。 - Fix: 修复 GitHub Actions 发布的子模块错误。
[1.8.1] - 2026-01-05
- 互动式教学 (Interactive Teaching): 新增
AIIA Web Export节点,一键生成包含播放器、字幕和同步 Visual 展示的 HTML 页面。 - Visual Tag 支持: 剧本解析器支持
(Visual: url)标签,并支持相对路径。 - 缓存优化 (Caching): 实现了 Script Parser 的读写分离和
Segment Merge节点,支持修改 Visual 标签而不触发 TTS 重生成。 - 字幕增强: 修复了 ASS 字幕的多角色颜色显示问题 (自动分配颜色)。
[1.3.1] - 2026-01-03
本次更新标志着 CosyVoice 架构的完全大一统。通过“手术级”精准推理逻辑,我们成功解决了 300M 系列模型的所有顽疾。
✅ 已完成 (Perfectly Supported)
- V3 系列 (0.5B): 完美支持。性别、方言、情感以及指令文本均能精准跟随。
- V2 系列 (0.5B): 完美支持。
- 300M-Instruct (V1): 彻底修复 (Fully Fixed)。
- 指令跟随修复: 强制注入官方缺失的
<|endofprompt|>边界标识,完美解决了模型将指令文本读出来的问题。 - 能力矩阵:
- ✅ 支持: 情感控制 (Happy/Sad/Angry)、语速控制 (Fast/Slow)、基础性别 (Male/Female)。
Note
: 为了确保指令生效,请务必使用英文描述 (如 "Sad tone", "Male speaker")。中文描述虽然不会导致报错,但模型极有可能忽略其语义。
- ❌ ���支持: 方言指令 (Dialect) - 此模型架构原生不支持通过指令更改方言 (无论中文或英文),请使用 V3 或 V2 模型获取方言能力。
- ✅ 支持: 情感控制 (Happy/Sad/Angry)、语速控制 (Fast/Slow)、基础性别 (Male/Female)。
- 指令跟随修复: 强制注入官方缺失的
- 300M-SFT / Base (V1): 恢复原生巅峰音质。
- 稳定性: 杜绝了
AudioDecoder、KeyError以及llm_embedding缺失导致的各种崩溃。
🔈 资源更新
- HQ 种子音色: 内置从 300M-SFT 提取的高保真男声/女声种子音频。在零参考音频的“指令模式”下,V2/V3 将自动调用这些高保真资源,消除破碎感。