Nodes/ComfyUI-UtilsCollection/Text Encode with LTXV 2 System Prompt (Legacy)
ComfyUI Node

Text Encode with LTXV 2 System Prompt (Legacy)

The LTX-2 encoder that puts your system prompt where it belongs

By silveroxides·Created 2 months ago·Updated about 7 hours ago· 24
Text Encode with LTXV 2 System Prompt (Legacy)
  • clip
  • vae
  • image
  • CONDITIONING
prompt
system_prompt
vae_resolutionFast (1024)
ref_latent_modeoff
vae_dimension_multiple8

LTX Video's whole selling point is that it runs on consumer hardware - the 19B LTX-2 model drafts seconds-long clips that used to require a bigger card. But "fast and light" has a catch: LTX-2's text encoder is an LLM-format encoder, which means it reads your prompt as a chat-style conversation. If you've ever dumped a bare prompt into an LTX-2 encode and gotten a flat, off-target result, this node is the fix you were missing.

TextEncodeLtxv2SystemPrompt ("Text Encode with LTXV 2 System Prompt (Legacy)") is a thin legacy wrapper from silveroxides' UtilsCollection that formats your prompt correctly for the LTX-2 template - with a dedicated system_prompt field. It's one of those nodes that looks boring in the menu and then quietly saves you an hour of "why is my video ignoring half the prompt."

What it does

It takes a clip (your LTX-2 text encoder), a prompt, and a system_prompt, and returns a single CONDITIONING for your sampler. Under the hood it injects the system prompt into the model's chat template before tokenizing, then encodes from the scheduled tokens the way Core does. The (Legacy) tag and the TextEncode... (vs UC_TextEncode...) naming mean this is a compatibility alias for the pack's canonical node - newer installs prefer the UC_-prefixed version, and ComfyUI may offer to swap them. Either works; the behavior is identical.

The practical difference versus Core's plain LTX-2 text encode is the system_prompt field itself. LTX-2 (and LTX-2.3, which the same family covers) responds well to system-level instruction - things like the shot type, the pace, or "follow this camera grammar" belong in the system slot so they don't get diluted by the content tokens in your main prompt. Split the two and you'll notice the model actually obeying the framing instruction instead of blending it into the scene description.

You also get the pack's structural reference-latent stack: vae_resolution (a combo from Ultra 512 up to Original), ref_latent_mode (off / single / multi / parallel-single / parallel-multi), vae_dimension_multiple, and an optional vae plus an optional image input for reference-image conditioning. If all you want is text, ignore all of those - leave ref_latent_mode at off and just feed clip, prompt, and system_prompt.

Install

Via ComfyUI Manager (search ComfyUI-UtilsCollection) or manually:

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

Restart ComfyUI. Real dependencies are just opencv-python and typing-extensions - no PyAV, no ffmpeg wheel, no model downloads for the node itself (you still need the LTX-2 checkpoint, of course).

When you'd reach for it

Any time you're building LTX-2 or LTX-2.3 workflows and want prompt structure beyond a single text box. One workflow pattern worth stealing: keep the scene in prompt and put how to shoot it in system_prompt - camera language, pacing, lighting grammar. And since it's a pure encoder (no model patching), iterating is cheap: change a line, re-queue, no cache gotchas.

Categoryadvanced/conditioning

Inputs (8)

NameTypeDefaultDescription
clipCLIP
promptSTRING
system_promptSTRING
vae_resolutionCOMBOFast (1024)Resolution of the reference latent encoded by the VAE (structural path).
ref_latent_modeCOMBOoffReference latent encoding mode. 'single'/'multi' append latents; 'parallel-single'/'parallel-multi' run them in a separate conditioning stream to prevent semantic override.
vae_dimension_multipleINT84–256Pixel multiple used to align reference images before VAE encoding.
vaeoptVAE
imageoptIMAGE

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING