chenpipi0807 09b3592920 V2
优化了长期以来transformers库4.50+版本的API变化与原始IndexTTS模型代码不兼容导致的生成报错问题
2025-05-18 14:43:33 +08:00
2025-04-26 15:51:43 +08:00
V2
2025-05-18 14:43:33 +08:00
2025-05-08 13:30:04 +08:00
2025-04-22 17:14:30 +08:00
2025-04-22 17:14:30 +08:00
2025-05-11 10:45:23 +08:00
2025-04-29 12:04:26 +08:00
2025-04-23 17:50:17 +08:00
V2
2025-05-16 18:27:27 +08:00
2025-05-18 14:42:20 +08:00
2025-05-08 13:47:57 +08:00
2025-05-11 17:49:52 +08:00

ComfyUI-Index-TTS

使用IndexTTS模型在ComfyUI中实现高质量文本到语音转换的自定义节点。支持中文和英文文本,可以基于参考音频复刻声音特征。

示例截图1 示例截图2

功能特点

  • 支持中文和英文文本合成
  • 基于参考音频复刻声音特征(变声功能)
  • 支持调节语速(原版不支持后处理实现效果会有一点折损)
  • 多种音频合成参数控制
  • Windows兼容(无需额外依赖)

废话两句

  • 生成的很快,真的很快!而且竟然也很像!!!
  • 效果很好,感谢小破站的开源哈哈哈哈哈
  • 如果你想体验一下效果 附赠道友B站的传送阵demo

演示案例

以下是一些实际使用效果演示:

参考音频 输入文本 推理结果
我想把钉钉的自动回复设置成"服务器繁忙,请稍后再试",仅对老板可见。 我想把钉钉的自动回复设置成"服务器繁忙,请稍后再试",仅对老板可见。
我想把钉钉的自动回复设置成"服务器繁忙,请稍后再试",仅对老板可见。
  • 长文本测试: 长文本测试:

更新日志

2025-05-18

  • 优化了长期以来transformers库4.50+版本的API变化与原始IndexTTS模型代码不兼容导致的生成报错问题

2025-05-16

  • 新增对IndexTTS-1.5模型的支持

    • 现在可以在UI中通过下拉菜单切换不同版本的模型
    • 支持原始的Index-TTS和新的IndexTTS-1.5模型
    • 切换模型时会自动加载相应版本,无需重启ComfyUI

    微信截图_20250516182957

2025-04-23

微信截图_20250423175608

  • 新增 Audio Cleaner 节点,用于处理TTS输出音频中的混响和杂音问题

    • 该节点可以连接在 Index TTS 节点之后,优化生成音频的质量
    • 主要功能:去除混响、降噪、频率滤波和音频归一化
    • 适用于处理有杂音或混响问题的TTS输出
  • 修复了对于transformers版本强依赖的问题

Audio Cleaner 参数说明

必需参数::

  • audio: 输入音频(通常为 Index TTS 节点的输出)
  • denoise_strength: 降噪强度(0.1-1.0,默认0.5)
    • 值越大,降噪效果越强,但可能影响语音自然度
  • dereverb_strength: 去混响强度(0.0-1.0,默认0.7)
    • 值越大,去混响效果越强,适合处理在回声环境下录制的参考音频

可选参数::

  • high_pass_freq: 高通滤波器频率(20-500Hz,默认100Hz)
    • 用于过滤低频噪音,如环境嗡嗡声
  • low_pass_freq: 低通滤波器频率(1000-16000Hz,默认8000Hz)
    • 用于过滤高频噪音
  • normalize: 是否归一化音频("true"或"false",默认"true")
    • 开启可使音量更均衡

使用建议

  • 对于有明显混响的音频,将 dereverb_strength 设置为 0.7-0.9
  • 对于有背景噪音的音频,将 denoise_strength 设置为 0.5-0.8
  • 如果处理后音频听起来不自然,尝试减小 dereverb_strength 和 denoise_strength
  • 高通和低通滤波器可以微调以获得最佳人声效果

2025-04-25

  • 优化了阿拉伯数字的发音判断问题;可以参考这个case使用:“4 0 9 0”会发音四零九零,“4090”会发音四千零九十;

2025-04-26

  • 优化英文逗号导致吞字的问题;

2025-04-29

  • 修正了语言模式切换en的时候4090依然读中文的问题,auto现在会按照中英文占比确定阿拉伯数字读法
  • 新增了从列表读取音频的方法,同时新增了一些音色音频供大家玩耍;你可以将自己喜欢的音频放入 ComfyUI-Index-TTS\TimbreModel 里,当然也很鼓励你能把好玩的声音分享出来。
  • 示例用法如图:

微信截图_20250429112255

2025-05-11

  • 增加了seed功能,现在linux也可以重复执行抽卡了
  • 增加了对 Apple Silicon MPS 设备的检测(仍需测试反馈~)

安装

安装节点

  1. 将此代码库克隆或下载到ComfyUI的custom_nodes目录:

    cd ComfyUI/custom_nodes
    git clone https://github.com/chenpipi0807/ComfyUI-Index-TTS.git
    
  2. 安装依赖: 安装依赖:

    cd ComfyUI-Index-TTS
    .\python_embeded\python.exe -m pip install -r requirements.txt
    
    git pull # 更新很频繁你可能需要
    

下载模型

原始版本 (Index-TTS)

  1. 从Hugging Face或者魔搭下载IndexTTS模型文件

  2. 将模型文件放置在ComfyUI/models/Index-TTS目录中(如果目录不存在,请创建)

  3. 模型文件夹结构:

    ComfyUI/models/Index-TTS/
    ├── .gitattributes
    ├── bigvgan_discriminator.pth
    ├── bigvgan_generator.pth
    ├── bpe.model
    ├── config.yaml
    ├── configuration.json
    ├── dvae.pth
    ├── gpt.pth
    ├── README.md
    └── unigram_12000.vocab
    

    确保所有文件都已完整下载,特别是较大的模型文件如bigvgan_discriminator.pth(1.6GB)和gpt.pth(696MB)。

新版本 (IndexTTS-1.5)

  1. 从Hugging Face下载IndexTTS-1.5模型文件

  2. 将模型文件放置在ComfyUI/models/IndexTTS-1.5目录中(如果目录不存在,请创建)

  3. 模型文件夹结构与Index-TTS基本相同,但文件大小和内容会有所不同:

    ComfyUI/models/IndexTTS-1.5/
    ├── .gitattributes
    ├── bigvgan_discriminator.pth
    ├── bigvgan_generator.pth
    ├── bpe.model
    ├── config.yaml
    ├── configuration.json
    ├── dvae.pth
    ├── gpt.pth
    ├── README.md
    └── unigram_12000.vocab
    

使用方法

  1. 在ComfyUI中,找到并添加Index TTS节点
  2. 连接参考音频输入(AUDIO类型)
  3. 输入要转换为语音的文本
  4. 调整参数(语言、语速等)
  5. 运行工作流获取生成的语音输出

示例工作流

项目包含一个基础工作流示例,位于workflow/workflow.json,您可以在ComfyUI中通过导入此文件来快速开始使用。

参数说明

必需参数

  • text: 要转换为语音的文本(支持中英文)
  • reference_audio: 参考音频,模型会复刻其声音特征
  • model_version: 模型版本选择,可选项:
    • Index-TTS: 原始模型版本(默认)
    • IndexTTS-1.5: 新版本模型
  • language: 文本语言选择,可选项:
    • auto: 自动检测语言(默认)
    • zh: 强制使用中文模式
    • en: 强制使用英文模式
  • speed: 语速因子(0.5~2.0,默认1.0)

可选参数

以下参数适用于高级用户,用于调整语音生成质量和特性:

  • temperature (默认1.0): 控制生成随机性,较高的值增加多样性但可能降低稳定性
  • top_p (默认0.8): 采样时考虑的概率质量,降低可获得更准确但可能不够自然的发音
  • top_k (默认30): 采样时考虑的候选项数量
  • repetition_penalty (默认10.0): 重复内容的惩罚系数
  • length_penalty (默认0.0): 生成内容长度的调节因子
  • num_beams (默认3): 束搜索的宽度,增加可提高质量但降低速度
  • max_mel_tokens (默认600): 最大音频token数量
  • sentence_split (默认auto): 句子拆分方式

音色优化建议

要提高音色相似度:

  • 使用高质量的参考音频(清晰、无噪音)
  • 尝试调整temperature参数(0.7-0.9范围内效果较好)
  • 增加repetition_penalty(10.0-12.0)可以提高音色一致性
  • 对于长文本,确保max_mel_tokens足够大

故障排除

  • 如果出现“模型加载失败”,检查模型文件是否完整且放置在正确目录
  • 对于Windows用户,无需额外安装特殊依赖,节点已优化
  • 如果显示CUDA错误,尝试重启ComfyUI或减少num_beams值
  • 如果你是pytorch2.7运行报错,短期无法适配,请尝试降级方案(.\python_embeded\python.exe -m pip install transformers==4.48.3)

鸣谢

  • 基于原始IndexTTS模型
  • 感谢ComfyUI社区的支持
  • 感谢使用!

许可证

请参考原始IndexTTS项目许可证。

S
Description
No description provided
Readme
63 MiB
Languages
Python 96.8%
Cuda 1.6%
C 1%
JavaScript 0.4%
C++ 0.2%