Extensions/FireRedAudio · T8star-Aix
ComfyUI Extension

FireRedAudio · T8star-Aix

ComfyUI V3 nodes for FireRedAudio using an isolated Transformers 5.8 worker

By T8mars·Created 23 days ago·Updated 20 days ago· 22
T8mars/comfyui-fireredaudio-T8
Nodes45
On cloudLocal install
CategoryT8star-Aix/Audio/FireRedAudio
Stars22
Updated20 days ago

Nodes (45)

FireRedAudio 加速实测向导 · T8star-Aix

Actually measure FlashAttention vs DeepSpeed on your card

T8star-Aix/Audio/FireRedAudio
FireRedAudio 参数化声学编辑 · T8star-Aix

Pitch, speed and volume without writing a single English instruction

T8star-Aix/Audio/FireRedAudio
FireRedAudio 语音识别 · T8star-Aix

Transcribe with the same model you generate with

T8star-Aix/Audio/FireRedAudio
FireRedAudio 恢复批次/审核会话 · T8star-Aix

Pick up a dubbing session after a crash, reboot, or 'oops'

T8star-Aix/Audio/FireRedAudio
FireRedAudio AudioBatch 试听选择 · T8star-Aix

Grab one take out of an AudioBatch and do something with it

T8star-Aix/Audio/FireRedAudio
FireRedAudio 可恢复批量配音 · T8star-Aix

100 lines of script, one run, resumable

T8star-Aix/Audio/FireRedAudio
FireRedAudio QA 失败项定向返修 · T8star-Aix

Re-dub the lines that failed QA, not the whole episode

T8star-Aix/Audio/FireRedAudio
FireRedAudio 采用创意候选 · T8star-Aix

The 'commit' step for a line you picked by ear

T8star-Aix/Audio/FireRedAudio
FireRedAudio 单句创意候选池 · T8star-Aix

When QA says the line is 'fine' but your ears say no

T8star-Aix/Audio/FireRedAudio
FireRedAudio 交付预设 · T8star-Aix

Stop hand-typing LUFS targets — pick audiobook, podcast, or video dialogue

T8star-Aix/Audio/FireRedAudio
FireRedAudio 字幕时长适配 · T8star-Aix

Making the audio fit the subtitle timecode without talking at chipmunk speed

T8star-Aix/Audio/FireRedAudio
FireRedAudio 环境诊断 · T8star-Aix

Prove your ComfyUI isn't broken before you blame it

T8star-Aix/Audio/FireRedAudio
FireRedAudio 定位证据片段/剪辑清单 · T8star-Aix

47' into listenable clips

T8star-Aix/Audio/FireRedAudio
FireRedAudio 生成参数 · T8star-Aix

The one seed and CFG panel that TTS, voice design, and editing all share

T8star-Aix/Audio/FireRedAudio
FireRedAudio 逐句制作审核台 · T8star-Aix

The final human gate before a batch ships

T8star-Aix/Audio/FireRedAudio
FireRedAudio 局部修复回填 A/B · T8star-Aix

Splice a repaired line back in — and be able to prove you did it right

T8star-Aix/Audio/FireRedAudio
FireRedAudio 局部修复范围 · T8star-Aix

Cut out the flub without touching the rest of the take

T8star-Aix/Audio/FireRedAudio
FireRedAudio 长音频分段转写 · T8star-Aix

Two hours of audio, one transcript, real subtitles out

T8star-Aix/Audio/FireRedAudio
FireRedAudio 长音频时间定位 · T8star-Aix

Ask a two-hour recording 'where does X happen' — in plain language

T8star-Aix/Audio/FireRedAudio
FireRedAudio 模型/隔离运行时 · T8star-Aix

The node that makes this pack 'safe' — and what that safety costs you

T8star-Aix/Audio/FireRedAudio
FireRedAudio 多音频比较理解 · T8star-Aix

One node, up to eight audio clips, and a question to answer

T8star-Aix/Audio/FireRedAudio
FireRedAudio 分阶段性能分析 · T8star-Aix

The node that tells you whether your 'fast mode' is actually fast

T8star-Aix/Audio/FireRedAudio
FireRedAudio 参考音频清理副本 · T8star-Aix

A clean 24 kHz reference copy, without wrecking the original

T8star-Aix/Audio/FireRedAudio
FireRedAudio 分轨制作交付包 · T8star-Aix

The 'hand it to the editor' button for a finished dub

T8star-Aix/Audio/FireRedAudio
FireRedAudio 桌面项目交换 · T8star-Aix

Bring a desktop project into ComfyUI without rebuilding it

T8star-Aix/Audio/FireRedAudio
FireRedAudio 长录音参考候选 · T8star-Aix

Mine the good 8 seconds out of an hour of audio

T8star-Aix/Audio/FireRedAudio
FireRedAudio 参考音频质检 · T8star-Aix

Why your clone sounds bad might be the reference, not the model

T8star-Aix/Audio/FireRedAudio
FireRedAudio 参考音频 ASR 逐字稿 · T8star-Aix

One click from reference clip to exact transcript

T8star-Aix/Audio/FireRedAudio
FireRedAudio 运行时控制 · T8star-Aix

The kill switch, the status light, and the VRAM release valve

T8star-Aix/Audio/FireRedAudio
FireRedAudio 保存音频 · T8star-Aix

The save node that actually gives you a player

T8star-Aix/Audio/FireRedAudio
FireRedAudio 批量保存/下载 · T8star-Aix

Export a whole batch of takes without a hundred save nodes

T8star-Aix/Audio/FireRedAudio
FireRedAudio 保存字幕/文本 · T8star-Aix

Get your transcripts and subtitles off the canvas and into files

T8star-Aix/Audio/FireRedAudio
FireRedAudio 角色脚本/SRT 预检 · T8star-Aix

Turn a paste of dialogue into a validated, batch-ready script plan

T8star-Aix/Audio/FireRedAudio
FireRedAudio 多 Seed 试音/推荐 Take · T8star-Aix

Eight seeds, one line, and a recommendation you can actually trust

T8star-Aix/Audio/FireRedAudio
FireRedAudio 语音编辑 · T8star-Aix

Tell it to take the cough out, and it does

T8star-Aix/Audio/FireRedAudio
FireRedAudio 成品语音 QA · T8star-Aix

The QA pass that catches the line nobody wants to listen to

T8star-Aix/Audio/FireRedAudio
FireRedAudio 同步 A/B 对比 · T8star-Aix

A/B two takes without the silence and volume lying to you

T8star-Aix/Audio/FireRedAudio
FireRedAudio 多 Take 试听评审板 · T8star-Aix

Blind A/B/C review that can't be rigged by the filename

T8star-Aix/Audio/FireRedAudio
FireRedAudio 朗读文本规范化 · T8star-Aix

The node that fixes how the TTS *says* your numbers, dates, and acronyms

T8star-Aix/Audio/FireRedAudio
FireRedAudio 时间线渲染 · T8star-Aix

From a pile of takes to one continuous audio file

T8star-Aix/Audio/FireRedAudio
FireRedAudio 零样本声音克隆 · T8star-Aix

Clone a voice in ComfyUI with zero training and no API key

T8star-Aix/Audio/FireRedAudio
FireRedAudio 音频理解 · T8star-Aix

Your audio isn't a black box anymore — ask it questions in ComfyUI

T8star-Aix/Audio/FireRedAudio
FireRedAudio 音色库(1–8)· T8star-Aix

The glue node that turns one voice into eight characters

T8star-Aix/Audio/FireRedAudio
FireRedAudio 声音设计 · T8star-Aix

Design a voice from a sentence — no reference clip needed

T8star-Aix/Audio/FireRedAudio
FireRedAudio 音色档案 · T8star-Aix

Stop re-transcribing the reference — VoiceProfile makes a character reusable

T8star-Aix/Audio/FireRedAudio
Readme

comfyui-fireredaudio-T8 v0.19.1

最简单的安装方法:

cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py

然后把推荐模型 int8-wo-safe-v1 放到 ComfyUI/models/TTS/FireRedAudio/。节点使用独立 Worker,不会修改 ComfyUI 自己的 Transformers。

FireRedAudio 的 45 个 ComfyUI V3 全能力节点,由 T8star-Aix 集成。节点菜单:

T8star-Aix / Audio / FireRedAudio

能力

  • 多语言 ASR
  • 长音频静音感知分段、重叠去重,输出 SRT、VTT、JSON 与 JSONL
  • 原生长录音时间线、时间找内容、内容找时间和结构化摘要
  • 单音频理解,以及 1–8 个动态音频比较问答,可选 thinking
  • 中英文零样本声音克隆
  • 参考音频一键 ASR 逐字稿;可连接到 TTS/音色档案,TTS 留空时也可自动转写后继续生成
  • 2–8 个 Seed latent-first 批量试音,可选逐条 ASR 回读并按文本误差、削波、静音和时长稳定性推荐 Take
  • 长录音参考候选:非破坏提取 3–15 秒片段,按削波、静音、能量对比、语音活动和时长排序,可选明确标注为代理指标的 ASR 可懂度复排
  • 多 Take 试听评审板:匿名乱序 A/B/C 播放、评分、备注和明确采用;首次运行默认仅盲听,不会自动选中第一条
  • 自然语言声音设计
  • 语义语音编辑
  • 严格模板和参数化两种音高、速度、音量声学编辑
  • 局部修复闭环:手工时间或定位 JSON 裁片 → 语义/声学编辑 → 等功率交叉淡化回填;保留源声道/采样率并输出原版/修复版 A/B 和哈希报告
  • 参考音频时长、响度、削波、静音、直流偏移质检
  • 另存 24 kHz 单声道的非破坏参考音频清理副本,可选静音裁剪、-23 LUFS 和语音高通,保留前后质检与处理记录
  • 可复用音色档案与 1–8 角色音色库
  • 载入桌面整合包导出的项目交换 JSON,复用音色库、脚本和 adopted take
  • SRT、角色:台词、带时间码角色脚本和 JSON 的解析与生成前预检
  • 朗读文本规范化:保留原文并单独记录实际送入 TTS 的文本,支持自定义替换词典、全角/空白清理、中文日期和可选数字展开
  • Worker tts-batch 分块、逐条落盘、原子 manifest、内容指纹缓存和中断恢复的批量配音;不同角色/参考音频可进入同一批 latent-first/decode-later
  • 同一参考音频的读取、重采样、RedAE 与 Patch Encoder 条件进程内复用;文件变化或模型卸载时安全失效
  • 同步有效声音起点、两遍 EBU R128 响度匹配和等长补齐的公平 A/B 对比
  • 顺序、时间码定位和叠加三种时间线渲染,相邻对白交叉淡化,以及可选 room tone 自动补真实空隙
  • 保留立体声制作素材;混合单声道对白时自动提升声道数,不再把整条制作时间线降混为单声道
  • 将长音频定位 JSON 直接裁成可试听证据片段、剪辑清单和可继续制作的 AudioBatch
  • 有声书、播客、视频对白交付预设,统一控制排列、LUFS、LRA、True Peak、采样率和保存格式
  • 成品逐条 ASR 回读、中文 CER/英文 WER、削波、静音和时长 QA
  • 语音感知字幕时长适配:先裁首尾多余静音,再只加速语音片段;达到阈值的内部表演停顿保持原长,超过自然语速上限则进入重做清单
  • 逐句制作审核台:在节点内按行试听、下载、过滤 QA 建议,选择通过/人工复核/重做并记录评分和备注;仅通过项形成独立交付 AudioBatch
  • 从批量、返修、时长适配或审核 Manifest 恢复 AudioBatch,显示已通过/待审核/待返修/缺失和导出就绪状态,支持跨会话继续
  • QA 失败 line ID 定向返修;支持固定/递增 Seed、多次尝试、字幕时间槽门禁、独立返修文件和非破坏 AudioBatch/manifest 合并
  • 单句创意候选闭环:显式 line ID → 原 Take + 多 Seed 随机文件名候选 → 声学重复预筛 → 人工匿名盲听 → 明确采用 → 非破坏回填;与 QA 纠错返修完全分开
  • AudioBatch 可按序号、line ID 或角色试听选择;成功 Take 可批量导出、原生下载并打包 ZIP
  • 分轨制作交付包:角色/场景等长对白分轨、Master、dialogue、BGM、room tone、实际 SRT/VTT、模型版本、参数与素材 SHA-256 一键 ZIP
  • WAV、FLAC、MP3、OGG 音频与 SRT、VTT、TXT、JSONL 安全保存;保存音频节点在 ComfyUI 结果区提供原生播放器/下载入口
  • 冷/热启动、分阶段耗时、RTF 和 CUDA 峰值显存性能报告
  • 加速实测向导:固定参考、文本、Seed 和参数,对 off、FlashAttention、DeepSpeed 等模式分别暖机并至少正式测量 3 次,比较中位耗时、RTF、峰值显存、哈希和实际回退,只给建议不自动改设置
  • 模型校验、真实 GPU/空闲显存报告、缓存清理、显存释放和 Worker 停止
  • ComfyUI V3 进度同步、中断联动取消、快速/均衡/高质量预设
  • 7 个模板面板可发现的精选工作流、5 个原生 Subgraph Blueprint、4 个直接进入 App Mode 的简化应用,以及 19 个核心节点中英双语内置帮助

安装

节点已提交 Comfy Registry 审核;审核通过后可在 ComfyUI-Manager 中搜索 comfyui-fireredaudio-T8 安装。若暂时搜索不到,请使用下面的 GitHub 手动安装方式:

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts/setup_runtime.py

Manager 安装不会改动 ComfyUI 的 Python 依赖。首次使用前仍需运行上面的 setup_runtime.py,创建专用于 FireRedAudio 的隔离 Worker 环境。

Transformers 兼容方式

本节点的已验证隔离运行时固定为 Python 3.10、PyTorch 2.8.0+cu128 和 Transformers 5.8.0。许多 ComfyUI 节点仍依赖 Transformers 4.x,因此本节点不会把 FireRedAudio 依赖安装进 ComfyUI:

ComfyUI Python / Transformers 4.x
        │ 标准 AUDIO + 本地 RPC
        ▼
隔离 Python 3.10 / torch 2.8 cu128 / Transformers 5.8 Worker

requirements.txt 有意保持为空。Windows 节点发行包随附固定版本 uv,请显式准备隔离环境:

python scripts/setup_runtime.py

也可在模型加载器中填写其他隔离 python.exe,或连接桌面整合包启动的外部 Worker。节点绝不调用 pip 修改 ComfyUI 环境。

模型加载器的设备默认使用 auto。实际 GPU、空闲显存和最终选用的显存模式可通过“运行时控制”节点查看;auto 会在空闲显存不足 36 GiB 时选择顺序卸载,而不是只看显卡标称总显存。

加速模式默认 auto_safe,使用预编译 FlashAttention 2 wheel。DeepSpeed BF16 已通过单卡完整 TTS,但仍是手动实验模式;FLA+Liger 在没有可审计 causal-conv1d Windows wheel 时会明确显示部分 PyTorch 回退。安装器从固定 URL 下载预编译 wheel、校验 SHA-256 和 Python/Torch/CUDA ABI,不从源码编译,也不修改 ComfyUI 宿主环境。

普通单卡优先使用 auto_safeoff 用作 SDPA 对照与排障;DeepSpeed、FLA+Liger 和 Torch Compile 只有在相同真实工作流的暖机多轮中位数至少快 20% 时才建议手动选择。当前不启用多卡。

v0.7 起,同一 Worker 中重复使用相同参考音频会命中 CPU LRU 条件缓存,避免每句重复执行 RedAE/Patch Encoder。缓存按绝对路径、大小和修改时间失效,随模型 Worker 释放,不写入 ComfyUI 工程,也不长期占用 GPU 显存;命中和占用可在运行时状态中审计。

模型

桌面版和 ComfyUI 共用模型仓库:

https://huggingface.co/t8star/Firered-Audio-Comfy

仓库保留官方目录结构并固定不可变 revision;同一份下载目录可以在桌面版中直接选择,也可以放入 ComfyUI 的默认扫描目录。

模型加载器同时识别桌面转换工具生成的本地 fireredaudio-model.json

  • bf16-slim:主模型保持 BF16,RedAE 只保留推理 decoder,音质无损且节省约 6.4 GiB 磁盘;
  • int8-wo-safe:TorchAO 权重 INT8,仅量化 Qwen block Linear,作为推荐的稳定省显存格式;
  • int8-wo-extended:扩大到音频模块,体积更小但听感变化明显,保持实验标记;
  • int8-convrot-experimental:Comfy-Kitchen ConvRot INT8,Windows 会在 CUDA 扩展不兼容时明确使用 Triton/eager,保持实验标记。

本地清单会覆盖官方 BF16 文件清单参与大小校验和模型指纹计算,因此 slim decoder 与量化分片不会被误报为损坏。TorchAO/Comfy-Kitchen 仍只安装在隔离 Worker,不污染 ComfyUI 宿主环境。GGUF 不在支持范围内。

默认扫描:

ComfyUI/models/TTS/FireRedAudio/
  FireRedAudio/
    config.json
    model-00001-of-00005.safetensors
    ...
  RedAE_decoder/
    model.pt                 # 官方原始包
    model.safetensors        # bf16-slim / INT8 包优先使用

Lite 仅下载主模型,支持 ASR/理解;Full 增加 RedAE decoder,支持生成和编辑:

python scripts/download_models.py --target "D:\ComfyUI\models\TTS\FireRedAudio" --profile full --variant int8-wo-safe-v1

下载器默认选择稳定的 int8-wo-safe-v1,从对应 Hugging Face 固定 revision 先读取清单,再执行精确磁盘预检、断点续传和下载后文件大小校验。只有显式选择 --variant upstream-bf16 时才允许回退上游 ModelScope;不会在量化下载失败后悄悄换成大型 BF16。完整 SHA-256 校验可追加 --full-hash

基础工作流

  1. Load AudioFireRedAudio 零样本声音克隆 的参考音频输入。
  2. FireRedAudio 模型/隔离运行时 → TTS 的模型输入。
  3. 可选连接 FireRedAudio 生成参数
  4. TTS 输出连接 FireRedAudio 保存音频,可选择 WAV/FLAC/MP3/OGG。

示例见 example_workflows/uiexample_workflows/api15_reference_cleanup 演示参考音频质检后再生成不覆盖源文件的清理副本;16_synchronized_ab 演示两个候选同步起点、匹配响度并分别保存;17_reference_asr_tts 演示自动逐字稿驱动 TTS;18_seed_audition 演示多 Seed 试音;19_long_audio_evidence 演示定位结果直接生成证据片段;20_creator_qa_repair_delivery 演示分块批配音、QA 失败返修、试听选择和批量 ZIP;21_podcast_local_repair 演示手工范围、语义编辑、回填与 A/B 保存;22_production_package 演示从项目交换 AudioBatch 导出角色/场景分轨和完整制作包;23_long_reference_screening 演示长录音筛选、人工试听、ASR 和 VoiceProfile;24_seed_blind_review 演示隐藏 Seed 文件名的多 Take 盲听评分与采用;25_acceleration_benchmark 演示真实加速实测;26_production_review_loop 演示规范化、语音感知字幕适配、QA、两轮逐句审核/返修和最终导出;27_resume_review_session 演示重启后从审核 Manifest 继续;28_creative_line_candidates 演示人工指定台词、多 Seed 匿名候选、盲听采用和回填交付。精选模板直接放在 example_workflows 根目录,可由当前 ComfyUI 模板面板发现;subgraphs 提供可从节点库插入的原生蓝图。参考清理和候选筛选都不会执行降噪、去混响或削波伪修复。

长音频字幕是静音感知的分段级近似时间,不是词级强制对齐。批量配音和多 Seed 试音都使用 Worker tts-batch;批量配音默认每批 8 条并允许不同角色参考,在顺序卸载模式中先完成本批 latent,再统一切换解码器,减少逐句切换大模型。每条结果仍独立落盘、记录和恢复。

配音生产工作流

推荐连接顺序:

Load Audio → 音色档案 ┐
Load Audio → 音色档案 ├→ 音色库 → 角色脚本/SRT 预检 → 朗读文本规范化 → 可恢复批量配音
                       └───────────────────────────────────────────┬→ 字幕时长适配 → 成品语音 QA
模型/隔离运行时 ───────────────────────────────────────────────────┘                    │
                                                                                       ▼
                                                               逐句制作审核台 → 仅通过项交付
                                                                      │重做 line ID
                                                                      ▼
规范化脚本 + 音色库 + 带审核 AudioBatch ───────────────────────→ 定向返修 → 再次 QA/审核

原始长音频 → 局部修复范围 → 语义/声学编辑 → 局部修复回填 A/B → 分别试听/保存

制作交付可继续连接:

候选 A ┐
       ├→ 同步 A/B 对比 → 分别试听/保存
候选 B ┘

可恢复批量配音 ────────────────┐
room tone ─────────────────────┼→ 时间线渲染 → 保存音频
有声书/播客/视频对白交付预设 ───┘        └→ 同一交付预设

AudioBatch + 可选 Master/BGM/room tone/字幕 → 分轨制作交付包 → Manifest + ZIP

长录音 → 参考候选筛选 → 多 Take 试听评审 → ASR 核对逐字稿 → VoiceProfile

固定参考/逐字稿/目标文本/Seed → 加速实测向导 → 人工把建议模式填回模型加载器

审核 Manifest → 恢复批次/审核会话 → 逐句制作审核台 → 继续交付或返修

显式填写单个 line ID → 单句创意候选池 → 多 Take 试听评审板(首次仅盲听)
                                      └→ 点“采用”并再次运行 → 采用创意候选 → 再次 QA/交付

交叉淡化只作用于相邻对白的真实重叠区域;sequence 模式启用交叉淡化时,相邻重叠会替代顺序间隔。自动补空隙必须连接 room tone,渲染器只在没有对白覆盖的时间段循环填充,并在边缘加入短淡化,不会把背景声铺到对白上。

交付预设会执行两遍 FFmpeg EBU R128 规范化并限制 True Peak。audiobook 默认 -20 LUFS / -3 dBTP / FLAC,podcast 默认 -16 LUFS / -1 dBTP / WAV,video_dialogue 默认 -23 LUFS / -1 dBTP / WAV;预设同时覆盖排列方式、交叉淡化和输出采样率,报告中会保存实际参数。

若脚本已在桌面整合包中整理,可点击“导出 ComfyUI 项目 JSON”,再用“FireRedAudio 桌面项目交换”节点一次还原 Voice Bank、Script Plan 和已采用的 Audio Batch。节点会验证参考音频 SHA-256;文件移动或被改写时会明确报错。

角色脚本支持以下形式:

旁白:欢迎收听本期节目。
[00:00:03,000 --> 00:00:06,000] 小夏:大家好,我是小夏。
# 场景:访谈
旁白:这一句会记录到“访谈”场景分轨。

SRT 的正文可用 [角色] 台词 标记角色。角色脚本支持 # 场景:名称# Scene: name## 名称 场景标题。JSON 可直接传数组,或传包含 lines 数组的对象;每项支持 speakerscenetextlanguagestart_secondsend_seconds

批量配音输出到 ComfyUI/output/<subfolder>/<project_name>/manifest.json 会在每条成功或失败后原子更新;启用恢复后,只有台词、音色参考、生成参数和模型身份指纹均一致且 WAV 仍存在的条目才会命中缓存。未命中条目按 batch_size 分块进入 Worker tts-batch;报告保存每批真实 execution model 和性能数据。若 ComfyUI 中断当前批次,已完成并写入 manifest 的条目仍可在下次运行复用。

SpeechQA.failed_line_ids 可直接连接“QA 失败项定向返修”。返修始终写入独立目录和 repair-manifest.json,不会覆盖原始或已通过音频;成功条目才会替换输出 AudioBatch 中对应 line ID。递增 Seed 从首轮就使用基础 Seed + step;若新候选与原 Take SHA-256 完全相同会明确拒绝并继续下一 Seed。默认启用字幕时间槽门禁:脚本带时间码时,每次新 Take 都会重新测量真实 WAV,仍超过允许值就继续下一 Seed,全部尝试仍不合格则保持失败状态,不会把“生成成功”误当作“返修合格”。返修后的 AudioBatch 可连接“试听选择”“批量保存/下载”或时间线;批量保存会生成相对独立的交付目录、export-manifest.json 和可选 ZIP,结果区默认显示最多 16 条原生播放器/下载入口。

“成品语音 QA”默认把 ASR 逐字稿缓存到 ComfyUI output 的 fireredaudio/qa-cache/asr。缓存身份绑定 WAV SHA-256、官方模型 revision、实际模型指纹、固定提示词和 ASR Token 上限;缓存只复用逐字稿,CER/WER、削波、静音和时间槽阈值每次都会重新计算。报告会显示逐条命中与总 hits/misses;高级选项可关闭或强制刷新。损坏、身份不一致或被篡改的 JSON 不会命中。

“朗读文本规范化”不会改写输入脚本对象;输出 ScriptPlan 的 source_text 保留原文,text 是实际朗读文本,命中的规则写入 normalization。自定义词典使用 JSON 对象并按长词优先替换。中文数字展开默认关闭,因为型号、编号和专有名词可能需要不同读法;应先查看原文/朗读文本对照,再连接批量配音。

“字幕时长适配”只处理带 start_seconds/end_seconds 的成功 WAV。默认 speech_aware 会用 FFmpeg 检测完整静音区间,保留默认 0.12 秒边缘缓冲并先裁首尾多余静音;仍有超时时,把不短于默认 0.18 秒的内部表演停顿原样拼回,只对语音片段使用保持音高的 atempo。所需语音倍率超过默认 1.12 自然上限时不截断、不强拉伸,而是输出重做 line ID;safe_stretch 保留直接整句适配行为,report_only 只生成报告。报告保存受保护停顿、语音时长、目标语音时长、实际倍率和源 SHA-256。

“逐句制作审核台”把 QA 结果归为通过、人工复核或建议重做:仅静音比例异常默认人工复核,文字、削波或时间槽失败默认建议重做,人工选择始终可以覆盖。节点内表格的决定、1–5 分和备注会同步到工作流可序列化输入;重新运行节点后写入独立审核 Manifest。approved_batch 会把未通过项置为 review_hold,因此时间线和导出不会悄悄混入待复核素材。返修成功时旧审核结论进入 previous_human_review,新 Take 重新接受 QA/人工判断。

“恢复批次/审核会话”默认只允许读取 ComfyUI output 内的 Manifest;相对路径按 output 根解析。除缺失和可选 SHA-256 复核外,节点内状态面板还会汇总已通过、待审核、待返修、已采用和最终导出就绪状态,并给出下一步动作。确需读取外部制作目录时必须显式打开高级选项;恢复不会运行模型,也不会修改 Manifest 或音频。

“局部修复范围”可直接填写秒数,也可连接“长音频时间定位”的结构化 JSON 并按序号选择范围。两侧上下文会一起送入编辑模型并作为整体非破坏回填;“局部修复回填 A/B”会验证源 SHA-256,自动把编辑片段重采样/适配回原声道数,在替换区域内部做等功率边缘混合,源文件不会被覆盖。编辑片段时长变化会明确写入报告,不会偷偷拉伸。

“分轨制作交付包”使用时间线的实际落点生成 SRT/VTT,角色和场景分轨会用静音补齐到同一 Master 终点,便于直接导入 DAW。连接的外部 Master、BGM 和 room tone 会原样收进包;该节点不会假装替用户完成未指定的 BGM 混音,Manifest 会明确记录每项素材是否由本节点混入。ZIP 同时保存上游代码/模型 revision、Worker revision、生成参数、交付预设和全部产物 SHA-256。

“长录音参考候选”保留源采样率和声道,源文件前后 SHA-256 必须一致。信号排序不是主观音质预测;启用 ASR 时也只根据非空文本、语速和重复度生成明确标注的可懂度代理,不能冒充有真值逐字稿的 WER/CER。推荐候选仍须进入“多 Take 试听评审板”人工试听,再通过“参考音频 ASR 逐字稿”核对文字后生成 VoiceProfile。

“多 Take 试听评审板”使用官方 /view 音频协议,但在节点内以稳定乱序的 A/B/C 标签展示,不显示 Seed 或来源。首次运行采用序号默认为 0,所有 adopted 都保持 false;用户评分、备注并点击“采用”后,隐藏的稳定候选 ID 写回可序列化输入,必须再次运行才会输出采用 ID。候选文件名使用随机匿名标识,Seed 只留在审计 Manifest;源 AudioBatch 和 WAV 始终不变。

“QA 失败项定向返修”只负责纠错:保持原文本、角色音色和质量目标,逐 Seed 尝试通过文字、哈希与时间槽门禁。需要探索不同表演时,显式填写一个 line ID 进入“单句创意候选池”;原 Take 和 2–7 个新候选都使用随机匿名文件名。候选报告除 Seed、SHA-256 和来源外,还给出时长、能量包络和频谱的逐对差异预筛;该指标只用于发现明显重复,不能冒充人耳表演判断。盲听明确选中后,“采用创意候选”只回填对应 source_line_id,其他台词与全部源 WAV 不变。

“加速实测向导”会自动补入 off 基线,每种模式先暖机,再正式运行 3–20 次;缺轮子或 ABI 不匹配导致的回退不会被误当成该模式成绩。FlashAttention 等普通候选默认至少快 10%,DeepSpeed/FLA/Torch Compile 等实验模式至少快 20%,并可要求同 Seed 多轮 SHA-256 一致后才推荐。节点结束会释放模型,只输出建议和完整证据,不会修改模型加载器。

真模型长跑验收

可在目标机器运行节点仓库自带的验收脚本;模型保持外置:

python scripts/validate_real_model_long_run.py `
  --model-root "D:\ComfyUI\models\TTS\FireRedAudio" `
  --reference-audio "D:\ComfyUI\input\voice_reference.wav" `
  --rounds 20 --device cuda:0 --memory-mode sequential --acceleration-mode auto_safe

v0.9.0 在 RTX 5090 Laptop 上完成 20/20 轮真实 TTS,所有 WAV 均通过大小、时长和 SHA-256 取证;暖机后任务中位耗时 15.184 秒,CUDA 峰值分配约 19.852 GiB,任务结束显存首五轮/末五轮中位数均为 574 MiB,漂移 0 MiB。该结果只证明这台目标机器和该工作流,不外推成所有显卡的固定速度。

v0.10.0 的多 Seed 专用链路另做了 2 条真模型 Smoke:Seed 4200/4201 均生成有效 24 kHz WAV,输出 5.28/4.96 秒且哈希不同;Worker 报告执行模型为 latent_first_decode_later,第二条复用参考条件并只进行一次批量解码器切换。冷启动总耗时包含 67.714 秒模型加载,不能拿该值代表暖机速度。

v0.11.0 的新 BatchDubbing 包装层使用两句真实 TTS 做了独立 Smoke:2/2 生成有效 24 kHz WAV,单次 Worker 批次报告为 latent_first_decode_later,冷启动总耗时 120.923 秒;同一节点重新执行时 2/2 命中 Manifest,耗时 0.030 秒且两条文件 SHA-256 均未变化。该测试证明分块、落盘与恢复链路,不把冷启动时长当作通用速度结论,也没有运行 ASR。

v0.13.0 的无真模型执行级验收覆盖长录音候选、原生试听、人工采用和加速决策算法:源哈希不变、唯一采用项成立,模拟 off/flash_attention/deepspeed 每模式 3 次正式测量共 9 条,正确推荐有效快路径并排除实际回退。具体机器的速度结论必须在该机器运行第 25 组工作流,不能用模拟验收数字代替。

v0.14.0 的执行级验收覆盖原文/朗读文本双轨、自定义词典与中文日期、1.10 秒音频安全适配到 1.00 秒时间槽、1.50 秒超限条目进入重做、QA 路由、人工覆盖、两行内嵌播放器/下载和审核 Manifest 跨会话恢复;源 WAV 前后 SHA-256 均未变化。

同版本在 RTX 5090 Laptop、24 GiB、sequential + auto_safe 上完成两句真模型完整创作链验收:2/2 批量生成、第一句以 1.08 倍安全适配、第二句以 1.25 倍需求进入重做、ASR 回读 CER 为 0、QA 正确拦截时间槽失败、只返修问题句、终审/恢复/双 WAV 与 ZIP 交付均完成;总耗时 129.828 秒,CUDA 峰值分配约 19.85 GiB,源文件 SHA-256 未变化。可用 scripts/validate_v014_real_production.py 在目标机器复验;真实声音审美仍需人工试听,自动指标不能代替听感。

同版本随后在 RTX 5090 Laptop、24 GiB、sequential 上完成真模型第 25 组等价实测:三种模式均无回退且每模式 3/3 正式 WAV 同 Seed 哈希可复现;off 中位 24.182 秒 / RTF 6.297,FlashAttention 21.179 秒 / RTF 5.515(快 12.418%),DeepSpeed 20.659 秒 / RTF 5.380(快 14.569%),峰值显存均约 19.850 GiB。按普通候选 10%、实验模式 20% 门槛推荐 FlashAttention;DeepSpeed 虽略快但未达到实验采用门槛。此结论仍只适用于这台机器和固定短句工作流。

v0.15.0 补齐制作规模与长文本证据:同一 RTX 5090 Laptop 上,100 行/8 角色以 sequential + flash_attention + fast 分成 13 批完成 100/100、0 失败,真实生成 807.162 秒,总音频 405.76 秒;二次 Manifest 恢复 0.136 秒、100/100 命中且全部哈希不变。另一次 sequential + auto_safe + fast 连续 20 轮全部有效,含冷启动的总中位数 13.645 秒,首五轮/末五轮任务后显存中位数 496/497 MiB、漂移 1 MiB,最大 CUDA 分配约 19.852 GiB。

同版本使用 142 字固定中文长文本、balanced 参数和显式 FlashAttention 做 1 次暖机 + 连续 10 次正式测量:10/10 实际模式均为 flash_attention、0 回退,输出均为 25.28 秒;中位总耗时 44.799 秒、中位 RTF 1.772、峰值显存约 19.865 GiB,同 Seed 的 10 个输出哈希完全一致。该数据仍只适用于这台机器和固定工作流。

v0.16.0 的语音感知时长回归使用此前人工听测的 5.600 秒真实生成 WAV 和 5.185 秒时间槽:检测到 0.8115 秒开头静音与 0.33488 秒结尾静音,只裁掉开头多余的 0.415 秒,输出时长精确为 5.185 秒,残余 atempo=1.0,不再把整句加速到 1.08 倍;源文件 SHA-256 前后完全一致。可用 scripts/validate_v016_speech_aware.py 复验算法证据,最终表演自然度仍由人工试听判断。

同版本的无真模型执行级候选验收固定请求 Seed 1001/1098/1195,得到三个不同 SHA-256 的新候选,并把原 Take 一起加入匿名盲听;评审明确采用 candidate-002 后只回填目标 line ID,另一条台词路径和两条源 WAV 哈希均不变。可用 scripts/validate_v016_candidates.py 复验 Seed、盲听、显式采用和非破坏合并语义。

v0.17.0 在同一条 5.600 秒真实样本上保持 v0.16 的安全结果:只裁掉 0.415 秒首部多余静音,输出 5.185 秒、语音倍率 1.0、源 SHA-256 不变;新增回归另构造 0.40 秒内部表演停顿,适配到时间槽时只加速两侧语音,检测到的内部停顿仍约 0.40 秒。真实 v0.16 创意候选的三组逐对声学预筛分数为 0.1430、0.0636、0.1111,均高于默认明显重复阈值 0.005;这仍不是听感通过声明,最终采用必须在 v0.17 匿名盲听界面完成。

仓库每周读取固定清单中的 FireRedAudio 代码与模型 revision,并与 GitHub/Hugging Face 最新 revision 比较。发现变化只创建兼容性审计提醒,不自动升级;仍需通过宿主 Python/Transformers 矩阵、ComfyUI schema 和真模型 Smoke Test 后才能更新固定版本。

许可证与安全

上游代码和模型采用 Apache-2.0。FireRedAudio 包含零样本声音克隆;仅在获得授权、符合法律和平台规则的场景使用。禁止欺诈、冒充、侵权或其他违法活动。本项目不是 FireRed Team 官方产品。