FireRedAudio 加速实测向导 · T8star-Aix
Actually measure FlashAttention vs DeepSpeed on your card
- model
- prompt_audio
- settings
- 全部正式测量音频
- 加速建议
- 完整基准报告
- 基准 Manifest 路径
Somebody online told you DeepSpeed makes FireRedAudio twice as fast. Maybe it does - on their GPU, with their text, after their warmup. This node exists to find out what's true on yours, and it's the only honest way to answer that question, because the README itself refuses to commit: it quotes real RTX 5090 Laptop numbers where FlashAttention beat off by 12% and DeepSpeed by 14.5%, then points out that still doesn't clear the 20% bar the pack sets for experimental modes. Benchmark before you believe.
What it does
It fixes one reference audio, one reference transcript, one target text, one seed and one generation config, then runs each acceleration mode you ask for - off, flash_attention, deepspeed, fla_liger, torch_compile - through a warmup pass and then 3–20 formal runs. You get median wall time, RTF (real-time factor), peak CUDA memory, output hashes, and whether the mode silently fell back to a slower path. Then it says "recommend this," and nothing more. It deliberately does not touch your Model Loader's settings; you read the recommendation and set the mode yourself. That's a feature, not a wart - a benchmark that mutates your workflow is how you end up with your .venv broken and no idea why.
modes defaults to off,flash_attention,deepspeed, but you can name any combo. Note it always auto-inserts an off baseline even if you forget, because a speed claim without a baseline is just a number. The default thresholds are sensible: plain candidates need ≥10% median improvement, experimental ones (DeepSpeed, FLA, Torch Compile) need ≥20%, and with require_reproducible_hash on, a mode only gets recommended if same-seed runs produce identical hashes. If a mode can't even load - missing wheel, CUDA ABI mismatch - it's reported as a fallback, not counted as a win. That matters more than people realize: the pack has a whole audit path for exactly this, so you never mistake "silently ran the slow path" for "this mode rocks."
The inputs that matter
You only really set a handful of things. prompt_text is mandatory and it must be the actual transcript of your reference audio - the validator refuses to run otherwise, because letting the worker ASR it would contaminate your TTS timing measurement. prompt_audio and target_text are your fixed workload. measure_runs at the default 3 is fine for a first pass; bump to 5 if you're deciding something important. Everything else (project_name, subfolder) just controls where the WAVs and manifest land.
Outputs: the full audio batch of all formal runs, the recommendation string, a complete report, and the manifest path. Wire the recommendation into the Model Loader's acceleration_mode yourself.
Install and run
This is part of the comfyui-fireredaudio-T8 pack, so install it once and every FireRedAudio node comes along:
cd ComfyUI\custom_nodes
git clone https://github.com/T8mars/comfyui-fireredaudio-T8.git
cd comfyui-fireredaudio-T8
python scripts\setup_runtime.py
Then drop the model into ComfyUI/models/TTS/FireRedAudio/ (python scripts\download_models.py --profile full --variant int8-wo-safe-v1 does it). The setup script builds an isolated Python 3.10 / torch 2.8 / Transformers 5.8 worker so your ComfyUI Python stays untouched - that's the whole architecture of this pack, and it's the right call given how often audio nodes fight over Transformers versions.
Gotchas
Don't benchmark on a cold start: warmup exists precisely because model load (~60+ seconds here) is not inference speed. Don't draw conclusions from one run - the node's whole point is medians over repeated runs. And remember the result is this machine, this text, this reference; it is not a universal verdict on FlashAttention. Run it again when you change anything that matters.
The honest bottom line: this node is overkill if you just want FireRedAudio to work. It's essential if you're about to make a hardware-buying or workflow-defaulting decision based on a forum post.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model | T8_FIREREDAUDIO_MODEL | — | |
| prompt_audio | AUDIO | — | |
| prompt_text | STRING | — | |
| target_text | STRING | — | |
| language | COMBO | zh | 2 options: zh, en |
| modes | STRING | off,flash_attention,deepspeed | — |
| warmup_runs | INT | 11–3 | — |
| measure_runs | INT | 33–20 | — |
| minimum_improvement_percent | FLOAT | 100–100 | — |
| require_reproducible_hash | BOOLEAN | true | — |
| project_name | STRING | acceleration-benchmark | — |
| subfolder | STRING | fireredaudio/benchmarks | — |
| settingsopt | T8_FIREREDAUDIO_SETTINGS | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| 全部正式测量音频 | T8_FIREREDAUDIO_AUDIO_BATCH | — |
| 加速建议 | STRING | — |
| 完整基准报告 | STRING | — |
| 基准 Manifest 路径 | STRING | — |