FireRedAudio 参考音频清理副本 · T8star-Aix
A clean 24 kHz reference copy, without wrecking the original
- model
- audio
- 清理副本
- 清理报告 JSON
- 副本路径
Voice cloning has a dirty secret that applies to every model, FireRedAudio included: the reference clip is 80% of the result. A recording with two seconds of room tone before the voice starts, or a loud breath baked into the first word, gets cloned right along with the voice. This node makes a cleaned copy of your reference - converted to 24 kHz mono, with leading/trailing silence trimmed, loudness optionally normalized to −23 LUFS, and a 60 Hz speech high-pass - without ever touching the source file. If you've got one good take buried inside an otherwise messy recording, this is the node that turns it into a proper clone reference.
What it deliberately won't do
Read the description twice, because the restraint is the point: it does not do noise reduction, de-reverb, or clipping "repair." Those change timbre - the thing a clone is supposed to preserve. The pack's README is blunt about it: cleanup is trimming and leveling, never fake restoration. If your reference has music or someone coughing in the background, this node is not the rescue. That's a feature, not an omission.
The inputs that matter
model- yes, this needs a connected runtime even though it's mostly waveform math. The processing runs inside the isolated worker, so you need theFireRedAudio 模型/隔离运行时wired in (the lite profile is fine).trim_silence(default on) - strips dead air off the ends. This is the one that fixes "the clone stutters at the start" more often than anything else.normalize_loudness(default off) - brings the copy to −23 LUFS. Turn it on when your reference is whisper-quiet or varies wildly in level.speech_highpass(default on) - 60 Hz high-pass to kill rumble and DC-ish low-end noise. Leave it on.
Outputs are the useful part: 清理副本 (the cleaned AUDIO you feed to the clone input), 清理报告 JSON (what got changed, including the target loudness and high-pass values), and 副本路径 (the file on disk, under ComfyUI/output/fireredaudio/).
Where it fits
In the reference-prep chain, it sits right after a quality check: Load Audio → 参考音频质检 → this node → the clone's prompt_audio input. The pack even ships a full example workflow (15_reference_cleanup) showing exactly that path - QC the original, produce the clean copy, then generate from the copy so the original stays untouched. That SHA-256-safe, never-overwrite discipline is a theme across this whole pack, and this is where it starts.
Installing
Same pack install as everything else: ComfyUI Manager search comfyui-fireredaudio-T8, or:
cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py
then download models with python scripts\download_models.py --target "ComfyUI\models\TTS\FireRedAudio". The gotcha to remember: because this node calls into the worker, "I'm just trimming silence, why do I need a model?" is the wrong question - it needs the runtime handle, and the worker needs the setup script run first. If you skip setup_runtime.py, this node (and every other model-taking node in the pack) will fail at the RPC layer, not with a friendly message.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | T8_FIREREDAUDIO_MODEL | — | |
| audio | AUDIO | — | |
| trim_silence | BOOLEAN | true | — |
| normalize_loudness | BOOLEAN | false | — |
| speech_highpass | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| 清理副本 | AUDIO | — |
| 清理报告 JSON | STRING | — |
| 副本路径 | STRING | — |