Skip to content

havvk/ComfyUI_AIIA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,081 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

AIIA Logo AIIA Nodes for ComfyUI

欢迎来到 AIIA Nodes for ComfyUI 仓库!这是一个旨在为 ComfyUI 提供一系列强大、直观且高度可定制的节点的集合。这些节点专注于简化复杂的工作流,并为创意工作者提供最大的灵活性。

本节点套件致力于解决 ComfyUI 工作流中的核心痛点。


🚀 全新旗舰节点:AIIA 媒体浏览器 🚀

还在费力地翻找 output 文件夹,或者对着一堆时间戳命名的文件猜内容吗?

我们隆重推出 AIIA 媒体浏览器——一个完全集成在 ComfyUI 内部的、功能完备的媒体文件管理中心。它的诞生,旨在彻底改变你管理和使用生成结果的方式,让整个过程变得高效、直观且充满乐趣。

image

✨ 为何选择 AIIA 浏览器?

  • 告别猜测: 无需离开 ComfyUI 即可即时预览图片、视频和音频。
  • 为性能而生: 专为处理包含数千乃至数万个文件的海量输出文件夹而设计,极致流畅,拒绝卡顿。
  • 精美且直观: 拥有现代化的用户界面,与 ComfyUI 原生主题无缝融合,宛若天生。

核心亮点

1. 强大的核心功能

  • 一键加载工作流: 直接从浏览器中加载任何图片、视频或工作流文件,瞬间恢复你的创作环境。
  • 直接下载文件: 无需再打开系统文件夹,一键下载你需要的任何文件。
  • 内容丰富的工具提示 (Tooltip): 将鼠标悬停在任何文件或文件夹上,即可看到包含详细元数据(尺寸、时长、日期等)的浮窗,甚至还能 直接在浮窗里预览图片、视频和音频
  • 高级排序与筛选: 按 名称、日期、大小、类型、尺寸或时长 对文件进行排序,并可选择隐藏文件夹,总能快速找到你想要的。

2. 顶级的界面与用户体验

  • 双视图模式: 可在经典的 图标视图(支持缩放)和信息详尽的 列表视图 之间一键切换。
  • 沉浸式全屏查看器: 双击文件即可进入一个独立的媒体查看器。支持视频/音频播放、用于快速导航的胶片缩略图,并提供多种导航方式(鼠标滑动、滚轮、键盘方向键和长按按钮)。
  • 全键盘导航: 为高级用户设计,你可以完全通过键盘在文件夹之间穿梭、选择文件、打开预览、显示/隐藏工具提示,实现真正的“效率流”操作。
  • 交互式路径与面包屑导航: 通过可点击的面包屑轻松跳转目录,或直接输入路径进行导航。

3. 无与伦比的性能与技术

  • 高性能后端: 基于 Python 的异步后端,利用 ffmpegPillow 进行即时的缩略图与视频海报生成。
  • 智能缓存: 所有缩略图和元数据都会被智能缓存。浏览器仅在文件发生变化时才重新生成,确保后续加载瞬间完成。
  • 懒加载与虚拟滚动: 我们在图标视图中使用 IntersectionObserver,在列表视图中实现 完全虚拟滚动。这意味着浏览器永远只渲染屏幕上可见的内容,即使面对上万个文件也能保持极低的内存占用和零延迟。
  • 无阻塞元数据分析: 在列表视图中,浏览器会在后台批量分析视频时长、尺寸等元数据,并以进度条显示,完全不阻塞UI操作。

4. 灵活的自定义选项

  • 在设置面板中,你可以根据习惯隐藏文件夹侧边栏,或开关视频预览功能。所有设置都会被自动保存。

🚀 核心设计理念:为大规模生成而生

本节点套件的另一个核心设计初衷,是为了攻克困扰许多用户的技术难题,特别是解决在生成长视频或处理大量图像帧时常见的内存不足(OOM)问题

🌟 告别OOM:为处理海量帧而生

处理成百上千张高清图像帧时,轻易就会耗尽 VRAM 和系统内存,导致工作流中断。AIIA 节点通过 增量式处理(Incremental Processing) 的策略从根本上解决了这个问题。

v1.9.21+ 内存优化

自 v1.9.21 起,AIIA Body SwayAIIA 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 (视频与浏览器节点强依赖)

视频合并节点和媒体浏览器的视频功能依赖 ffmpegffprobe

  • 访问 FFmpeg 官网 下载并安装。
  • 强烈建议将 FFmpeg 的 bin 目录添加到您系统的 PATH 环境变量中。
  • 在终端中运行 ffmpeg -versionffprobe -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 媒体浏览器

  1. 安装并重启后,一个 "AIIA Browser" 按钮会出现在 ComfyUI 主菜单中。
  2. 点击即可启动浏览器。
  3. 尽情探索你的 output 目录吧!

2. 视频生成与合成 (Video Generation & Compositing)

2.1 视频合并 (AIIA, 图像或目录)

这是一个功能强大且高度可定制的视频合并节点,是您工作流中处理视频生成的终极解决方案。

video_combine_node_ui

核心亮点:

  • 内存高效: 通过 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
    └── ...

下载地址:

  1. 主模型 (EchoMimicV3):

    • HuggingFace: BadToBest/EchoMimicV3
    • 下载命令 (推荐):
      hf download BadToBest/EchoMimicV3 --local-dir models/EchoMimicV3/EchoMimicV3
    • 注意:此模型包含 EchoMimic 特有的 Transformer 权重,是生成嘴型的核心。
  2. 底模 (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权重。
  3. 音频编码器 (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。
    • 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
    ├── ...

下载地址:

下载命令:

# 进入 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 视频节点套件优化,保证音画同步。

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 节点优化)。
    • ✅ 依赖版本兼容性 (Dependency Compatibility): CosyVoice 对 transformersPyTorch 版本敏感。AIIA 已内置深度兼容层,完美支持最新版本的 transformers

      依赖 兼容版本 备注
      transformers 全版本兼容 AIIA 内置 Qwen2Encoder 兼容层,自动适配新旧版本
      PyTorch ≤ 2.8.1 ✅ / ≥ 2.10.0 ✅ 2.9.x ❌ (PyTorch regression bug)

      [!NOTE] transformers > 4.53 重写了 Qwen2Model.forward() 的注意力掩码和隐藏状态输出,导致原版 CosyVoice 生成乱码。AIIA 通过手动逐层迭代 + SDPA 专用掩码 + POST-norm 输出还原,完全绕过了不兼容的新接口,确保与原始训练行为 100% 一致。

      如遇到 PyTorch 2.9.x 导致的问题,请升级:

      pip install torch==2.10.0 torchaudio==2.10.0 --index-url https://download.pytorch.org/whl/cu128
    • ⚠️ 模型下载问题 (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):

      使用命令行快速下载 (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-Instruct

      2. 使用 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),从而彻底消除长音频拼接处的“发虚”和回声感。
    • 双层寻点算法: 在语义缝隙确定的候选范围内,算法会自动进行微秒级的物理静音探测(基于能量平滑曲线),确保切点处于绝对静默状态。
  • 输入:
    • 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 模型的推理协议。内置自动补全机制,确保在任何配置下(即使缺少参考音频或内部音色)都能稳定运行,杜绝 AudioDecoderKeyError 等常见崩溃。
    • 无限长文本支持 (Streaming Architecture): 与 VibeVoice (类 GPT) 存在 8K/32K Token 上限不同,CosyVoice 采用流式架构,理论支持无限长文本输入的连续生成。系统会自动按句切分流式合成,适合长篇有声读物生成。
  • 🚀 五种核心生成模式:
    1. 风格/情感建模 (Instruct): 文字 + 描述。通过文字描述(如“非常开心地说”、“四川话”、“语速极快”)来控制生成的表现力。
    2. 音色克隆 (Zero-Shot): 文字 + 音频。通过极短的参考音频,完美复现目标说话人的身份和音色特征。
    3. 混合控制 (Hybrid): 音频 + 描述。在克隆音色的基础上,通过描述词改变情感或方言。
    4. 跨语言 (Cross-Lingual): 让你的克隆音色流利说出 9 种语言。
    5. 固定 ID (SFT): 直接选取模型内置的高保真音色(如 V3 的原生 01 序列)。
  • 💡 进阶使用建议:
    • V3 推荐用法: 优先通过 reference_audio 提供一个高音质片段。V3 模型对比 V1 有质的飞跃,其对音质的还原度和表现力极高。
    • 描述词技巧: 尽量使用具体的场景化描述(例如“在大雨中嘶吼”或“温柔的枕边话”),V3 模型能捕捉到极其细微的情感波动。
    • 种子音频回退: 在“描述生成 (Instruct)”模式下,若不提供参考音频,系统将使用内置的高保真种子作为底色。可以通过切换 base_gender 来获取不同的基础人声方向。

3.6 智能音频增强 (Audio AI Enhance) (推荐)

  • 用途: 专为 CosyVoice 等生成式语音设计的增强器。它基于 resemble-enhance 强大的 Conditional Flow Matching (CFM) 模型,能同时完成后处理降噪和超分辨率(Bandwidth Extension)。
  • 核心能力: 将任意低采样率(如 22kHz, 16kHz)的输入音频,重构为 44.1kHz 的高保真音频。

参数详解:

  1. mode:

    • Enhance (Denoise + Bandwidth Ext): (推荐) 同时去除底噪并提升音质。
    • Denoise Only: 仅去除噪声,不改变音质。
  2. solver: 推理求解器。

    • Midpoint (默认): 速度与质量的最佳平衡。
    • RK4: 质量最高,但速度慢 2 倍。
    • Euler: 速度最快,但可能产生条纹。
  3. nfe (Steps): 迭代步数。

    • 32: 快速预览。可能会有残留条纹。
    • 64: (推荐) 标准质量。
    • 128: 极高画质,消除所有细微伪影,但耗时。
  4. tau (Temperature): 先验温度 (默认 0.5)。

    • 控制生成过程的“创造力”。
    • 0.5 为平衡点。如果声音发虚,尝试降低到 0.3。
  5. denoise_strength (去噪强度) :

    • 范围 0.0 - 1.0。默认 0.5
    • 0.0: 保留所有原始底噪。
    • 1.0: 强力去噪。
    • Tip: 如果你在频谱图的低频部分看到 水平条纹 (Hum/Buzz),请将此值提高到 0.8 - 1.0
  6. high_pass_hz (高通滤波) 🔥 新增 (v1.4.82):

    • 范围: 0 - 1000 Hz。默认 0 (关闭)
    • 作用: 在 AI 增强之前,直接切除指定频率以下的低频信号。
    • 为什么需要它?: 如果 denoise_strength=1.0 仍无法消除低频条纹,说明 AI 把这些噪音当成了“真实信号”进行增强。
    • 最佳实践: 遇到顽固的低频条纹时,设置 60 - 80 Hz
    • 安全: 只要保持默认为 0,此功能完全禁用,对原音质零影响。
  7. 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):

    使用 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 - 帮助处理各种语言的特殊符号。

    • 特点: 该模型支持包括韩语、日语在内的更多语种,速度极快。

🔬 详细观察与进阶技巧

  1. 0.5B 实时版:

    • 频谱特征: 在静音区域(Silence)可能在全部频率范围内观察到较高的能量分布,尤其在中频区域。
    • 听感: 尽管频谱显示有能量,但实际听感比较干净,只有轻微的底噪。这表明其声码器可能存在某种特征泄露,但不影响实用性。
    • 迭代次数: 由于基于音素(Phoneme)和流式切片处理,其显示的迭代次数(Total Steps)通常多于标准版,这是正常的。
  2. 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 文件,请手动补全:

💡 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_base

    [!NOTE] 频谱特征说明 (Spectral Analysis Note): 用户实测发现,尽管该模型输出 44.1kHz 格式,但在频谱图上可能观察到以下特征:

    1. 静音区能量较高 (High Noise Floor): 并非绝对静默。
    2. 水平条纹 (Horizontal Stripes): 特别是在低频区域,这通常是 Neural Upsampling (VAE/GAN) 重构波形的典型痕迹。
    3. 听感: 这种“升频痕迹”可能会带来轻微的机械感或金属音,这属于模型权重的固有特性。

💡 用户实测与选型指南 (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: 强烈推荐以获得最佳推理性能。
  • 节点:
    • 🤖 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

结论

  1. 3秒音色克隆:必须连 Base 模型。
  2. 方言文字定制音色:优先连 VoiceDesign(1.7B)或 CustomVoice(0.6B)。
  3. 使用 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 系列,官方目前将 CustomVoiceVoiceDesign(文字设计)能力集成在同一个模型中。因此在设计模式下,加载 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 处于 PresetDesign 模式,系统会自动将剧本中的情感标签(如 [开心])转换为对应的 instruct 指令。

3.14 IndexTTS-2 (New! 🔥)

  • 用途: Bilibili 开源的 零样本语音克隆 + 情感控制 TTS 模型。支持音色与情感解耦,调整情感时不会导致音色漂移。

  • 🔥 核心特性:

    • 音色/情感解耦 (Voice-Emotion Decoupling): 独立控制音色和情感,改变情感不影响声音音色。这解决了其他模型在调整情感时音色漂移的顽疾。
    • 8 维情感向量控制: 提供 happy, angry, sad, afraid, disgusted, melancholic, surprised, calm 八个情感滑块,精细控制输出语音的情感表达。
    • 🆕 内联情感标签 (Inline Emotion Tags): 支持在文本中嵌入 [Happy][Sad] 等标签,逐句控制不同情感。节点自动按标签分段生成,再以余弦淡入淡出 + 静音间隔无缝拼接。
    • 情感音频参考: 支持通过额外的 emotion_audio 输入捕获参考音频中的情感特征,并通过 emo_alpha 控制混合强度。
    • QwenEmotion 自动推断: 启用 use_emo_text 后,内置 Qwen 情感模型自动分析文本语义,推断最合适的情感向量。
    • 零样本音色克隆: 输入 reference_audio 即可克隆声音。
  • 节点:

    IndexTTS-2 Loader — 加载 IndexTTS-2 模型

    参数 默认 说明
    use_fp16 True 半精度推理,降低 VRAM 占用
    use_cuda_kernel True BigVGAN CUDA 核心加速(仅 NVIDIA GPU,推理更快)
    model_dir 自定义模型路径,留空使用 ComfyUI/models/indextts2/

    IndexTTS-2 TTS — 执行语音合成

    参数 默认 说明
    text 待合成文本,支持中英文混合及 内联情感标签
    voice_preset Female_HQ 内置音色预设(在无 reference_audio 时使用)
    reference_audio 音色参考音频(零样本克隆,优先于 preset)
    emotion_audio 独立的情感参考音频
    emo_alpha 1.0 情感混合强度 (0=无情感, 1=100%情感)
    happy ~ calm 0.0 8 个情感滑块,直接控制向量
    use_emo_text False 启用后使用 Qwen 模型自动推断情感
    emo_text 自定义情感提示文本(配合 use_emo_text
    interval_silence 200 长文本分段间静音时长 (ms)
    max_text_tokens_per_segment 120 每段最大 token 数(控制切分粒度)
    use_random False 随机采样(降低克隆保真度)
    seed 0 随机种子 (-1=随机)
  • 🆕 内联情感标签 (Inline Emotion Tags):

    在文本中嵌入 [标签名] 即可逐句控制情感,节点会自动按标签拆分,每段独立生成后拼接。

    使用示例

    [happy] 今天天气真好,阳光明媚!
    [sad] 但是我养的小猫走丢了,我好难过。
    [calm] 不过我相信它一定会自己找到回家的路。
    

    → 生成 3 段音频,分别带 happy / sad / calm 情感,最终余弦淡入淡出无缝拼接为一段完整音频。

    [!IMPORTANT] 控制情感强度: 内联标签默认映射到全强度的情感向量 (1.0)。如果发现音色失真或情感过于夸张(如嘶吼、破音),请尝试降低 emo_alpha 参数(推荐值 0.6 ~ 0.8)。较低的 alpha 值能更好地保留原始音色特征,同时赋予适度的情感色彩。

    支持的 26 种标签

    分类 标签
    积极情感 happy, excited, enthusiastic, proud, romantic, innocent
    消极情感 sad, angry, afraid, fearful, disgusted, disappointed, anxious, nervous
    复合情感 sarcastic, nostalgic, confused, mysterious, gossip
    中性情感 calm, neutral, gentle, serious, lazy, melancholic, surprised

    每个标签自动映射到 IndexTTS-2 的 8 维情感向量。未知标签(不在上述列表中的)自动回退至 QwenEmotion 模型推断。

    [!TIP] 内联标签通常由 AIIA Emotion Annotator 节点自动注入到 Splitter 的输出中,无需手写。也可以手动添加来精细控制。

  • 🔧 情感控制优先级:

    当多种情感来源同时存在时,按以下优先级生效:

    优先级 来源 说明
    1 (最高) 内联标签 [Tag] 逐句独立控制,覆盖所有其他设置
    2 滑块向量 8 个滑块全局生效(无标签时)
    3 use_emo_text Qwen 自动推断(无标签无滑块时)
    4 (最低) emotion_audio 从参考音频提取情感

    [!NOTE] 如果文本含标签,则标签内的段落使用标签情感;无标签的段落继续使用滑块或其他全局设置。

  • ✅ 依赖版本兼容性 (Dependency Compatibility): AIIA 已内置深度兼容层,完美支持 transformers 4.57+

    [!NOTE] IndexTTS-2 的官方代码基于 transformers 4.52,与最新版本存在多处 API 不兼容。AIIA 通过预注入 5 个兼容补丁(QuantizedCacheConfig_crop_past_key_valuesNEED_SETUP_CACHE_CLASSES_MAPPINGQUANT_BACKEND_CLASSES_MAPPINGSequenceSummary),确保在最新环境下正常运行。

  • ⚠️ 模型下载 (Model Download): IndexTTS-2 除了主模型外,还依赖 4 个外部子模型。AIIA 节点支持全离线加载,建议将所有模型统一放入 ComfyUI/models/indextts2/

    目录结构 (Directory Structure):

    ComfyUI/models/indextts2/
    ├── config.yaml
    ├── gpt.pth                  <-- 主模型
    ├── s2mel.pth                <-- 主模型
    ├── bpe.model
    ├── feat1.pt
    ├── feat2.pt
    ├── wav2vec2bert_stats.pt
    ├── qwen0.6bemo4-merge/      <-- 情感 LLM
    │
    ├── semantic_codec/          <-- [外部] MaskGCT
    │   └── model.safetensors
    ├── campplus_cn_common.bin   <-- [外部] Campplus
    ├── bigvgan_v2_22khz_80band_256x/  <-- [外部] BigVGAN
    └── w2v-bert-2.0/            <-- [外部] W2V-BERT
    

    一键下载命令 (Download Commands):

    [!TIP] 国内用户推荐使用 HF Mirror,下载速度更快且无需代理。

    cd ComfyUI/models
    
    # 1. 下载主模型
    HF_ENDPOINT=https://hf-mirror.com huggingface-cli download IndexTeam/IndexTTS-2 --local-dir indextts2
    
    # 2. 下载外部子模型 (直接放入 indextts2 目录)
    cd indextts2
    
    # MaskGCT (只需 semantic_codec/model.safetensors)
    HF_ENDPOINT=https://hf-mirror.com huggingface-cli download amphion/MaskGCT semantic_codec/model.safetensors --local-dir .
    
    # Campplus
    HF_ENDPOINT=https://hf-mirror.com huggingface-cli download funasr/campplus campplus_cn_common.bin --local-dir .
    
    # BigVGAN (下载整个文件夹)
    HF_ENDPOINT=https://hf-mirror.com huggingface-cli download nvidia/bigvgan_v2_22khz_80band_256x --local-dir bigvgan_v2_22khz_80band_256x
    
    # W2V-BERT 2.0 (下载整个文件夹,排除大文件 checkpointers)
    HF_ENDPOINT=https://hf-mirror.com huggingface-cli download facebook/w2v-bert-2.0 --local-dir w2v-bert-2.0 --exclude "*.pt"

    [!NOTE] 如果本地目录中未找到上述子模型,节点会自动尝试从 HuggingFace 在线加载(缓存到 ~/.cache/huggingface)。 首次加载时,WeTextProcessing 库需要编译中文文本正则化的 FST 语法(耗时约 3-5 分钟),后续启动会直接读取缓存。

💡 用户实测与选型指南 (Model Comparison & Selection)

选型建议:

  • 追求“听起来最像真人” (音质+音色): 选 VoxCPM 1.5。它的 Tokenizer-free 架构带来了质的飞跃。
  • 追求“方言/多语言/稳定性”: 选 CosyVoice 3.0。目前依然是生产环境最稳的选择。
  • 追求“多样化音色设计/最新 Qwen 生态/长语音流畅度”: 选 Qwen3-TTS。其 VoiceDesign 功能能让你用描述语“捏”出从未听过的声音。
  • 追求“情感精细控制/音色情感解耦”: 选 IndexTTS-2。独立的 8 维情感控制、内联情感标签(逐句不同情感)和情感音频参考是其独有优势。
  • 要做“长篇广播剧/播客”: 选 VibeVoice。它的长窗口上下文优势依然不可替代。

4. 播客与对话生成 (Podcast & Dialogue Generation)

demo.mp4

🎬 点击观看演示视频 (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 Emotion Annotator (LLM 情感标注)

[v1.13.0 New] 使用 LLM 自动为对话剧本中的每句台词标注情感,无需手工逐句添加 [Happy] 等标签。

定位与流程

插入在 Script Parser → TTS 之间,作为可选的中间处理环节:

Script Parser → Emotion Annotator → Dialogue TTS / Qwen Dialogue TTS
                     ↓                        ↓
              写入 emotion 字段          读取 emotion 字段
              "Happy" / "Calm"          → CosyVoice: [Happy]文本
              null (neutral)            → 原文直读

无侵入设计:如果不连接此节点,工作流行为与之前完全一致。连接后自动生效,对下游 TTS 透明。

参数说明
参数 说明
dialogue_json 来自 Script Parser 的对话 JSON(连线输入)
model LLM 模型选择:llama-3.1-8b-instant (默认/最快)、llama-3.3-70b-versatileqwen-qwq-32bdeepseek-r1-distill-llama-70bgemma2-9b-it
override_mode skip_existing:保留剧本中已有的手工标签,只标注未标注的句子;overwrite_all:覆盖所有标签
api_base_url API 端点,默认 https://api.groq.com/openai/v1。支持任何 OpenAI-compatible API(Ollama、vLLM 等)
api_key_override API Key。留空则自动读取环境变量 GROQ_API_KEY
custom_model 自定义模型名(覆盖下拉选择,用于 Ollama 等自建服务)
proxy_url HTTP/SOCKS5 代理地址。留空则使用环境变量 HTTPS_PROXY
工作原理
  1. 收集台词:从 dialogue_json 中提取所有 type: "speech" 的条目
  2. 构造 Prompt:将台词编号后发送给 LLM,附上 24 种预定义情感标签,要求 LLM 从中选择
  3. 解析响应:将 LLM 返回的 JSON 数组解析为 {行号: 情感} 映射
  4. 写回标签:将情感标签(如 "Happy""Calm")写入每条台词的 emotion 字段
  5. neutral 的句子不注入标签(emotion: null),TTS 以自然语调朗读
支持的 24 种情感标签

neutral · happy · sad · angry · excited · gentle · fearful · surprised · disappointed · serious · calm · romantic · sarcastic · proud · confused · anxious · disgusted · nostalgic · mysterious · enthusiastic · lazy · gossip · innocent · nervous

下游兼容性
TTS 引擎 消费方式 效果
CosyVoice [Happy] 文本... 格式注入 ✅ 精准情感控制
Qwen3-TTS (CustomVoice) 提取标签 → instruct 指令(按情感自动拆批) ✅ 自动按情感分批生成
Qwen3-TTS (Base) 自动清洗标签(Base 模型不支持 instruct) ✅ 标签被清洗,不影响克隆
VibeVoice 自动清洗 [Emotion] 标签后生成 ✅ 无影响,不会朗读标签

Qwen3 智能分批:当使用 Qwen3 Dialogue TTS 时,连续相同情感的句子会自动合并为一个批次,情感变化时自动拆分为新批次,确保每个批次的 instruct 只包含单一情感,语义准确。

VibeVoice 安全保障:VibeVoice Standard / Realtime 节点在文本预处理阶段会自动清洗所有 24 种情感标签(如 [Happy][Calm]),因此即使通过 Podcast Splitter 传递了嵌标签的文本,VibeVoice 也不会将其作为普通文字朗读。

优先级规则:如果用户在 Qwen3 节点的 UI 下拉框中手动选择了情感,该选择将优先于文本中的内嵌标签。标签仍会被清洗,但不会覆盖 UI 设置。

典型工作流

对话流程(适合大多数场景):

Script Parser → Emotion Annotator → Dialogue TTS → Video Combine

单人旁白流程(配合 Text Splitter):

长文本 → Text Splitter → Emotion Annotator → Qwen3 TTS / CosyVoice

高级拆分流程(多引擎混合):

Script Parser → Emotion Annotator → Podcast Splitter → TTS_A (CosyVoice)
                                                      → TTS_B (VibeVoice)
                                                      → Podcast Stitcher

4.3 AIIA Text Splitter (文本拆分器)

[v1.13.0 New] 将单人长文本按标点拆分为标准 dialogue_json,使其可直接接入 Emotion Annotator → TTS 管线。

参数说明
参数 说明
text 待拆分文本(多行/长段落)
speaker_name 说话人名称,默认 Narrator
split_mode auto:智能拆分(句末标点 + 短句合并 + 长句再拆);by_sentence:仅按句号/问号/感叹号拆分;by_line:按换行拆分
min_chars 最小字符数,短于此的句子合并到前一句。默认 4
max_chars 最大字符数,超长句子在逗号/分号处强制拆分。默认 100
拆分行为 (auto 模式)
  1. 按换行分段 → 保留段落结构
  2. 段内按句末标点拆分。!?!?… 和省略号 …… / ...
  3. 短句合并 → 短于 min_chars 的句子追加到前一句
  4. 长句拆分 → 超过 max_chars 的句子在逗号/分号处再切
输出
  • dialogue_json:标准格式,与 Script Parser 输出兼容,可直接接入 Emotion Annotator / Dialogue TTS
  • sentence_count:拆分后的句子数

4.4 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] 标签插入,防止模型读出方括号。

4.5 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 时,连接参考音频。
  • 特点: 相对于通用对话节点,此节点能根据每个人的模式自动路由到最合适的 Qwen 引擎,且支持在 UI 直接输入设计描述。

4.6 AIIA Subtitle Gen (字幕生成器)

[v1.7.0 New] 无需 STT,直接从生成过程中提取精准时间轴。

  • Input:
    • segments_info: 来自 AIIA Dialogue TTSAIIA Generate Segments 的输出。
    • calibration_info (可选): [v1.10.2 新增] 接入 AIIA Generate Speaker Segments 的输出。用于将估算的时间轴自动“吸附”到真实的 VAD 语音活动区间,解决 VibeVoice 等批处理引擎的时间轴偏移问题。
  • Output:
    • SRT: 通用字幕格式。
    • ASS: 高级排版字幕格式 (自动区分角色颜色)。
  • 原理:
    • CosyVoice: 使用生成时的精确时长。
    • VibeVoice: 使用智能插值算法 (Smart Interpolation),根据字符长度自动计算长音频段内的单句时间轴。
    • Qwen3-TTS: 基于生成的音频振幅精准断句,支持多角色时间轴导出。

4.7 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 Gencalibration_info 输入,可以将旧的、不准的字幕自动对齐到新的、精准的音轨上。

4.8 AIIA Subtitle Preview (字幕预览)

[v1.7.1 New] 实时校验音画同步效果。

  • Input:
    • subtitle_content: 来自 Subtitle Gensrt_contentass_content
    • audio (Optional): 待预览的音频。
  • Output:
    • 交互式界面: 提供 Web 播放器,按时间轴滚动显示字幕。
    • ASS 样式渲染: 尝试还原 ASS 字幕的字体颜色、大小和描边效果。

4.9 Interactive Teaching (Web Export) (互动式教学导出)

[v1.8.1 New] 将播客升级为视听同步的互动网页。支持“读写分离”的缓存优化,修改 Visual 标签无需重跑 TTS。

  • 工作流 (Workflow):
    1. Script Parser 输出 tts_data (连接到 TTS) 和 full_script (连接到 Merge)。
    2. AIIA Dialogue TTS 生成音频和 segments_info
    3. AIIA Segment Mergefull_script 中的 Visual 标签重新贴回到 segments_info 时间轴上。
    4. 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.10 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.11 AIIA ASR Node (语音识别)

[v1.12.0 New] 基于 FunASR 的语音识别节点,输出带词级时间戳的识别结果,为 Stitcher 提供精确对齐依据。

  • Input: audio (AUDIO 张量)。
  • Output: ASR_RESULT(包含词级时间戳的识别结果)。
  • 依赖: 需要安装 funasr 库。模型首次运行时自动下载。

4.12 AIIA Podcast Stitcher (精确拼接器)

[v1.12.0 New] 将分轨生成的多角色音频按原始对话顺序精确拼接,还原自然对话节奏。

  • 核心工作原理:
    1. 利用 ASR 词级时间戳找到每句话在各自音频中的时间边界。
    2. 通过三层匹配策略(精确子串→编辑距离模糊→等分回退)实现鲁棒对齐。
    3. 在切分边界处进行精细微调(能量检测或 VAD),确保不切断语音、不吃进相邻句子。
    4. 对切片施加余弦淡入淡出,并在说话人切换处插入自然过渡间隙。
  • 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 匹配度用于质量评估。
      • 模型首次使用时自动下载,成功后会自动复制到 models/mms_fa/model.pt 以便后续直接加载。
  • 手动下载(适用于网络受限环境):
    # 方法 1:直接下载 torchaudio 官方权重
    mkdir -p ComfyUI/models/mms_fa
    wget -O ComfyUI/models/mms_fa/model.pt \
      "https://dl.fbaipublicfiles.com/mms/torchaudio/ctc_alignment_mling_uroman/model.pt"
    
    # 方法 2:从 HuggingFace 镜像下载
    pip install huggingface_hub
    huggingface-cli download facebook/mms-fa --local-dir ComfyUI/models/mms_fa
  • 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: 强制裁切为指定的 width x height
    • aspect_ratio: 裁切比例。
      • 默认为 original (保持原图比例或使用 custom_size 的宽高)。
      • 可选 1:1, 16:9, custom 等。
      • 选择非 original 时,会根据 crop_basis 自动计算另一条边的长度。
    • custom_aspect_ratio: 自定义比例值 (例如 2.35)。仅在 aspect_ratiocustom 时生效。
    • 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),方便回溯。
  • 输出: STRING (拼接后的文本)。

6.2 JSON 提取器 (AIIA JSON Extractor 🔑)

  • 用途: 从 STRING 类型的 JSON 字符串中,按 key 路径提取指定字段的值。无需依赖第三方 JSON 节点,完全基于 STRING 类型,兼容所有上下游节点。
  • 功能:
    • 嵌套路径: 支持 dot 路径 + 数组索引,例如 data.items[0].name[2].speaker
    • 多类型输出: 同时输出 STRINGINTFLOATBOOLEAN,自动安全转换。
    • 鲁棒容错: JSON 格式错误、key 不存在、类型不匹配等情况不会崩溃,统一返回 fallback 默认值。
    • 自动清理: 自动处理 BOM、首尾空白等常见 JSON 字符串问题。
  • 输入:
    • json_string (STRING, forceInput) — 待解析的 JSON 字符串
    • key_path (STRING) — 提取路径,例: name, data.items[0].text, [2].speaker
    • fallback (STRING, 可选) — 解析失败时的默认值
  • 输出: value (STRING), value_int (INT), value_float (FLOAT), found (BOOLEAN)

路径语法示例:

路径 JSON 示例 提取结果
name {"name": "Alice"} Alice
data.count {"data": {"count": 42}} 42
items[0].text {"items": [{"text": "Hello"}]} Hello
[2].speaker [{}, {}, {"speaker": "B"}] B
(空) {"a": 1} 返回整个 JSON

6.3 JSON 构建器 (AIIA JSON Builder 🏗️)

  • 用途: 将多组 key-value 组装为 JSON 对象字符串,方便下游节点消费。
  • 功能:
    • 支持最多 4 对 key-value 输入。
    • 值如果是合法 JSON(数组、对象、数字、布尔),会自动解析为对应类型而非字符串。
  • 输入: key_1 + value_1 (必填), key_2key_4 + value_2value_4 (可选)
  • 输出: json_string (STRING)

❓ 故障排查

  • 错误: "FFmpeg not found" / "NeMo model not found"
  • 错误: "帧目录验证失败"
    • 请确保您填写的路径是绝对路径且真实存在。

许可证

本项目采用 MIT 许可证


Changelog

[1.14.2] - 2026-02-17

  • NeMo Diarization 兼容性修复: 修复 PyTorch 2.10+ 环境下 NeMo 说话人分割(diarize())因 lhotse 1.32 不兼容报 object.__init__() takes exactly one argument 的崩溃。
    • 自动检测 PyTorch 版本,仅在 >= 2.10 时 monkey-patch CutSampler.__init__,移除已废弃的 data_source 参数。
  • JSON Extractor 节点 (New): 从 STRING 类型的 JSON 字符串中按 key 路径提取值,支持嵌套路径和数组索引(如 data.items[0].name)。
    • 多类型输出:STRINGINTFLOATBOOLEAN
    • 鲁棒容错:JSON 格式错误、key 不存在时返回 fallback 默认值,不会崩溃。
  • JSON Builder 节点 (New): 将多组 key-value 组装为 JSON 对象字符串,支持最多 4 对输入。
  • Qwen3-TTS Voice Preset: 新增 voice_preset 下拉框(Female_HQ/Male_HQ/Female/Male),无需手动接入参考音频即可使用内置音色,自动启用 Zero-Shot 模式。
  • Qwen3-TTS 鲁棒性: reference_text 为空或字面值 "None" 时自动切换到 Zero-Shot 模式,防止意外走入慢速 ICL 模式。
  • CosyVoice 参考音频限制: 参考音频超过 30 秒时自动截断,防止 AssertionError

[1.12.0] - 2026-02-16

  • Podcast Stitcher - MMS Forced Alignment 集成: 新增 use_forced_align 开关,使用 Facebook MMS 声学模型(~1.2GB)进行字级强制对齐。
    • 中文文本自动转拼音(pypinyin),英文自动小写化以兼容 MMS_FA tokenizer。
    • 混合切割策略: FA 精确定位语音起点 + 能量检测定位自然收尾点,兼顾起音精准与尾音完整。
    • 重叠防护: 尾部扩展不会吃进下一句 FA 起点,取中点并保底不低于 FA 原始终点。
    • 三方法交叉验证: FA + VAD + Energy 同时启用时,输出 IoU 匹配度(✂️ USED / 🔬),方便评估各方法精度。
    • 优先级: FA > VAD > Energy,FA 缺失时自动回退。
    • 模型支持从 models/mms_fa/model.pt 本地加载,避免重复下载。

[1.11.1] - 2026-02-15

  • Video Combine: 新增 cleanup_frames 开关(默认关闭)。
    • 开启后,视频合成成功时自动删除输入的 frames_directory,减少磁盘空间占用。
    • 防误删安全机制: 引入 .aiia_temp 标记文件,只有 AIIA 节点自动生成的帧目录才会包含此标记,用户提供的素材目录不会被误删。
  • ToDisk 节点安全标记: 所有产生帧输出的节点(FloatProcess_ToDiskDittoSampler 磁盘模式、PersonaLive_ToDiskBodySway)现在会在输出目录中写入 .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
  • 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 模型获取方言能力。
  • 300M-SFT / Base (V1): 恢复原生巅峰音质。
  • 稳定性: 杜绝了 AudioDecoderKeyError 以及 llm_embedding 缺失导致的各种崩溃。

🔈 资源更新

  • HQ 种子音色: 内置从 300M-SFT 提取的高保真男声/女声种子音频。在零参考音频的“指令模式”下,V2/V3 将自动调用这些高保真资源,消除破碎感。

About

A suite of powerful nodes for ComfyUI focusing on memory-efficient, large-scale generation and elegant asset management. Headlined by the AIIA Media Browser—a high-performance file hub with instant previews—and includes OOM-safe nodes for creating ultra-long videos.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors