LTX2 LoRA Loader Advanced
Per-pathway LoRA strength for LTX-2's audio+video
- model
- blocks
- model
- rank
- loaded_keys_info
A normal LoRA loader gives you one strength dial. That's fine for an image model, but LTX-2 generates synchronized audio and video in a single model - so a single strength knob is a blunt instrument. This loader breaks the LoRA's influence out across LTX-2's internal pathways, so you can push a LoRA hard on the video while going easy on the audio, or vice versa. Its description says it plainly: "Advanced LoRA loader with per-block strength control for LTX2 models."
Why the extra dials exist
LTX-2 isn't just a video model with sound bolted on - audio and video are entangled inside it, with cross-connections in both directions (video informing audio, audio informing video). A LoRA trained on this model touches those pathways, and you don't always want it applied evenly. Maybe the LoRA nails a visual style but its influence on the generated audio is muddying things; maybe you want the character/motion effect without letting it drag the sound around. This node lets you weight each pathway separately instead of taking one global strength and hoping. It also carries a per-DiT-block selector, so you can restrict the LoRA to specific transformer blocks - the fine-grained control power users reach for when a LoRA is too heavy-handed at full application.
The inputs and outputs that matter
lora_name- pick the LoRA from yourmodels/lorasfolder (the dropdown), or pointopt_lora_pathat a file elsewhere.model- the LTX-2 model to apply it to.strength_model(default 1) - the overall strength, same as any loader. Start here.video,video_to_audio,audio,audio_to_video,other(each 0-1, default 1) - the per-pathway multipliers on top of the overall strength.videoscales the LoRA's effect on the visual generation,audioon the sound, and the cross terms (video_to_audio,audio_to_video) on the connections between them.othercatches the rest. Leave them at 1 for normal full application; pull one toward 0 to spare that pathway.blocks(optional) - a selected-blocks input to limit the LoRA to specific DiT blocks.
Outputs: the patched model, plus two informational strings - rank (the LoRA's rank) and loaded_keys_info (what actually loaded). Those two are genuinely useful for debugging: wire them into a text/show node to confirm the LoRA matched the model instead of silently loading nothing.
How to install it
It's in kijai's KJNodes pack.
- ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, thenpip install -r ComfyUI-KJNodes/requirements.txt, restart.
The node has no download; you supply the LTX-2 LoRA. It only makes sense on an LTX-2 model - the pathway split is specific to that architecture.
Common issues & troubleshooting
loaded_keys_info shows few or no keys loaded. The LoRA doesn't match the model - wrong architecture, or an LTX-1 LoRA on LTX-2. That's exactly what the info output is for; if it reports nothing loaded, the LoRA isn't compatible, and no amount of strength will change that. This is why the node bothers to expose it.
The LoRA effect is too strong or bleeds into the audio. That's the whole reason these dials exist. Drop video or audio toward 0 to spare that pathway, and lower strength_model overall. Per-pathway tuning is the fix, not a global cut.
LoRA won't show in the dropdown. It needs to be in models/loras (or reachable via opt_lora_path). Drop the file in and refresh, or use the explicit path input.
Confusing which pathway does what. If you just want normal behavior, leave all five pathway values at 1 and treat this like an ordinary loader with strength_model - the fine controls are opt-in, not required.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_name | COMBO | The name of the LoRA. | |
| model | MODEL | The diffusion model the LoRA will be applied to. | |
| strength_model | FLOAT | 1.00-100–100 | How strongly to modify the diffusion model. This value can be negative. |
| video | FLOAT | 1.000–1 | Strength for video attention layers. |
| video_to_audio | FLOAT | 1.000–1 | Strength for video to audio cross-attention layers. |
| audio | FLOAT | 1.000–1 | Strength for audio attention layers. |
| audio_to_video | FLOAT | 1.000–1 | Strength for audio to video cross-attention layers. |
| other | FLOAT | 1.000–1 | Strength for layers not caught by other layer filters. |
| opt_lora_pathopt | STRING | Absolute path of the LoRA. | |
| blocksopt | SELECTEDDITBLOCKS | Selected DiT blocks configuration |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The modified diffusion model. |
| rank | STRING | Possible rank of the LoRA. |
| loaded_keys_info | STRING | List of loaded keys and their alpha values. |