ComfyUI-GPT_SoVITS 插件完全教程
1. 插件简介
插件地址: https://github.com/AIFSH/ComfyUI-GPT_SoVITS
这个插件是什么呢?简单来说,它就像是给ComfyUI装了一个"声音克隆器"!你只需要提供一小段某个人的声音样本(比如3-10秒的录音),然后输入你想要说的文字,这个插件就能用那个人的声音来"说"出你的文字内容。
能给我们带来什么效果?
- 🎯 声音克隆:让任何人的声音说出你想要的话
- 🎭 多语言支持:支持中文、英文、日文,还能混合使用
- 🎬 批量制作:可以一次性处理很多句子,制作长音频
- 🎨 个性化训练:可以用自己的声音数据训练专属模型
- 📺 字幕同步:支持SRT字幕文件,让声音和文字完美对应
想象一下:你可以让你喜欢的主播声音来朗读你写的小说,或者让已故的亲人"说"出你想听的话。这就是这个插件的神奇之处!
2. 如何安装
方法一:手动安装(推荐)
- 打开你的ComfyUI安装目录
- 进入
custom_nodes文件夹 - 在这里打开命令行(终端)
- 输入以下命令:
git clone https://github.com/AIFSH/ComfyUI-GPT_SoVITS.git
cd ComfyUI-GPT_SoVITS
pip install -r requirements.txt
方法二:ComfyUI Manager安装
- 在ComfyUI界面中点击"Manager"按钮
- 搜索"GPT_SoVITS"
- 点击安装即可
重要提醒:
- 安装完成后需要重启ComfyUI
- 第一次使用时会自动下载模型文件(大约几个GB),请耐心等待
- 确保你的电脑安装了ffmpeg(音频处理工具)
3. 节点详细解析
3.1 LoadAudio 节点 - 音频加载器
这个节点是干嘛的?
就像是一个"音频文件管家",专门负责把你电脑里的音频文件(比如mp3、wav等)加载到ComfyUI里面使用。你可以把它想象成一个"音频选择器",让你从文件夹里挑选想要的声音文件。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | 下拉选择列表 | 选择你的音频文件 | 从ComfyUI输入文件夹里选择一个音频文件 | 从input目录中选择支持的音频格式文件 | 选择"我的声音.wav"作为参考音频 |
| upload | upload | 按钮控件 | 点击上传 | 点击这个按钮可以直接上传音频文件到ComfyUI | 通过文件上传接口将音频文件添加到input目录 | 点击按钮,选择电脑里的音频文件上传 |
3.2 LoadSRT 节点 - 字幕文件加载器
这个节点是干嘛的?
这就像是一个"字幕文件管家",专门用来加载SRT字幕文件。SRT文件就是那种记录了"什么时间说什么话"的文本文件,就像电影字幕一样。这个节点让你可以精确控制每句话的时间和内容。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| srt | srt | 下拉选择列表 | 选择你的字幕文件 | 从ComfyUI输入文件夹里选择一个SRT或TXT字幕文件 | 从input目录中选择.srt或.txt格式的字幕文件 | 选择"对话.srt"来指定每句话的时间和内容 |
| upload | upload | 按钮控件 | 点击上传 | 点击这个按钮可以直接上传字幕文件到ComfyUI | 通过文件上传接口将字幕文件添加到input目录 | 点击按钮,选择电脑里的字幕文件上传 |
3.3 PreViewAudio 节点 - 音频预览器
这个节点是干嘛的?
这就像是一个"音频播放器",让你可以直接在ComfyUI界面里听音频文件,不用跳出去用其他播放器。就像网页上的音乐播放器一样,点击就能播放。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | 音频文件路径 | 连接其他音频节点 | 接收一个音频文件,然后在界面上显示播放控件 | 接收AUDIO类型数据并在UI中渲染音频播放器 | 连接LoadAudio节点的输出,就能听到选择的音频 |
3.4 GPT_SOVITS_TTS 节点 - 文字转语音生成器
这个节点是干嘛的?
这是整个插件的"核心魔法师"!它能把你输入的文字,用指定人物的声音"说"出来。就像是一个超级厉害的配音演员,能模仿任何人的声音来朗读你的文本。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| renfer_audio | renfer_audio | 音频文件 | 连接LoadAudio | 这是"样本声音",告诉AI要模仿谁的声音 | 参考音频,用于声音克隆的目标音色 | 连接一段3-10秒的目标人物录音 |
| refer_srt | refer_srt | 字幕文件 | 连接LoadSRT | 这是"样本文字",告诉AI样本音频里说的是什么 | 参考音频对应的文本内容 | 连接包含参考音频文字内容的SRT文件 |
| refer_language | refer_language | 中文/英文/日文等 | 中文 | 样本音频是什么语言的 | 参考音频的语言类型 | 如果样本是中文录音就选"中文" |
| text | text | 多行文本框 | 你好啊!世界 | 你想要AI说出来的话 | 需要合成语音的目标文本 | 输入"欢迎来到我的直播间" |
| text_language | text_language | 中文/英文/日文等 | 中文 | 你输入的文字是什么语言 | 目标文本的语言类型 | 如果输入中文就选"中文" |
| gpt_weight | gpt_weight | 模型文件列表 | 选择训练好的模型 | 这是"大脑文件",决定AI有多聪明 | GPT模型权重文件 | 选择训练好的"speaker_0.ckpt" |
| sovits_weight | sovits_weight | 模型文件列表 | 选择训练好的模型 | 这是"声音文件",决定AI的声音特色 | SoVITS模型权重文件 | 选择训练好的"speaker_0.pth" |
| how_to_cut | how_to_cut | 切句方式选项 | 凑四句一切 | 长文本怎么分段,就像朗读时的停顿方式 | 文本分割策略 | 选择"按标点符号切"让每个句号后停顿 |
| top_k | top_k | 1-100的滑块 | 20 | 控制声音的"创意度",数字越大越有变化 | 采样时保留的候选词数量 | 设置20让声音自然不死板 |
| top_p | top_p | 0-1的滑块 | 1 | 控制声音的"稳定性",数字越小越稳定 | 核采样的概率阈值 | 设置0.8让声音更稳定 |
| temperature | temperature | 0-1的滑块 | 1 | 控制声音的"随机性",数字越小越像原声 | 采样温度参数 | 设置0.6让声音更接近原始录音 |
3.5 GPT_SOVITS_INFER 节点 - 批量语音推理器
这个节点是干嘛的?
这是一个"批量配音工厂"!如果说TTS节点是单句配音,那这个节点就是批量生产。它可以根据字幕文件,一次性生成很多句话的语音,还能保持时间同步,就像给电影配音一样专业。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| renfer_audio | renfer_audio | 音频文件 | 连接LoadAudio | 这是"样本声音",告诉AI要模仿谁的声音 | 参考音频,用于声音克隆的目标音色 | 连接一段包含多句话的参考录音 |
| refer_srt | refer_srt | 字幕文件 | 连接LoadSRT | 这是"样本字幕",标注参考音频每句话的时间和内容 | 参考音频对应的时间轴字幕文件 | 连接标注了参考音频内容的SRT文件 |
| if_aliginment | if_aliginment | 开关按钮 | False | 是否要"时间对齐",让生成的语音时长匹配原音频 | 是否进行时间轴对齐处理 | 开启后生成的语音会和原音频时长一致 |
| if_mutiple_speaker | if_mutiple_speaker | 开关按钮 | False | 是否支持"多人对话",一个音频里有多个说话人 | 是否启用多说话人模式 | 开启后可以处理对话场景 |
| refer_language | refer_language | 中文/英文/日文等 | 中文 | 参考音频是什么语言的 | 参考音频的语言类型 | 如果参考音频是中文就选"中文" |
| text_srt | text_srt | 字幕文件 | 连接LoadSRT | 这是"目标字幕",包含你想要AI说的所有内容 | 需要合成语音的目标文本字幕文件 | 连接包含新台词的SRT文件 |
| text_language | text_language | 中文/英文/日文等 | 中文 | 目标文字是什么语言 | 目标文本的语言类型 | 如果新台词是中文就选"中文" |
| gpt_weight | gpt_weight | 模型文件列表 | 选择训练好的模型 | 这是"大脑文件",决定AI的语言理解能力 | GPT模型权重文件 | 选择对应说话人的GPT模型 |
| sovits_weight | sovits_weight | 模型文件列表 | 选择训练好的模型 | 这是"声音文件",决定AI的声音特色 | SoVITS模型权重文件 | 选择对应说话人的SoVITS模型 |
| how_to_cut | how_to_cut | 切句方式选项 | 不切 | 文本分段方式,批量处理时通常不需要额外切分 | 文本分割策略 | 选择"不切"因为已经有字幕分段 |
| top_k | top_k | 1-100的滑块 | 20 | 控制声音的"创意度",数字越大越有变化 | 采样时保留的候选词数量 | 设置20保持自然度 |
| top_p | top_p | 0-1的滑块 | 1 | 控制声音的"稳定性",数字越小越稳定 | 核采样的概率阈值 | 设置0.8提高稳定性 |
| temperature | temperature | 0-1的滑块 | 1 | 控制声音的"随机性",数字越小越像原声 | 采样温度参数 | 设置0.6保持声音一致性 |
3.6 GPT_SOVITS_FT 节点 - 模型训练器
这个节点是干嘛的?
这是一个"AI训练师"!它能用你提供的音频和文字数据,训练出专属的声音模型。就像教一个学生学会模仿某个人说话一样,训练完成后就能生成那个人声音的专属模型。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| audio | audio | 音频文件 | 连接LoadAudio | 训练用的"教材音频",包含目标声音的多句话 | 用于训练的音频数据 | 连接一个包含目标人物多句话的长音频 |
| srt | srt | 字幕文件 | 连接LoadSRT | 训练用的"教材文字",标注音频里每句话的内容 | 音频对应的文本标注 | 连接标注了音频内容的SRT文件 |
| exp_name | exp_name | 文本输入框 | auto | 实验名称,就像给训练项目起个名字 | 训练实验的名称标识 | 输入"张三的声音"作为项目名 |
| language | language | zh/en/ja | zh | 训练数据是什么语言的 | 训练数据的语言类型 | 如果是中文数据就选"zh" |
| pretrained_s2G | pretrained_s2G | 模型文件列表 | s2G488k.pth | 预训练的"生成器模型",就像学习的基础教材 | SoVITS生成器预训练模型 | 使用默认的基础模型开始训练 |
| pretrained_s2D | pretrained_s2D | 模型文件列表 | s2D488k.pth | 预训练的"判别器模型",就像学习的质量检查员 | SoVITS判别器预训练模型 | 使用默认的基础模型开始训练 |
| sovits_batch_size | sovits_batch_size | 1-40的滑块 | 根据显卡自动 | 每次训练处理多少个样本,就像一次教多少个例子 | SoVITS训练的批次大小 | 显卡好的话可以设置大一点,比如8 |
| sovits_total_epoch | sovits_total_epoch | 1-25的滑块 | 8 | SoVITS模型要训练多少轮,就像要复习多少遍 | SoVITS训练的总轮数 | 设置8轮通常就够了 |
| text_low_lr_rate | text_low_lr_rate | 0.2-0.6的滑块 | 0.4 | 文本学习的"专注度",数字越小学得越仔细 | 文本编码器的学习率比例 | 设置0.4保持平衡 |
| sovits_save_every_epoch | sovits_save_every_epoch | 1-25的滑块 | 4 | 每训练几轮保存一次模型,就像每学几课做一次备份 | SoVITS模型保存间隔 | 设置4轮保存一次 |
| if_save_latest_sovits | if_save_latest_sovits | 开关按钮 | True | 是否保存最新的SoVITS模型 | 是否保存最后一轮的SoVITS模型 | 建议开启,保留最终成果 |
| if_save_every_sovits_weights | if_save_every_sovits_weights | 开关按钮 | True | 是否保存每轮的SoVITS模型 | 是否保存每个检查点的SoVITS模型 | 开启后可以选择不同训练阶段的模型 |
| pretrained_s1 | pretrained_s1 | 模型文件列表 | s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt | 预训练的GPT模型,就像语言理解的基础 | GPT预训练模型检查点 | 使用默认的基础模型 |
| gpt_batch_size | gpt_batch_size | 1-40的滑块 | 根据显卡自动 | GPT训练时每次处理多少个样本 | GPT训练的批次大小 | 显卡好的话可以设置大一点 |
| gpt_total_epoch | gpt_total_epoch | 2-50的滑块 | 15 | GPT模型要训练多少轮 | GPT训练的总轮数 | 设置15轮通常效果不错 |
| if_dpo | if_dpo | 开关按钮 | False | 是否使用DPO优化,让模型更聪明 | 是否启用DPO优化算法 | 一般情况下关闭即可 |
| if_save_latest_gpt | if_save_latest_gpt | 开关按钮 | True | 是否保存最新的GPT模型 | 是否保存最后一轮的GPT模型 | 建议开启 |
| if_save_every_gpt_weights | if_save_every_gpt_weights | 开关按钮 | True | 是否保存每轮的GPT模型 | 是否保存每个检查点的GPT模型 | 开启后可以选择不同阶段的模型 |
| gpt_save_every_epoch | gpt_save_every_epoch | 1-50的滑块 | 5 | 每训练几轮保存一次GPT模型 | GPT模型保存间隔 | 设置5轮保存一次 |
4. 使用技巧和建议
4.1 新手入门建议
- 先用默认模型试试水:不要急着训练,先用插件自带的模型体验一下效果
- 准备高质量音频:参考音频要清晰、无杂音,3-10秒最佳
- 文字要准确:SRT文件里的文字要和音频内容完全对应
- 从简单开始:先试试单句TTS,再尝试批量推理
4.2 进阶使用技巧
-
参数调优:
- temperature越低声音越稳定
- top_k和top_p影响声音的自然度
- 根据效果逐步调整
-
训练模型:
- 准备至少10分钟的高质量音频数据
- 确保SRT文件时间轴准确
- 训练时间较长,建议晚上进行
-
多语言混合:
- 可以在同一段文本中混合中英文
- 选择对应的语言模式
4.3 性能优化
- 显卡要求:建议使用NVIDIA显卡,显存4GB以上
- 内存要求:建议16GB以上内存
- 存储空间:预留至少10GB空间存放模型
5. 常见问题解答
Q1:为什么生成的声音不像目标人物?
A: 可能的原因:
- 参考音频质量不好(有杂音、太短、太长)
- SRT文件内容与音频不匹配
- 没有使用训练好的专属模型
Q2:训练模型需要多长时间?
A: 取决于:
- 数据量大小(10分钟音频大约需要2-4小时)
- 显卡性能(越好越快)
- 训练轮数设置
Q3:生成的音频有杂音怎么办?
A: 解决方法:
- 检查参考音频是否清晰
- 降低temperature参数
- 使用更好的训练数据重新训练模型
Q4:支持哪些音频格式?
A: 支持常见格式:
- WAV(推荐)
- MP3
- FLAC
- M4A
Q5:可以商用吗?
A: 请注意:
- 遵守当地法律法规
- 不要用于非法用途
- 尊重他人声音权益
- 建议仅用于个人学习和研究
6. 工作流程示例
基础TTS工作流程:
- LoadAudio → 加载参考音频
- LoadSRT → 加载参考文字
- GPT_SOVITS_TTS → 设置参数,输入目标文字
- PreViewAudio → 预览生成结果
批量推理工作流程:
- LoadAudio → 加载长音频
- LoadSRT → 加载参考字幕
- LoadSRT → 加载目标字幕
- GPT_SOVITS_INFER → 批量生成
- PreViewAudio → 预览最终结果
模型训练工作流程:
- LoadAudio → 加载训练音频
- LoadSRT → 加载训练字幕
- GPT_SOVITS_FT → 设置训练参数
- 等待训练完成
- 使用新模型进行TTS或推理
7. 总结
ComfyUI-GPT_SoVITS插件是一个功能强大的声音克隆工具,通过6个核心节点,你可以:
- 🎯 快速体验声音克隆效果
- 🎭 批量生成长音频内容
- 🎨 训练专属声音模型
- 📺 制作专业配音作品
记住:技术是工具,创意是灵魂。用好这个插件,你就能创造出令人惊艳的声音作品!
最后提醒:请合理合法使用这个工具,尊重他人权益,让AI技术为创作服务,而不是用于不当用途。