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 11 months ago·Updated 8 days ago· 113
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