LTX-2.3 ID-LoRA Assembler ⚡
Three strings in, one tagged ID-LoRA prompt out
- tagged_prompt
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.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| visual | STRING | The [VISUAL] section text. | |
| speech | STRING | The [SPEECH] section text. | |
| sounds | STRING | The [SOUNDS] section text. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| tagged_prompt | STRING | — |