Extensions/comfyui-dots-tts-T8
ComfyUI Extension

comfyui-dots-tts-T8

Native ComfyUI V3 nodes for dots.tts SOAR and MF 2-Steps TTS by T8star-Aix

By T8mars·Created 3 days ago·Updated a day ago· 2
T8mars/comfyui-dots-tts-T8
Nodes16
On cloudLocal install
CategoryT8star-Aix/Audio/dots.tts
Stars2
Updateda day ago
Readme

comfyui-dots-tts-T8

dots.tts 的 ComfyUI V3 原生节点,作者与发布者:T8star-Aix。

节点菜单:T8star-Aix / Audio / dots.tts

节点

  • dots.tts 模型加载器
  • dots.tts Edit 模型加载器
  • dots.tts 音色提示
  • dots.tts 采样配置
  • dots.tts 多角色音色映射(A-D 音色槽 + 无限角色 JSON 音色库 + 默认回退)
  • dots.tts 发音词典(数字、人名与专有词覆盖)
  • dots.tts 语音生成
  • dots.tts 语音编辑(替换、插入、删除、情绪、音高、语速、停顿、增强与背景)
  • dots.tts 长文本生成(智能分段、音频拼接、显式停顿)
  • dots.tts 字幕与多角色工程(时间轴适配、媒体导出、重试、断点续做)
  • dots.tts 批量任务队列(递归处理、失败项重跑与 ZIP 导出)
  • dots.tts ASR 转写与说话人分离(Qwen3-ASR + ForcedAligner + 可选 CAM++)
  • dots.tts 字幕时间轴标准化(SRT / WebVTT / JSON)
  • dots.tts 环境诊断
  • dots.tts 诊断包导出
  • dots.tts 释放模型

支持官方 SOAR(质量优先)和 MF-2steps(速度优先)模型。生成节点输出标准 ComfyUI AUDIO,采样率为 48 kHz。

长文本节点使用当前模型 tokenizer 按 token 数切分,支持中文/英文标点边界, 并可使用 <pause=800ms><pause=1.2s> 插入最长 60 秒的显式停顿。各段使用 从起始 seed 确定性派生的 seed,输出 JSON 会记录完整分段与拼接信息。

字幕、多角色与批量工程

字幕角色可写成 [旁白] 文本旁白:文本 或 WebVTT <v 旁白>文本。 “多角色音色映射”节点把角色映射到 A-D 音色槽;没有匹配的角色会使用默认音色。 voice_library 还可填写音色库 JSON 或 JSON 文件路径,每个角色使用 audiotranscriptlanguage 描述,因此角色数量不再受四个连接槽限制。示例见 example_workflows/voice_library.example.json。相对音频路径以音色库文件目录为准。

发音词典支持简洁行格式:

2026 => 二零二六
张三 => 章三
T8 => T 八

也支持 JSON 对象或带 modecase_sensitivepriority 的规则数组。工程节点把 每个字幕条目或文本段独立保存到 segments/,每次尝试后原子更新 checkpoint.json。开启“断点续做”后,已成功且音频仍有效的段不会再次推理。

字幕工程按 SRT/VTT 起始时间混音。默认 shrink 会对超出槽位的语音做保音高变速; 也可选择全部对齐、保持原时长或明确裁剪。timeline.json 会记录原时长、输出时长、 变速率和 overflow_ms。工程生成 master.wav 与标准化 timeline.srt。批量任务队列递归发现 .txt.srt.vtt,逐工程隔离失败,并导出包含音频、时间轴和 checkpoint 的 ZIP。“只重跑失败项”会读取原 manifest,并要求配置指纹完全一致。

媒体导出支持 WAV、MP3、FLAC、两遍 EBU R128 LUFS 标准化和视频音轨回封。纯 WAV 不需要 FFmpeg;其他功能要求系统 PATH 中存在 FFmpeg,或在工程/批量节点填写 ffmpeg_path。节点不会下载或安装 FFmpeg。

ASR 与字幕时间轴

“ASR 转写与说话人分离”节点把 ComfyUI AUDIO 转为带时间戳的 SRT、标准时间轴 JSON 和完整识别报告。默认使用固定 revision 的 Qwen/Qwen3-ASR-0.6BQwen/Qwen3-ForcedAligner-0.6B,首次使用会下载约 3.7 GB 权重并逐文件校验尺寸和 SHA-256。启用说话人分离时,需要连接任意已发现的 dots.tts 模型;节点只读取其中的 CAM++ speaker_encoder.safetensors,不会为分离加载完整 TTS 推理模型。

默认 auto 会优先连接 T8 Windows 整合包自动启动的本机 ASR sidecar。sidecar 使用 随机令牌、只绑定 loopback,并在独立 Python 进程中加载 Qwen3-ASR;转写后默认释放 显存。这样 ComfyUI 主环境无需安装 qwen-asr 或替换 Transformers。

ASR 是可选能力。为避免 ComfyUI Manager 自动升级核心 transformers,它不在 requirements.txt 中。请先备份 ComfyUI 环境,再使用启动 ComfyUI 的同一个 Python 手动安装与本节点验证版本一致的组件:

python -m pip install "qwen-asr==0.0.6" "transformers==4.57.6"

若其他节点不兼容该 Transformers 版本,可保留桌面整合包中的 ASR,ComfyUI 侧只用 TTS 节点。没有桌面 sidecar 时,可明确选择 in_process_legacy 并按上面的固定版本 手动安装。“字幕时间轴标准化”节点可校验 SRT、WebVTT 或本项目 JSON,重新输出统一 SRT/JSON;两个节点都可作为队列终点并直接预览字幕文本。

通过 ComfyUI Manager 安装(推荐)

在 ComfyUI Manager 中搜索 dots-tts-t8dots.tts · T8star-Aix,点击安装并 重启 ComfyUI。节点由 Publisher ID t8star 通过官方 Comfy Registry 发布:

Manager 会依据 requirements.txt 安装轻量依赖。遵循 ComfyUI Registry 安全规范, 节点本身不会调用 pip,也不会在导入或推理时安装软件。

手动安装

把仓库克隆到 ComfyUI/custom_nodes/,再使用启动 ComfyUI 的同一个 Python 安装 依赖:

cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-dots-tts-T8.git
python -m pip install -r comfyui-dots-tts-T8\requirements.txt

依赖清单不会安装或升级 torchtorchaudiotorchvisiontransformerspydanticnumpy,避免覆盖 ComfyUI 的核心环境。缺少这些包时请修复 ComfyUI 自身环境。

dots.tts v0.3.1 要求 transformers>=4.57,<5。若环境诊断报告版本过低,请先备份 ComfyUI 环境并自行评估其他节点兼容性,再用同一个 Python 执行:

python -m pip install "transformers>=4.57,<5"

模型位置

推荐目录:

ComfyUI/models/TTS/dots.tts/dots.tts-soar/
ComfyUI/models/TTS/dots.tts/dots.tts-mf-2steps/
ComfyUI/models/TTS/dots.tts/dots.tts.edit/

也支持 extra_model_paths.yaml 中登记的 TTS 路径,以及已有社区节点使用的 ComfyUI/models/dotstts/。节点导入时不会联网或自动下载模型。

下载 SOAR:

python scripts/download_models.py --model soar --comfyui-root D:\ComfyUI

下载 MF 2-Steps:

python scripts/download_models.py --model mf-2steps --comfyui-root D:\ComfyUI

下载 dots.tts Edit:

python scripts/download_models.py --model edit --comfyui-root D:\ComfyUI

下载器固定官方仓库 revision,支持 Hugging Face/Xet 缓存,并在完成后校验文件尺寸 和 SHA-256。节点导入时不会自动联网。

example_workflows/api/ 可直接用于 ComfyUI API,example_workflows/ui/ 可拖入 ComfyUI 画布。基础克隆示例中的 voice_reference.wav 需要先放到 ComfyUI input 目录,并把参考音频转写改成与录音逐字一致。

Windows 不自动安装 WeTextProcessing:其依赖 pynini 没有受支持的 Windows wheel。 节点默认关闭“文本归一化”,普通合成和音色克隆不受影响;请在输入前自行展开数字、 单位等容易歧义的写法。

兼容边界

dots.tts v0.3.1 官方支持 Python 3.10-3.12。本版明确不支持 Python 3.13;请使用 Python 3.10-3.12 的 ComfyUI 环境。

当前版本要求 PyTorch/Torchaudio 2.8 或更新版本,并要求二者 minor 版本一致。实际 推理以 NVIDIA CUDA 为主要支持目标;CPU 回退速度不作为发布验收目标。

发布验收

  • 官方 ComfyUI V3 API 节点注册与 schema 测试通过。
  • SOAR 与 MF 2-Steps 的 text-only、continuation clone、x-vector clone 真实推理通过。
  • SOAR 与 MF 2-Steps 权重均通过完整尺寸和 SHA-256 校验。
  • 输出为标准 ComfyUI AUDIO[batch, channel, samples],48 kHz,无 NaN/Inf。
  • 长文本节点会按模型 token 数切分、复用同一运行时,并精确保留显式停顿。
  • 字幕工程的角色映射、发音覆盖、时间轴混音、逐段重试和断点续做测试通过。
  • 批量任务队列可递归发现 TXT/SRT/VTT,隔离单工程失败并生成 ZIP。
  • 六角色文件音色库、字幕保音高时长适配、失败项确定性重跑通过。
  • 真实 FFmpeg 两遍 LUFS、MP3/FLAC 与 MP4 音轨回封通过。
  • Qwen3-ASR + ForcedAligner 真实 CUDA 转写、时间戳和 CAM++ 说话人分离通过。
  • ASR/时间轴节点可作为 V3 输出节点执行并返回标准 SRT/JSON。

许可证

节点与内置的 dots.tts v0.3.1 推理源码遵循 Apache-2.0。模型权重同样为 Apache-2.0。请只使用已获授权的参考音频,并明确标注 AI 生成语音。