Nodes/FireRedTTS3/FireRedTTS3 Semantic Edit
ComfyUI Node

FireRedTTS3 Semantic Edit

Swap 'cats' for 'dogs' in place

By Saganaki22·Created about a month ago·Updated 27 days ago· 23
FireRedTTS3 Semantic Edit
  • firered_model
  • audio
  • audio
  • edited_text
instructionReplace 'cats' with 'dogs'.
n_timesteps10
inference_cfg1.20
stop_threshold0.50
seed42
max_audio_seconds64

Recording a line, flubbing one word, and having to re-record the whole take is the oldest annoyance in audio work. This node is the fix: give it an existing clip of speech and a plain-English instruction like "Replace 'cats' with 'dogs'", and it regenerates the audio so the speaker now says dogs - same voice, same prosody, one edited word instead of one ruined take. That's semantic speech editing, and it's one of the two edit modes FireRedTTS3-Instruct can do.

The mechanism is worth knowing because it explains why the output sounds the way it does. The model first rewrites the transcript of your clip to include the requested change - this is the edited_text string it returns - and then re-synthesizes the audio from that edited transcript in the original speaker's voice. So it's not a surgical waveform patch; it's a re-read that happens to keep the voice. That's why the instruction should read like an edit to a text document: "insert 'really' after the word at index 8", "delete the last word", "replace X with Y". The default example, Replace 'cats' with 'dogs'., is exactly the shape that works.

The inputs:

  • audio - the speech you're editing, standard ComfyUI AUDIO. This is what the edited speaker voice is extracted from.
  • instruction - the content edit, in natural language. Insertion, deletion, substitution - all three work.
  • The generation controls, same as the rest of the pack: n_timesteps 10, inference_cfg 1.2 (edits run at the softer guidance, not the clone's 2.0), stop_threshold 0.5, seed, max_audio_seconds 64. You won't touch most of them.

Outputs are audio (AUDIO) and edited_text (STRING). The audio is the regenerated clip - send it to a save node. The text is the model's rewritten transcript, which is genuinely useful as a sanity check: glance at it before you trust the audio, because if the model mis-transcribed the original clip, the edit lands in the wrong place. It's the same "read the transcript before you trust the clone" discipline as the pack's Whisper node.

Where this fits in a workflow: anywhere you'd normally reach for a DAW to re-record or stitch. It inherits the input audio's language - the README verifies that Greek audio edited at 1.5x speed keeps its Greek transcript - so it's not limited to zh/en the way Voice Design is. It's also the natural companion to the Acoustic Edit node: use this one for content changes, that one for speed/pitch/volume. Both need the instruct variant loaded, and both will throw the pack's "requires the Instruct model" error if you've loaded base - the loader's default is instruct, so most people only hit that by explicitly switching.

One honest caveat from the README's language table: semantic editing is strongest on Chinese and English, and the cross-language reliability is the same story as instruct-model cloning - great in zh/en, increasingly shaky elsewhere. For an English-language edit on a clean clip, it's the fastest "undo the flub" you'll get in ComfyUI without leaving the graph. Install is the pack standard - ComfyUI Manager search "FireRedTTS3-ComfyUI", or git clone plus python install.py, Transformers 5.3+, first-run downloads in the multi-GB range, and 8–14 GB VRAM to run.

CategoryFireRedTTS3

Inputs (8)

NameTypeDefaultDescription
firered_modelFIREREDTTS3_MODEL
audioAUDIOInput speech to edit.
instructionSTRINGReplace 'cats' with 'dogs'.Content edit instruction: insertion, deletion or substitution, e.g. "insert 'really' after the word at index 8."
n_timestepsINT101–50Flow-matching steps per generated audio patch. 10 is the official default; more is slower with diminishing returns.
inference_cfgFLOAT1.200–4Classifier-free guidance strength for the flow head. 0 disables CFG. Official defaults: 2.0 for cloning, 1.2 for design/edits.
stop_thresholdFLOAT0.500.05–0.95Stop-token probability threshold that ends generation. Higher values allow longer audio.
seedINT420–21474836470 uses the current random state. A positive value is repeatable.
max_audio_secondsFLOAT644–160Hard cap on generated audio length per sentence (64s is the official maximum).

Outputs (2)

NameTypeDescription
audioAUDIO
edited_textSTRING