Nodes/FireRedAudio · T8star-Aix/FireRedAudio 时间线渲染 · T8star-Aix
ComfyUI Node

FireRedAudio 时间线渲染 · T8star-Aix

From a pile of takes to one continuous audio file

By T8mars·Created 23 days ago·Updated 20 days ago· 22
FireRedAudio 时间线渲染 · T8star-Aix
  • audio_batch
  • room_tone_audio
  • delivery_preset
  • 时间线音频
  • 时间线报告
modetimeline
gap_ms120
crossfade_ms0
auto_fill_gapsfalse
peak_policylimit
sample_rate24000

An AudioBatch is a pile of individual WAVs. TimelineRender is what turns that pile into something you can actually listen to as one piece - a narrated chapter, a podcast episode, a dubbed scene. It takes the batch and arranges the takes in one of three ways, applies crossfades between adjacent dialogue, optionally fills the gaps with room tone, and can run the result through the pack's EBU R128 delivery presets. When the whole pack is about producing speech, this is the node that makes it a listen.

The three modes

  • sequence - lines in order with a fixed gap_ms (default 120 ms) between them. The simple "read the script top to bottom" mode.
  • timeline - positions each line at its script timecode (start_seconds/end_seconds). The one that preserves the original timing of a timed script, so a scene that was scripted with pauses keeps those pauses.
  • overlay - stacks lines onto one track. For layers, not linear listening.

crossfade_ms behaves differently per mode, and the tooltip says it plainly: in sequence, a crossfade > 0 replaces the gap with a neighboring overlap; in timeline, it only processes actual overlap regions. So crossfades never invent overlap where lines don't touch.

The inputs that matter

  • auto_fill_gaps - off by default, and the honest part: turning it on requires a room_tone_audio input. The renderer loops the room tone only over time periods with no dialogue and adds short fades at the edges - it won't smear background noise under the speech, and it won't invent bed noise if you don't give it any.
  • peak_policy - limit (default), clip, or none. Limit keeps peaks in check during mixing; clip is the "don't care, it's a draft" option.
  • sample_rate - default 24000 (matches the model's native rate); a delivery preset overrides it.
  • delivery_preset - the pack's audiobook/podcast/video_dialogue presets override mode, gap, crossfade and sample rate, and apply two-pass EBU R128 loudness normalization plus a True Peak limit. Audiobook: −20 LUFS / −3 dBTP / FLAC. Podcast: −16 LUFS / −1 dBTP / WAV. Video dialogue: −23 LUFS / −1 dBTP / WAV.

Outputs: 时间线音频 (the rendered AUDIO - save it with SaveAudio) and 时间线报告 (placements, durations, the actual delivery parameters used).

Where it fits

After the batch is done and QA'd: BatchDubbing → SpeechQA → this → SaveAudio. The README's production flow chains 可恢复批量配音 into this node with an optional room tone and a delivery preset, then straight to save. It also handles multi-speaker correctly - the pack keeps stereo production material and only upmixes mono dialogue rather than collapsing everything to mono, so a stereo master stays stereo.

Installing

Pack-wide install (ComfyUI Manager search comfyui-fireredaudio-T8, or clone + python scripts\setup_runtime.py). No model needed - rendering is worker-side audio math (the EBU R128 pass is the same FFmpeg-level normalization the delivery presets use). The two traps: enabling auto_fill_gaps without a room tone gets you nothing (the node needs the material to fill with), and relying on sequence mode for a timed script throws away the timing - if your script has timecodes, timeline is the mode that honors them.

CategoryT8star-Aix/Audio/FireRedAudio

Inputs (9)

NameTypeDefaultDescription
audio_batchT8_FIREREDAUDIO_AUDIO_BATCH
modeCOMBOtimeline3 options: sequence, timeline, overlay
gap_msINT1200–10000
crossfade_msINT00–2000sequence 中大于 0 时用相邻重叠替代顺序间隔;timeline 中只处理实际重叠区域。
auto_fill_gapsBOOLEANfalse
peak_policyCOMBOlimit3 options: limit, clip, none
sample_rateINT240008000–192000
room_tone_audiooptAUDIO
delivery_presetoptT8_FIREREDAUDIO_DELIVERY_PRESET

Outputs (2)

NameTypeDescription
时间线音频AUDIO
时间线报告STRING