Workflow Config LTX2.5
Stop rewiring your LTX workflow every time you switch takes
- transformer_only
- video_vae
- audio_vae
- clip
- image
- audio
- width
- height
- steps
- seed
- master_prmt
- pos_prompt
- neg_prompt
- is_relay_prompt
- cfg
- total_frames
- fps
- distillation_lora
- lora_2
- lora_3
- lora_4
- lora_5
- lora_6
- filename
- transformer_stack
- is_t2v
- flag_1
- flag_2
- flag_3
- custom_1
- custom_2
- lora_7
- lora_8
- latent_upscaler
LTX is the speed tier of local video: where Wan burns minutes per clip, LTX burns seconds, and the whole community workflow built around that is iteration - generate ten takes, keep one. But every iteration means swapping models, VAEs, prompts, LoRAs, resolutions, seeds. Individually each swap is thirty seconds of clicking; collectively it's why you dread changing anything. Workflow Config LTX2.5 stores named "scenes" - a full snapshot of the video pipeline - in a JSON file, and reloads everything the moment you pick one from a dropdown.
It's built for the LTX 2.5 generation of the model, and the config reflects what that family needs. LTX-2 and later made synchronized audio and video their whole bet, so there are two VAEs: video_vae and audio_vae. The text encoder is the single Gemma-based file LTX 2.5 ships (gemma-12b-with-proj-…), which is why this node - unlike the pack's LTX2.3 variant - has one CLIP slot and no checkpoint loader. One CFG, 8 LoRA slots, and an optional latent upscaler round it out. The first LoRA slot is even named distillation_lora: LTX's distilled checkpoints run at 8 steps, CFG 1, so that slot is your speed knob by design.
The mechanics are the pack's shared scene system. Scenes live as dx_*.json "movie" files in ComfyUI/user/default/workflows/.dx_mgr/. Each movie holds multiple scenes; each scene holds numbered takes - versions of the same setup with different prompts, LoRAs, reference image, whatever. At runtime you only touch three inputs: movie, scene, take, all dropdowns. Everything else comes out of the outputs, so you wire the graph once and switching takes is just changing dropdowns.
Outputs worth knowing:
- transformer_stack (MODEL) - the transformer with all enabled LoRAs applied. This is what you wire into the sampler; it's the whole point.
- transformer_only (MODEL) - the bare model, if you'd rather load LoRAs yourself.
- video_vae / audio_vae (VAE), clip (CLIP) - the decode and text-encode stack.
- image (IMAGE) and audio (AUDIO) - reference inputs for I2V and sound conditioning.
- width, height, steps, seed, cfg, total_frames, fps - straight into the sampler and latent setup.
- pos_prompt, neg_prompt, master_prmt, is_relay_prompt - the prompts, with the relay flag on when a Smart (segmented) prompt is active.
- latent_upscaler (LATENT_UPSCALE_MODEL) - optional, loaded from
models/latent_upscale_models; empty if you leave it on none. - flag_1/2/3, custom_1/2, filename - routing and output-path helpers.
Editing happens in a full-screen panel (double-click the node, or hit Edit Take): a visual prompt segment editor, a sizing dialog that checks divisibility by 32, and duration quick-buttons that compute frames as duration × fps + 1. Save or "+ Take" writes back to disk.
Installation:
cd ComfyUI/custom_nodes
git clone https://github.com/denyazzolin/comfyui-daz-tools
Restart, or use ComfyUI Manager and search comfyui-daz-tools. No pip requirements. If you plan to run GGUF-quantized transformers - the dropdown lists .gguf files alongside regular ones and loads them through ComfyUI-GGUF automatically - you need ComfyUI-GGUF installed, or GGUF entries won't even show up.
Real-world notes. The LTX-2 family's Gemma text encoder is huge - roughly 23GB of system RAM on top of the model - and the launch era was full of OOMs on 24GB cards without --reserve-vram. Budget memory before you blame the node. Your scenes are only as safe as the .dx_mgr folder; back it up or you're rebuilding everything. And if a take has Randomize seed on, the node rewrites the seed into the file on every run, which is why it constantly shows as "changed" - expected, not a bug. Finally, Smart prompts are relay payloads here; if you don't run a relay node downstream, keep prompts on Simple.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| movie | COMBO | 1 options: (default) | |
| scene | COMBO | 1 options: (no configs) | |
| take | COMBO | 1 options: 1 |
Outputs (34)
| Name | Type | Description |
|---|---|---|
| transformer_only | MODEL | — |
| video_vae | VAE | — |
| audio_vae | VAE | — |
| clip | CLIP | — |
| image | IMAGE | — |
| audio | AUDIO | — |
| width | INT | — |
| height | INT | — |
| steps | INT | — |
| seed | INT | — |
| master_prmt | STRING | — |
| pos_prompt | STRING | — |
| neg_prompt | STRING | — |
| is_relay_prompt | BOOLEAN | — |
| cfg | FLOAT | — |
| total_frames | INT | — |
| fps | FLOAT | — |
| distillation_lora | LORA | — |
| lora_2 | LORA | — |
| lora_3 | LORA | — |
| lora_4 | LORA | — |
| lora_5 | LORA | — |
| lora_6 | LORA | — |
| filename | STRING | — |
| transformer_stack | MODEL | — |
| is_t2v | BOOLEAN | — |
| flag_1 | BOOLEAN | — |
| flag_2 | BOOLEAN | — |
| flag_3 | BOOLEAN | — |
| custom_1 | STRING | — |
| custom_2 | STRING | — |
| lora_7 | LORA | — |
| lora_8 | LORA | — |
| latent_upscaler | LATENT_UPSCALE_MODEL | — |