Nodes/FireRedAudio · T8star-Aix/FireRedAudio 音色档案 · T8star-Aix
ComfyUI Node

FireRedAudio 音色档案 · T8star-Aix

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

By T8mars·Created 23 days ago·Updated 20 days ago· 22
FireRedAudio 音色档案 · T8star-Aix
  • audio
  • 音色档案
  • 档案 JSON
name旁白
prompt_text
languagezh
tags

One reference clip, one transcript, one name - and suddenly that voice is a reusable asset instead of a loose WAV you keep dragging around. FireRedAudio 音色档案 packages a reference audio, its transcript, language and tags into a single VoiceProfile object, the unit every multi-character workflow in this pack is built on.

The node does no inference and needs no model. It's bookkeeping - but it's the bookkeeping that stops you from re-typing a transcript every time you run a batch, and it's what lets the batch-dubbing chain route lines to the right speaker without re-ASR'ing your reference on every sentence.

How it works

Give it an audio clip and a transcript, and it wraps both (plus a name and tags) into a profile object with a couple of nice properties under the hood. The reference audio is tracked by content hash - SHA-256 - so the same clip doesn't get re-processed or re-cached by accident; swap the file and the hash changes, and downstream caching invalidates correctly. The profile also carries the transcript you typed, which is the quiet win: because a transcript is required, you can't build a half-broken profile from a clip you never verified.

Inputs and outputs

  • audio - the reference clip. A few seconds to a minute; the pack's own guidance points at 3–15 second segments as the sweet spot.
  • name - the character/voice name. Default "旁白" (narrator). Must be unique across a voice bank.
  • prompt_text - the transcript of the reference. Required - the node refuses to run with it empty. Paste it once here and every downstream run uses it.
  • language - zh/en toggle.
  • tags (optional) - comma-separated labels, e.g. male, deep, podcast.

Outputs: 音色档案 (the T8_FIREREDAUDIO_VOICE_PROFILE object) and 档案 JSON (a STRING serialization - handy for saving a cast to a file and reloading it later).

Where it sits

The chain you'll actually build:

VoiceProfile → VoiceBank → ScriptParser → BatchDubbing

One VoiceProfile per character, all eight bundled into a VoiceBank, then the script parser matches 角色:台词 lines to profiles by name and the batch dubbing node generates everything. Get a profile right once and it's reusable across projects - that's the whole appeal.

Installing it

Same pack, same two commands as every node in comfyui-fireredaudio-T8:

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

This node itself doesn't need the model - it never runs inference - but the moment its profile reaches a TTS or dubbing node you will, so do the download once while you're here:

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

Gotchas

The transcript is the part people try to skip, and it's the whole point - a blank transcript is a hard error, and pasting garbage ASR text into it means the TTS downstream will "hear" garbage. Verify the reference once (this pack even has an ASR-transcript node for exactly that) and reuse the good text. And remember names must be unique: two "旁白" profiles in one bank will be rejected, because the script router can't tell them apart. Names are the API.

CategoryT8star-Aix/Audio/FireRedAudio

Inputs (5)

NameTypeDefaultDescription
audioAUDIO
nameSTRING旁白
prompt_textSTRING
languageCOMBOzh2 options: zh, en
tagsoptSTRING

Outputs (2)

NameTypeDescription
音色档案T8_FIREREDAUDIO_VOICE_PROFILE
档案 JSONSTRING