Nodes/FireRedAudio · T8star-Aix/FireRedAudio 单句创意候选池 · T8star-Aix
ComfyUI Node

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

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

By T8mars·Created 19 days ago·Updated 15 days ago· 21
FireRedAudio 单句创意候选池 · T8star-Aix
  • model
  • audio_batch
  • script_plan
  • voice_bank
  • settings
  • 匿名候选 AudioBatch
  • 原 line ID
  • 候选 Manifest 路径
  • Seed 与候选证据
target_line_id
candidate_count3
seed_start1001
seed_step97
include_originaltrue
run_asr_qafalse
project_namecreative-line-candidates
subfolderfireredaudio/candidates
minimum_acoustic_difference0.005

QA can tell you a line is wrong; it can't tell you a line is flat. When a take passes every automated check but you still don't like the performance, your options used to be "live with it" or "re-roll the whole line and pray." This node is the "try it a few different ways on purpose" option: it generates 2–7 takes of one specified line, all different seeds, anonymizes them so you can't bias yourself, and hands them to a blind listening board. Nothing gets overwritten until you explicitly say so.

What it does

You give it a model, the production audio_batch, the script_plan, the voice_bank, and exactly one target_line_id. It generates candidate_count new takes with seeds stepping from seed_start by seed_step (defaults: 3 candidates, starting 1001, stepping 97). With include_original on (default), it also copies your original take into the pool anonymously - so you're forced to judge the existing take on its merits, not out of inertia. The candidate files get random anonymous filenames; seeds are recorded only in the audit manifest.

Outputs are the anonymous candidate batch, the original line ID (so you know which line you're exploring), the candidate manifest path, and a report with seeds and per-candidate evidence.

The two things that keep it honest

First, minimum_acoustic_difference (default 0.005). Before candidates enter the pool, the node computes pairwise differences in duration, energy envelope, and spectrum. A candidate that's acoustically near-duplicate of another is pre-filtered. This is a duplicate detector, not a taste meter - the README is explicit that these proxy metrics can't pretend to be a human ear on performance quality. It exists so you don't blind-listen to five versions of the same take.

Second, it does not auto-cover anything. The node's own description says it plainly: connect this to the multi-Take review board, then use the candidate-apply node to explicitly backfill. The pool is a generator; TakeReviewBoard is the judge; CandidateApply is the executioner. Skipping to the end and just copying a candidate file over your production WAV is how you lose the audit trail this whole chain exists to preserve.

If you want the quality angle rather than the creative one - e.g. QA flagged the line - use BatchRetry instead. Same family of ideas, opposite job: repair keeps text/voice/goal fixed and just clears the gates; this node is explicitly for exploring performance. The pack keeps them separate on purpose.

Install

Part of the comfyui-fireredaudio-T8 pack:

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

Needs the full model (--profile full) since it runs TTS generation; models live in ComfyUI/models/TTS/FireRedAudio/.

Gotchas

run_asr_qa (default off) transcribes each candidate so you can verify the words - turn it on and each candidate run gets noticeably slower, which is why it's off by default. And remember candidate_count + include_original is how many you'll be blind-listening to; 3 new + 1 original is the sweet spot for a single line. More than that and your "blind" ears start just picking the loudest. Generate, listen, adopt, move on - that loop is the whole workflow.

CategoryT8star-Aix/Audio/FireRedAudio

Inputs (14)

NameTypeDefaultDescription
modelT8_FIREREDAUDIO_MODEL
audio_batchT8_FIREREDAUDIO_AUDIO_BATCH
script_planT8_FIREREDAUDIO_SCRIPT_PLAN
voice_bankT8_FIREREDAUDIO_VOICE_BANK
target_line_idSTRING
candidate_countINT32–7
seed_startINT10010–4294267295
seed_stepINT971–100000
include_originalBOOLEANtrue
run_asr_qaBOOLEANfalse
project_nameSTRINGcreative-line-candidates
subfolderSTRINGfireredaudio/candidates
minimum_acoustic_differenceFLOAT0.0050–1
settingsoptT8_FIREREDAUDIO_SETTINGS

Outputs (4)

NameTypeDescription
匿名候选 AudioBatchT8_FIREREDAUDIO_AUDIO_BATCH
原 line IDSTRING
候选 Manifest 路径STRING
Seed 与候选证据STRING