🗑 on a row asks first (saying where the clip is used), then has the node move it with its own .txt / .lab to the Recycle Bin (never a permanent delete) and take it out of the settings; the window drops it from its voices too. Needs Anomalous_TTS interface 18. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 KiB
音频工作台使用说明
插件里也能看简版:进入音频页后,点右上角的 !。
0. 需要什么
音频页用 GPT-SoVITS 给角色配音,需要节点包 Anomalous_TTS。
- 没装时,音频页中间会写它能做什么、怎么装。页面不会弹窗打扰你。
- 装好后,重启 ComfyUI,再点“刷新音色”就能看到角色。
- 没装也不影响插件的其他功能。
左边的侧栏
- 分组:角色按语言分组(中文、日语、英语、未标语言)。点组名可以收起,下次打开还是收着的。只有一组时不分组。
- 展开角色:点角色名左边的小箭头,下面会列出它的每条声音(主声音、
{开心}这样的情绪)。点一条就在右边播放,再点一下停。 - 拖到节点上:侧栏里的角色可以直接拖到节点上,和拖右边卡片的标题栏一样。
- 小红点:角色名后面有小红点,说明这个角色有问题(读取失败,或者没有能当主声音的音频)。鼠标停在点上能看到原因。
- 搜索:角色有 6 个以上时,顶上会出现搜索框,可以搜角色名、别名或情绪名。
- 拖文件:把音频、模型文件拖到侧栏里的某个角色上,会打开“添加文件”;拖到空白处就是导入新角色。
还没有角色的话,先看第 4 节“导入角色”。
1. 角色卡片怎么用
每个角色一张卡片:
┌───────────────────────────────────────────────┐
│ ⠿ 🎙 Arona 参考音频 读音 添加文件 3 角色音色预设 │ ← 标题栏:代表“整个角色”
├───────────────────────────────────────────────┤
│ ▶ MAIN “それぞれの学園…” [{main}] │ ← 每一行:一条参考音频
│ ▶ ANGRY “相手の雰囲気が…” [{angry}] │
│ ▶ HAPPY “うん、よし!…” [{happy}] │
└───────────────────────────────────────────────┘
| 操作 | 结果 |
|---|---|
| 点 ▶ | 试听这一条 |
点右边的 复制 {标签} 按钮(角色设了情绪才有) |
复制标签,粘贴到台词里 |
| 拖标题栏 → 放到 角色语音 (GPT-SoVITS) 节点 | 节点的“角色”设为这个角色 |
| 参考音频与情绪 / 读音 / 添加文件 | 见第 2、4 节 |
情绪靠台词里的 {happy} 这种标签来切换,所以拖的是整个角色,不是某一条音频。
拖动时看提示
拖动时,鼠标旁边有一个提示框:
- 白色:
松手:GPT-SoVITS 节点的角色设为 Arona。可以松手。 - 黄色:拖到了不合适的节点,提示会写原因和正确做法。这时候松手什么也不会改。
目前只接收 角色语音 (GPT-SoVITS) 节点,其他节点一律不接收。这是故意的:插件不靠猜,避免写错地方。
2. 配音:一段话多种情绪
- 在 角色语音 页顶部从 角色 切到 配音。先在左边列表里点一个角色,贴进来的台词就由 TA 念。
- 把整段台词粘贴进去,点 分成句子。每句话会变成一张卡片。
- 每张卡片点一下情绪(主声音 / happy / angry……),旁边的小喇叭能听这个情绪原本的参考声音。角色只有主声音时不显示情绪按钮。也可以直接改字;鼠标移到卡片上会出现 ✂(在光标处拆开)、↧(和下一句合并)、×(删除)。
直接生成,不用画布
页面够宽时分成两栏:左边是台词卡片,右边是 生成语音 和设置面板。窗口窄或者浏览器停靠在侧边时,这些放在台词下面。两种情况都只有台词这一块会滚动,句子再多,按钮也一直看得见。
左边选,右边改;设置分三层。 右边的面板跟着你选了什么变,最上面一条路径告诉你现在改的是哪一层,比如 整份剧本 › Aris › 第 2 句,点前面的就回到上一层(Esc 也行):
- 整份剧本(什么都没选):所有人默认按这个念。下面列出剧本里的每个角色,点一个就只改 TA。
- 角色(在左边列表里点角色):这个角色在这份剧本里怎么念,只影响 TA 的句子。点 以后都这样念,把 TA 的快慢和语言存成平时的,以后的剧本也这样。
- 句子(点句子,Ctrl / Shift 多选):谁念 点名字就换人;只影响选中的这几句,卡片上会出现一个小黄标签写着改了什么。
每一层都是同样三行:快慢、语气、语言。每行右边的小标签写着这个值是哪一层定的:黄色“这一句”、紫色角色名、灰色“整份剧本”或“默认”,还有“TA 平时”(存过的默认)。点标签就跳到那一层;点 ↺ 让这一层不再单独设,跟上一层走。越具体的越优先:这一句 > 角色 > 整份剧本 > 角色平时的设置。
语气下面有 ▶ 试听这句 和 看数字(和平时比差在哪、具体数字,top_k、temperature 这些可以直接改)。面板最下面一行是 永久设置(语气档位、角色的专属设置),它们不只管这份剧本,所以单独放着。
草稿箱:每份剧本都会自动存成一份草稿(改动后半秒就存,存在 ComfyUI 的 user 文件夹里,清浏览器缓存、换浏览器都不会丢)。配音页最上面一条写着这份剧本的名字(点一下改名;没起名就用第一句台词),旁边是 新建(开一份空白的,这份留着)、草稿箱 和 关闭剧本。草稿箱里每份剧本一张卡片,写着谁念、几句、什么时候改的,可以打开、改名、复制一份、删除;删掉的放在 最近删除 里 30 天,随时找回。刷新或重启 ComfyUI 后,打开的还是刚才那份;从音频库“重新配音”会另开一份,不会盖掉手上的。按角色、按句分开设置需要 Anomalous_TTS 接口版本 17(1.1.0);旧版本时整段按第一句的角色念,面板上会提示。
- 点 生成语音。插件直接交给 ComfyUI 生成,画布上的工作流一个不动;ComfyUI 正在出图时会先排队。
- 生成完自动播放,写着“生成好了,用时几秒”。文件存在
output/audio/角色名/;点 已存进音频库 › 直接去音频库。 - 不满意:
- 某一句不好,点那张卡片上的 ↻,只把这一句换一版,其他句子不变(直接用缓存,很快)。
- 整段都不好,点 整段换一版,换一个种子全部重新生成。
需要 Anomalous_TTS 接口版本 11 以上;旧版本时这里会提示更新,仍然可以推送到节点、在画布上运行。
放进自己的工作流
生成按钮下面的 放进自己的工作流 一栏,把剧本写进画布上的 角色语音 (GPT-SoVITS) 节点:
- 点 推送到节点:写进选中的节点。画布上只有一个这种节点时,不用选。
- 按住 拖到节点,把整段剧本拖到某个节点上。
- 点 复制剧本:复制带标签的台词,例如
{main} 老师,早上好! {happy} 今天也要加油哦!
推送和拖动都会同时设置“角色”和“台词”,写错了可以按 Ctrl+Z 撤回。节点里原来有台词时,会先问要不要覆盖。
某个词总是读错
角色卡片上的 读音 打开这个角色的读音表:左边写剧本里的字,右边写让它实际读的字,例如 C站 → 西站、粘进 → 沾进。剧本和字幕照常写,只影响念出来的声音。
- 每一行的 现在 听这个角色现在怎么读左边的字,改后 听右边的字,对比着改。试听不会存进音频库。
- 日语模型说中文时特别有用:它发不好的音(选、全这类 ü,模型、行这类后鼻音)换成好读的同音字,或在前面加个字;英文字母写成读音相近的汉字。
- 长的先匹配,只替换一遍。只对这个角色生效。
3. 找回结果
- 生成的音频在图标栏的 音频库:
- 每条会显示台词、声音和种子,可以试听、按台词搜索、删除。
- 只在预览里出现、还没保存的临时结果,列在“未保存的预览”里,点 保存 就能存到
output/audio/。
4. 导入角色和设置
设置
工具栏上有 导入角色。还没有角色时,中间是一块空的导入区,直接把文件拖进去或点 + 导入角色。
存放位置、基础文件这些设置在左边侧栏的最下面:GPT-SoVITS 设置,点开是一个窗口。基础文件(GPT-SoVITS 生成时要用的几个公用模型)缺了不会挡路(第一次生成时会自动下载),所以只在这个入口上放一个小黄点:已有角色用到的基础文件还没下载时才出现。窗口里第一行写着缺几个、多大,可以 现在下载,也可以点 不再提醒;都齐了时写着“一切就绪”。以后导入了要用新基础文件的角色(比如第一个中文角色),小黄点会再出现。缺 Python 包时是小红点,不能关掉。下载的进度也写在这个入口下面。
标题旁边的小标签写着状态(一切就绪 / 缺几个基础文件 / 缺 Python 包)。下面分成几类,一次看一类;哪一类需要你处理,名字旁边有个小黄点,打开窗口时直接停在那一类:
-
语气:平时用哪种语气(平稳 / 自然 / 生动 / 自建的),可以试听、设为默认;右上角 简单 / 看数字 切换要不要显示具体数字。
-
说别的语言:角色说的不是参考音频的语言(比如日语角色说中文)时用哪种语气。
-
基础文件:每一项是已就绪、缺少还是下载中,可以单个 下载 或 全部下载。只说日语的角色不需要中文那几项;标“可选”的缺了也能用。缺 Python 包时这里给出安装命令,复制到命令行运行后重启 ComfyUI。
-
存放位置:
- 角色存放位置:导入的角色都放在这里,默认
ComfyUI/models/gpt_sovits/。 - 其他位置:设置文件里写的其他角色文件夹,以及
extra_model_paths.yaml里的文件夹。
- 角色存放位置:导入的角色都放在这里,默认
-
设置文件:Anomalous_TTS 的设置文件
ComfyUI/user/anomalous_tts.json的位置,可以复制路径。存放位置、其他角色文件夹和已有的 GPT-SoVITS 整合包(用包里的底模,不用再下一遍)都在这个文件里改,窗口里改不了:节点不接受网页指定的本机路径,这样网页就决定不了它在哪里建、删文件夹或读哪些文件。路径写完整,改完不用重启:{ "format": 1, "storage": "D:/voices", "libraries": ["E:/old voices"], "pretrained": ["D:/GPT-SoVITS/GPT_SoVITS"] }要换存放位置,先把角色文件夹自己移过去,再改
storage。
导入表单里选了语言后,下面会用小字写出生成时还要用到哪些底模。
这些操作会读写运行 ComfyUI 那台电脑上的文件,所以只能在那台电脑上用;从别的设备打开时按钮是灰的。
导入角色(新用户从这里开始)
点 导入角色。第一次打开时会有一段遮罩引导,一步步指给你看;之后随时点窗口右上角的 ? 再看一遍。窗口顶上写着现在在哪一步:① 选方式 → ② 放入文件 → ③ 导入。
① 选方式:窗口先问“你手上有什么?”
- 一个角色:这个角色的 GPT 模型、SoVITS 模型和几段参考音频。会一步步带你放好。
- 很多角色 / 整合包:一次导入好几个角色,或者选一个 GPT-SoVITS 整合包文件夹,会按名字自动分好。
- 给已有角色加声音:选一个已经导入的角色,往里面加参考音频、台词文件或新模型。
直接把文件拖到音频页或这个窗口上,会跳过这一步,按“很多角色”处理(一个角色的文件也能正确认出来)。选错了可以点 ‹ 换一种方式(还没放文件时才有)。
② 放入文件:每个角色一张卡片,卡片最上面是一份待办清单,永远高亮下一步,按钮就在那一行:
- 放 GPT 模型(
.ckpt,在整合包的GPT_weights文件夹里) - 放 SoVITS 模型(
.pth,在SoVITS_weights文件夹里) - 放几段参考音频(3~10 秒、说得清楚的)
- 选一段当主声音:在音频列表里点 ☆,变成 ★ 就是主声音(一般会自动选好)
- 给角色起个名字(一般会从模型文件名自动填好;卡片标题就是名字,可以直接改)
做完一项就打勾;卡片标题旁写着“还差 N 步”,全部完成变成绿色的 可以导入。任何时候都可以直接把文件拖进窗口,会自动放到对的地方。
参考音频一段一行:点前面的 ▶ 试听,再点一次(■)停止;点另一段就直接换过去,方便一段段对比着挑。上传中、还没分给角色的音频都能听。填上情绪名(例如“开心”)就成了 {开心}。不在 3~10 秒的音频不会导入(节点用不了它们),连同同名的台词文件一起收进卡片底部的“不导入”,点开能看到是哪些。一个角色音频很多时先显示前 60 段,点 显示全部 看其余的。台词会自动从同名 .txt / .lab 或标注文件里找;台词框是黄框表示台词取自文件名,请确认;红色虚线框表示没找到,可以粘贴,也可以把 .txt / .lab / .list 拖到框里。卡片底部是台词文件和 角色说的语言(一般自动判断就行)。
很多角色 / 整合包时:
- 一个文件夹一个角色:一个文件夹里(包括它的子文件夹)只有一套 GPT + SoVITS 模型,还有音频或台词,它就是一个角色,用文件夹名当角色名。比如
派蒙/里有model-e10.ckpt、model_e10.pth和参考音频,角色就叫“派蒙”;两个角色的模型都叫model也不会混在一起。文件夹叫v2、v4这类版本名时,前面加上上一级的名字(“派蒙 v2”)。 - 模型放在整合包的
GPT_weights*/SoVITS_weights*里,或者好几个角色的模型平铺在一起时,按模型文件名配成角色:ALuoNa-e15.ckpt和ALuoNa_e16_s224.pth都算ALuoNa。好几轮(e5、e10、e15)时自动用轮数最大的。 - 其他的按所在的文件夹(同一个文件夹里的模型)、文件夹名(比如
参考音频/ALuoNa/)或文件名开头分给对应的角色。同一个文件夹里有Guang和Guang_v4两套模型时,归Guang。 - 没分给任何角色的
.list标注文件,每个角色都放一份(节点按文件名找台词,不会找错)。 - 同一个角色里有同名的文件(比如
开心/01.wav和难过/01.wav),后来的会在前面加上文件夹名(难过_01.wav),同名的台词文件一起改,不会丢;鼠标停在文件名上能看到原来的文件。 - 分不出来的放在最上面一张黄色卡片里,放进角色后才上传。文件多时一个文件夹一行,可以把整个文件夹一次放到某个角色;点开这一行,也能一个一个选。分错的文件,右边也能改。
- 不会读的文件夹:
runtime、pretrained_models、venv这类 Python 环境和底模文件夹;整合包里(旁边有runtime、GPT_weights*、webui.py这些)的GPT_SoVITS、logs、output、TEMP、tools,里面是程序、训练中间存档和数据集切片。你自己起名叫output、GPT_SoVITS的文件夹照常读;你直接选中或拖进来的那个文件夹一定会读。跳过了哪些,窗口里会写出来。 - 一次最多读 5000 个文件。
- 角色很多时先打开一批(20 个角色,或者大约 800 个文件),其余的在“打开下一批”按钮里;这一批导入完,下一批会自动打开。这样一次拖进很大的文件夹也不会卡。
- 一次要上传很多文件(超过 1500 个或 2 GB)时会先问你要不要继续。文件都是从浏览器上传给节点的,节点不会按路径去读你电脑上的文件。
- 卡片收起时只有一行,点开看详情,一次只展开一张。右上角 + 继续添加 可以再加文件,+ 新角色 手动加一个角色。
③ 导入:底部按钮写着“导入 N 个角色”,只导入“可以导入”的那些。每个角色单独导入,一个失败不影响其他的;失败的留在窗口里标红,改好再点一次。全部导入完窗口自动关闭,并滚到新角色的卡片。底部还写着会保存到哪里(想换地方,在设置里改存放位置)。
节点会建好 角色名/GPT_weights/、SoVITS_weights/、参考音频/ 和设置文件。一律复制,原文件不动;中途出错时存放位置保持原样,不会留下半个角色。
给已有角色加音频或情绪:点卡片上的 添加文件,或者把文件拖到那张卡片(或侧栏里的角色名)上。这时放进来的文件都归这个角色,模型可以不放。已有的文件不会被覆盖,主声音也不会被换掉(除非你点了“★ 主声音”)。
一条一条加也不会越加越乱:
- 角色里已经有一模一样的文件,那一行是灰色的“角色里已有,跳过”,不会再复制一份。
- 标注文件(
.list等)再放一次,只会把新的行追加进角色里已有的那份,写着“合并新台词”。 - 只加一条音频、不带标注文件时,台词会从角色里已有的标注文件里找。
- 只有“同名但内容不同”的文件会标红,不能导入。改个文件名,或者删掉那一行。
角色文件夹的规则
- 一个角色就是一个文件夹,里面至少有一个
.ckpt(GPT 权重)和一个.pth(SoVITS 权重)。 - 角色文件夹放在存放位置里(默认
ComfyUI/models/gpt_sovits/),也可以放在extra_model_paths.yaml里写的gpt_sovits目录。自己往存放位置里放整理好的角色文件夹也可以,点 刷新音色 就能看到。 - 同一个角色有日配、中配两个版本时,会显示成
阿罗娜/日配、阿罗娜/中配两个角色。
参考音频与情绪
点角色卡片上的 参考音频与情绪,打开一个大窗口:
- 上面一排是声音:主声音、每个情绪(后面写着“1 主 2 副”),最后是 + 新情绪。点一个声音,下面的勾选就只管它。情绪可以改名、删除。
- 下面是这个角色的全部参考音频,每条一行:▶ 试听、文件名和长度、台词、还用在哪(比如“主声音·副”)。没用上的音频就留在列表里。可以按 全部 / 这个声音用的 / 已用上 / 没台词 筛选,也能搜台词或文件名;先显示 60 条,往下点“再显示一些”。
- 主参考:决定这个声音的语气和念法。每个声音一条,要 3~10 秒、有台词(太长太短的会标黄,不能当主参考)。主声音也可以 改回自动挑,让节点自己选。
- 副参考:只用来融合音色,让声音更稳、更像本人。可以勾好几条,不需要台词,建议同一个人、音质干净的 2~4 条。只有 v1 / v2 / v2Pro 模型用得上,v3 / v4 的角色这一列是灰的。
- 改台词:直接点一行的台词就能改;找不到台词的会写“没找到台词,点这里填”。改过的台词存在角色的设置里,比
.txt/ 标注文件优先,原来的文件不动。清空就换回文件里的台词。 - 删除:点一行最右边的 🗑,确认后这条音频和它同名的
.txt/.lab一起移到系统回收站(随时能还原,从不永久删除;U 盘、网络盘上没有回收站就不删,会说明)。它用在哪些声音里,确认框里会写,删掉后自动从这些声音和设置里去掉。 - 点 保存。设置会写进角色文件夹里的
anomalous_tts.json,由节点检查后保存。有问题(比如某个情绪还没选主参考)会提示,什么都不会改。没保存就关窗口会先问一句。
副参考、改台词、音频长度和删除需要 Anomalous_TTS 接口版本 18(1.1.0);旧版本只能选主参考,窗口里会说明。
文件名本身带情绪的音频(例如 Arona_Talk.开心.wav)会被自动识别,不用再填一遍。只是扩展名的部分不算情绪,例如 Arona_Talk.ogg.wav、Arona_Talk.ogg (1).ogg。
角色列表会缓存一会儿,切换页面不会卡。往模型文件夹里加了角色或音频后,点 刷新音色 才会重新读取。
台词里的其他写法
[普拉娜]:换人说。要写角色名或别名。[pause:1s]:停顿。
5. 常见问题
| 现象 | 原因和解决 |
|---|---|
| 拖到节点上提示“列表里还没有 …” | ComfyUI 还没刷新节点定义。按 R 后再拖 |
| 标题栏拖不动 | 这个角色没有主声音 |
| 拖到别的语音节点被拒绝 | 目前只支持“角色语音 (GPT-SoVITS)”节点 |
| 卡片上提示“没有找到合适的主声音” | 角色文件夹里没有 3~10 秒、找得到台词的音频。点“参考音频与情绪”手动选一条 |
| 新放进去的角色或音频没出现 | 点 刷新音色。节点那边在 ComfyUI 里按 R 刷新下拉框 |
| 侧栏里看不到“GPT-SoVITS 设置”,工具栏上没有“导入角色” | Anomalous_TTS 版本太旧(没有接口版本 3)。更新 Anomalous_TTS 后重启 ComfyUI |
| 同名文件导入时报“有重名的文件” | Anomalous_TTS 早于接口版本 9。更新后重启 ComfyUI |
| “导入角色”是灰的 | 页面是从别的设备打开的。导入会写文件,只能在运行 ComfyUI 的电脑上做 |