(Deno) LTX Multi LoRA Loader
Stack LTX LoRAs with separate video and audio muscles
- model
- clip
- model
- clip
LTX 2.3 isn't just a video model with audio bolted on - the audio is in the weights, which means a LoRA can target the audio side, the video side, or the bridges between them. The (Deno) LTX Multi LoRA Loader is a Power-LoRA-style stacking node that respects that: every slot gets an overall strength, a video scale, and an audio scale, so you can push a style LoRA on the video while leaving the sound channel alone.
How the A/V strengths actually work
When the node applies a LoRA, it inspects the patched weights and scales them by which side they belong to: audio-attention and audio-feedforward weights get the audio multiplier, video-side weights get the video multiplier, and the cross-attention bridges between them (audio_to_video_attn, video_to_audio_attn) get their respective scales too. So a "video" strength of 0 doesn't delete the LoRA - it just mutes its effect on the moving image while audio changes still apply. That's a level of control most multi-LoRA loaders simply don't have, because most models don't have an audio half to worry about.
Each slot also has its own enable toggle, and trigger_1–trigger_8 plus description_1–description_8 let you save the trigger words and a note right in the row - handy when you're juggling eight LoRAs and can't remember which was the cinematic one.
Inputs and outputs
model- your base LTX model, typically from(Deno) LTX Model Loaderor a GGUF UNet.active_loras- how many slots the UI shows (up to 8).- Per slot:
enabled_N,lora_N,strength_N,video_N,audio_N. - Outputs:
model(patched) andclip(patched or passed through if the LoRAs touch CLIP).
Strength validation is worth knowing: overall strength runs −10 to 10, but audio and video are capped 0–2. Don't crank audio/video to 8 expecting more - the node rejects it, and honestly 2 is already aggressive for per-module scaling.
Install and the setup around it
Same pack, same install:
cd ComfyUI/custom_nodes
git clone https://github.com/Deno2026/comfyui-deno-custom-nodes.git
# restart ComfyUI
The node is just the loader - you still need an LTX 2.3 base model, which on consumer VRAM usually means the GGUF path via the LTX Model Loader, and the LoRA files in your loras folder. The name is misleading in one direction worth flagging: despite "Multi LoRA," it is LTX-specific. If you're loading LoRAs for a plain SD/SDXL model, the generic (Deno) Multi LoRA Loader in the same pack is the right sibling - it does the same Power-LoRA-style stacking with model_strength/clip_strength instead of video/audio.
The most common beginner failure is audio-focused LTX LoRAs silently not doing what's expected. If you're testing a voice or sound-effects LoRA, drop video to something small and keep audio at 1 - a LoRA trained mostly on the audio side will look like "nothing happened" if you only judge it by the moving image. And if LoRAs seem to do nothing at all, check that the base model and the LoRA are both 2.3-era; the rebuilt 2.3 VAE and latent space mean 2.2 LoRAs don't just drop in.
Inputs (59)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | Base LTX model that enabled LoRAs are applied to. | |
| active_loras | INT | 10–8 | Number of LTX LoRA slots shown by the frontend UI. |
| enabled_1 | BOOLEAN | true | Enable or skip LoRA slot 1. |
| lora_1 | COMBO | __none__ | LoRA file used by slot 1. |
| strength_1 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 1. |
| audio_1 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 1. |
| video_1 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 1. |
| enabled_2 | BOOLEAN | true | Enable or skip LoRA slot 2. |
| lora_2 | COMBO | __none__ | LoRA file used by slot 2. |
| strength_2 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 2. |
| audio_2 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 2. |
| video_2 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 2. |
| enabled_3 | BOOLEAN | true | Enable or skip LoRA slot 3. |
| lora_3 | COMBO | __none__ | LoRA file used by slot 3. |
| strength_3 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 3. |
| audio_3 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 3. |
| video_3 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 3. |
| enabled_4 | BOOLEAN | true | Enable or skip LoRA slot 4. |
| lora_4 | COMBO | __none__ | LoRA file used by slot 4. |
| strength_4 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 4. |
| audio_4 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 4. |
| video_4 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 4. |
| enabled_5 | BOOLEAN | true | Enable or skip LoRA slot 5. |
| lora_5 | COMBO | __none__ | LoRA file used by slot 5. |
| strength_5 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 5. |
| audio_5 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 5. |
| video_5 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 5. |
| enabled_6 | BOOLEAN | true | Enable or skip LoRA slot 6. |
| lora_6 | COMBO | __none__ | LoRA file used by slot 6. |
| strength_6 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 6. |
| audio_6 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 6. |
| video_6 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 6. |
| enabled_7 | BOOLEAN | true | Enable or skip LoRA slot 7. |
| lora_7 | COMBO | __none__ | LoRA file used by slot 7. |
| strength_7 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 7. |
| audio_7 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 7. |
| video_7 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 7. |
| enabled_8 | BOOLEAN | true | Enable or skip LoRA slot 8. |
| lora_8 | COMBO | __none__ | LoRA file used by slot 8. |
| strength_8 | FLOAT | 1.00-10–10 | Overall LoRA strength for LTX slot 8. |
| audio_8 | FLOAT | 1.000–2 | Audio-module scale for LTX LoRA slot 8. |
| video_8 | FLOAT | 1.000–2 | Video-module scale for LTX LoRA slot 8. |
| trigger_1 | STRING | Trigger words saved for slot 1; useful for copying into prompts. | |
| description_1 | STRING | User notes saved for LoRA slot 1. | |
| trigger_2 | STRING | Trigger words saved for slot 2; useful for copying into prompts. | |
| description_2 | STRING | User notes saved for LoRA slot 2. | |
| trigger_3 | STRING | Trigger words saved for slot 3; useful for copying into prompts. | |
| description_3 | STRING | User notes saved for LoRA slot 3. | |
| trigger_4 | STRING | Trigger words saved for slot 4; useful for copying into prompts. | |
| description_4 | STRING | User notes saved for LoRA slot 4. | |
| trigger_5 | STRING | Trigger words saved for slot 5; useful for copying into prompts. | |
| description_5 | STRING | User notes saved for LoRA slot 5. | |
| trigger_6 | STRING | Trigger words saved for slot 6; useful for copying into prompts. | |
| description_6 | STRING | User notes saved for LoRA slot 6. | |
| trigger_7 | STRING | Trigger words saved for slot 7; useful for copying into prompts. | |
| description_7 | STRING | User notes saved for LoRA slot 7. | |
| trigger_8 | STRING | Trigger words saved for slot 8; useful for copying into prompts. | |
| description_8 | STRING | User notes saved for LoRA slot 8. | |
| clipopt | CLIP | Optional CLIP model to pass through or patch when a LoRA affects CLIP. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | LTX model after all enabled LoRA slots are applied. |
| clip | CLIP | CLIP after enabled LoRA changes, or the original/empty CLIP passthrough. |