Nodes/IAMCCS-nodes/IAMCCS Audio Transcript Prompt Compiler
ComfyUI Node

IAMCCS Audio Transcript Prompt Compiler

Put actual spoken dialogue into your LTX prompt, automatically

By IAMCCS·Created 12 months ago·Updated 5 days ago· 117
IAMCCS Audio Transcript Prompt Compiler
  • audio
  • compiled_prompt
  • speech_line
  • report
◄text_prompt►
◄fallback_speech_line►
◄speech_templateThe speaker says "<Transcript1>"►
◄speech_token<Transcript1>►
◄join_separator ►
◄model_sizetiny►
◄languageauto►
◄download_missingfalse►
◄return_timestampsfalse►
◄use_fallback_if_transcript_emptytrue►
◄speech_sourcemanual_speech_line►

Transcribe the audio, then stuff the words into the prompt

LTX-2 is the open video model that made audio-synced generation a local reality - video and audio come out of the same DiT, which is why it's the default for dialogue work. The workflow pattern that gets the best lipsync is: take the source audio, transcribe what's being said, and put that text into the generation prompt so the model knows what the mouth should be doing. That transcription-and-injection step is exactly what this node automates.

It's the "01 Prompting" stage of the pack's Cine pipeline, and it does three things in one pass: transcribe the input audio (or accept a manually written line), build a speech line from a template, and compile a final prompt.

How it works

The speech_source dropdown picks the behavior:

  • manual_speech_line (default) - skip transcription, use the text you typed in fallback_speech_line directly. The name is a bit of a misnomer; the fallback IS the speech line here.
  • transcribe_then_fallback - transcribe; if the result is empty and use_fallback_if_transcript_empty is on, fall back to your line.
  • transcribe_audio_only / speech_line_only - the pure modes.

Transcription runs through Whisper via MTB's Load Whisper node - check model_size (default tiny, all the way up to large-v3-turbo) and language (default auto). That MTB dependency is the one real gotcha: if the node errors at load, comfy-mtb isn't installed. download_missing handles the Whisper model download when set.

The speech line is assembled by the speech_template (default The speaker says "<Transcript1>") with speech_token as the placeholder the transcript gets dropped into. Then compiled_prompt joins that line with your text_prompt using join_separator. So a typical setup: a scene prompt in text_prompt, Whisper transcribing the VO track, and the compiled prompt - "…and The speaker says 'I knew you would come back.'" - goes to your LTX conditioning.

Outputs

  • compiled_prompt - the ready-to-encode string.
  • speech_line - just the template-wrapped transcript, if you want to route it separately.
  • report - diagnostics about what was transcribed or why it fell back.

The practical picture

Install is the pack install (Manager: "IAMCCS", or clone IAMCCS/IAMCCS-nodes into custom_nodes), plus the MTB pack for Whisper. Start with tiny for speed - on long audio it's dramatically faster than large-v3-turbo and good enough to catch dialogue. Two habits save you pain: keep use_fallback_if_transcript_empty on so a silent clip doesn't produce an empty prompt, and remember that Whisper timestamps (return_timestamps) aren't actually used by the compiler - that flag is there for debugging your own flows. And don't expect the model to repeat the words verbatim; it uses the transcript as a strong hint for mouth shape and delivery, which is exactly how LTX lipsync work gets its payoff.

CategoryIAMCCS/Cine/01 Prompting

Inputs (12)

NameTypeDefaultDescription
audioAUDIO—
text_promptSTRING—
fallback_speech_lineSTRING—
speech_templateSTRINGThe speaker says "<Transcript1>"—
speech_tokenSTRING<Transcript1>—
join_separatorSTRING —
model_sizeCOMBOtiny9 options: tiny, small, medium, medium.en, base, large, +3
languageCOMBOauto12 options: auto, de, en, es, fr, it, +6
download_missingBOOLEANfalse—
return_timestampsBOOLEANfalse—
use_fallback_if_transcript_emptyBOOLEANtrue—
speech_sourceCOMBOmanual_speech_line4 options: manual_speech_line, transcribe_then_fallback, transcribe_audio_only, speech_line_only

Outputs (3)

NameTypeDescription
compiled_promptSTRING—
speech_lineSTRING—
reportSTRING—