Nodes/CoachBate/CoachBate Audio Schedule
ComfyUI Node

CoachBate Audio Schedule

Telling LTX which character speaks, when, and with whose voice

By CoachBate·Created 2 months ago·Updated 7 days ago· 0
CoachBate Audio Schedule
  • char1_audio
  • char2_audio
  • char3_audio
  • char4_audio
  • audio_schedule
framerate24
char1_namechar1
char1_start_sec0.0
char1_end_sec5.0
char1_voice_strength3.0
char2_namechar2
char2_start_sec5.0
char2_end_sec10.0
char2_voice_strength3.0
char3_name
char3_start_sec0.0
char3_end_sec0.0
char3_voice_strength3.0
char4_name
char4_start_sec0.0
char4_end_sec0.0
char4_voice_strength3.0

LTX-2.3's whole trick is synchronized audio and video - your characters can actually talk. But once you've got two or more characters in one clip, the model needs to know who's speaking, at what second, and whose voice to use. CoachBate Audio Schedule is the node that holds that plan: it maps each character to a voice reference clip and a speaking time window, then hands the whole schedule downstream as one object.

It's part of the pack's LTX-FreeFuse audio pipeline, so it's not a standalone gizmo - its single output is a COACHBATE_AUDIO_SCHEDULE that feeds an audio sampler pass node. Don't expect instant dialogue; expect a clean data structure that makes directed, per-character audio refinement possible.

How it works

Each character gets an entry built from four things: an adapter name, a reference audio clip, a start/end window in seconds, and a voice strength. The name has to match the adapter_name you used in CoachBateLTXLoRALoader - that's the hook that connects a voice to a character identity. The reference clip is the voice actor's sample (~5 seconds of clear speech is what the tooltip asks for); the strength is the voice-identity guidance scale, with 3.0 as the default and higher meaning "hold this voice harder."

The node does real validation rather than just trusting you: an entry with a blank name or no audio is skipped, a window where end <= start is dropped with a warning, and if nothing valid remains it raises an error instead of passing garbage. Overlapping windows are allowed but warned about - overlapping regions blend the two voice references, which is usually not what you want in a conversation.

Inputs that matter

  • framerate - must match the framerate in your video generation workflow; the schedule stores it for the sampler pass's seconds-to-frames conversion.
  • Characters 1 and 2 are required - name, audio, start/end seconds, and voice strength for each. Note the defaults (char1: 0–5s, char2: 5–10s) are literally "two characters talking in sequence."
  • Characters 3 and 4 are optional; leave the name blank to skip that slot.

The names must match the LoRA loader's adapter names, which is the #1 source of "why is this voice attached to the wrong face" confusion - the schedule is only as good as that string match.

The output

One socket, audio_schedule (type COACHBATE_AUDIO_SCHEDULE), containing the entries plus the framerate. Wire it into the audio sampler pass node of the FreeFuse pipeline. There's no string or image output here - it's pure control data for other nodes in the suite.

A caveat worth knowing

The LTX-FreeFuse family (this node, the LoRA loader, the sampler pass, the LTX Director fork) is unfinished WIP, and in the source these nodes only register when a gitignored marker file is present in the pack root - a clean public clone won't even load the module. So if you've installed the pack and CoachBate Audio Schedule doesn't appear in your node menu, that's expected, not a broken install. The comfy.icu schema exists because the author runs it with the feature enabled; the rest of us may be waiting on the public release.

Common issues

  • "No valid entries" error - every character either had a blank name, no audio connected, or an inverted time window. Check all three.
  • Voices bleed together - overlapping windows blend references. Keep them non-overlapping for dialogue.
  • Wrong voice, right face - the name doesn't match the adapter_name in the LoRA loader.

Installation

Install via ComfyUI Manager (search "CoachBate") or:

cd ComfyUI/custom_nodes
git clone https://github.com/CoachBate/ComfyUI-CoachBate.git

Restart ComfyUI. No extra Python dependencies - the pack ships bare. Remember the LTX-FreeFuse nodes may not be visible on a stock clone; this one is very much a "built for the author's own pipeline" alpha node, so set expectations accordingly.

CategoryCoachBate/LTX-FreeFuse

Inputs (21)

NameTypeDefaultDescription
framerateINT241–120Must match the framerate used in your video generation workflow.
char1_nameSTRINGchar1Must match the adapter_name in CoachBateLTXLoRALoader for character 1.
char1_audioAUDIOVoice reference clip for character 1 (~5 seconds of clear speech).
char1_start_secFLOAT0.00–600Second in the video where character 1 starts speaking.
char1_end_secFLOAT5.00–600Second in the video where character 1 stops speaking.
char1_voice_strengthFLOAT3.00–10Voice identity guidance scale for character 1 (3.0 = default, higher = stronger identity).
char2_nameSTRINGchar2Must match the adapter_name in CoachBateLTXLoRALoader for character 2.
char2_audioAUDIOVoice reference clip for character 2 (~5 seconds of clear speech).
char2_start_secFLOAT5.00–600Second in the video where character 2 starts speaking.
char2_end_secFLOAT10.00–600Second in the video where character 2 stops speaking.
char2_voice_strengthFLOAT3.00–10Voice identity guidance scale for character 2 (3.0 = default, higher = stronger identity).
char3_nameoptSTRINGMust match the adapter_name in CoachBateLTXLoRALoader for character 3. Leave blank to skip.
char3_audiooptAUDIOVoice reference clip for character 3 (~5 seconds of clear speech).
char3_start_secoptFLOAT0.00–600Second in the video where character 3 starts speaking.
char3_end_secoptFLOAT0.00–600Second in the video where character 3 stops speaking.
char3_voice_strengthoptFLOAT3.00–10Voice identity guidance scale for character 3.
char4_nameoptSTRINGMust match the adapter_name in CoachBateLTXLoRALoader for character 4. Leave blank to skip.
char4_audiooptAUDIOVoice reference clip for character 4 (~5 seconds of clear speech).
char4_start_secoptFLOAT0.00–600Second in the video where character 4 starts speaking.
char4_end_secoptFLOAT0.00–600Second in the video where character 4 stops speaking.
char4_voice_strengthoptFLOAT3.00–10Voice identity guidance scale for character 4.

Outputs (1)

NameTypeDescription
audio_scheduleCOACHBATE_AUDIO_SCHEDULE