Nodes/ComfyUI-GGUF-Loader/LTX-2.3 ID-LoRA Assembler ⚡
ComfyUI Node

LTX-2.3 ID-LoRA Assembler ⚡

Three strings in, one tagged ID-LoRA prompt out

By ChrisColeTech·Created about a month ago·Updated 3 days ago· 10
LTX-2.3 ID-LoRA Assembler ⚡
    • tagged_prompt
    visual
    speech
    sounds

    The LTX-2.3 ID-LoRA prompt format is exactly three tagged sections - [VISUAL]: ..., [SPEECH]: ..., [SOUNDS]: ... - and the model expects them assembled into one string. LTX-2.3 ID-LoRA Assembler is the boring node that does the assembling: three plain text inputs in, one formatted tagged_prompt out. No parsing, no edit state, no source socket. It's the formatting step of the pack's LTXV23IDLoraPromptEditor, exposed standalone for when you already have the three pieces in hand.

    What it is for

    The Prompt Editor is built around captioner output: it parses a captioner's [VISUAL]/[SPEECH]/[SOUNDS] block, lets you edit the pieces, and reassembles them. The Assembler skips the parse-and-edit half entirely. You use it when the three sections already exist as separate strings somewhere - hand-typed values, a clip picked from LTXV23SpeechBatchSelector's batch output, text coming out of a TTS node's text slot - and you just need the joined [VISUAL]: .../[SPEECH]: .../[SOUNDS]: ... string to feed CLIPTextEncode.

    The inputs are the three sections, each a multiline text box:

    • visual - what the frame shows: shot, subject, setting, the person speaking to camera.
    • speech - the exact words to be spoken.
    • sounds - vocal delivery plus ambience.

    One output, tagged_prompt (STRING) - drop it into CLIPTextEncode (or wherever the LTX-2.3 A/V text path expects the tagged format).

    Why it earns its place

    It's a ten-line node on paper, but it's the kind of thing that quietly saves you from format drift. The ID-LoRA prompt format has an exact shape - the three tags, in that order, colons, no stray markdown - and retyping it every time is exactly how a [VISUAL] block ends up swallowing a [SOUNDS] block or a section name gets typo'd. Letting a node guarantee the format means your captioner/editor pipeline can change shape upstream without breaking the prompt contract downstream. When you're chaining captioner → editor → TTS → sampler, that guarantee is worth more than the node's simplicity suggests.

    Installing it

    Same pack as the rest of the LTX-2.3 tooling:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ChrisColeTech/ComfyUI-GGUF-Loader
    cd ComfyUI-GGUF-Loader
    pip install --upgrade gguf
    

    Restart; it's under 🤖 CCTech/LTX-2.3. No model downloads, no extra dependencies - it's pure string assembly.

    The choice it forces

    Assembler vs Editor is really a "where are your sections coming from" question. From a captioner's raw output that you want to review and correct? Use the Editor - it fills the boxes for you and preserves your edits. From anywhere else - a batch selector, a TTS node, your own head? Use the Assembler. If you wire the Assembler where you meant the Editor, you'll notice immediately: nothing ever fills the boxes, because this node was never supposed to.

    Category🤖 CCTech/LTX-2.3

    Inputs (3)

    NameTypeDefaultDescription
    visualSTRINGThe [VISUAL] section text.
    speechSTRINGThe [SPEECH] section text.
    soundsSTRINGThe [SOUNDS] section text.

    Outputs (1)

    NameTypeDescription
    tagged_promptSTRING