Lora Apply On LTX (QQ)
Bake an LTX LoRA straight into the checkpoint and ship one file
- model_with_loras
- saved_checkpoint_path
LoraApplyOnLTX answers a simple distribution question: what if you didn't have to ship a LoRA plus a "apply at 0.7, but not to audio layers" instruction, and could just hand someone a checkpoint that already has the LoRA in it? That's the job - it applies a LoRA stack directly into the base LTX model's weights and saves the result as a new checkpoint file. The source docstring is explicit about the distinction: this is not LoraMergeLTX (which merges into a LoRA file); this bakes the LoRA into the model itself: for each weight, W_new = W_old + up @ down * strength.
Three inputs: model_with_loras (MODEL - the output of an LTX2LoRASelect chain, which is why the tooltip says "from LTX2LoRASelect"), output_prefix (default lora_applied_model), and output_dir (default checkpoints, i.e. save into ComfyUI's checkpoints folder). Output is a single saved_checkpoint_path (STRING), so you can even chain a notification or a loader that references the new file programmatically.
Why you'd bother
Three real reasons. Distribution: someone on a machine without your LoRA stack can load one checkpoint and get your exact look - no dependency chain, no "which strength did you use again?" Inference simplicity: a baked checkpoint loads through a plain model loader, which also makes it usable in tooling that has no LoRA support. Stability: if a LoRA update would break a piece you consider finished, baking freezes it into a checkpoint that can't drift.
The honest caveats are the flip side. A baked checkpoint is a merge, and merges are one-way - you can't un-apply the LoRA without re-downloading the base. You're also permanently stuck with whatever per-block strengths you baked in; that's why the intended flow is LTX2LoRASelect (where you can tune video vs audio vs cross-attention strengths) feeding this node. And you lose the LoRA's portability advantages: it's a full checkpoint, so it eats disk and re-load time. Use this when "finish" is the word you'd use about the result, not when you're still iterating.
Installing it
Part of siraxe/ComfyUI-WanVideoWrapper_QQ via ComfyUI Manager (search WanVideoWrapper_QQ/SA-Nodes-QQ), or:
cd ComfyUI/custom_nodes
git clone https://github.com/siraxe/ComfyUI-WanVideoWrapper_QQ.git
Restart ComfyUI. Needs an LTX checkpoint + the LTX LoRA loader chain; no extra Python deps. Watch disk space - checkpoints are big.
Gotchas
output_dirmust be writable by ComfyUI.checkpointsresolves to ComfyUI's models folder; anything else is a relative path the process can write to.- Bake at the strength you want to keep. There's no undo; keep the original checkpoint around.
- Pack note: repo renamed to ComfyUI-SA-Nodes-QQ in v1.3.4; delete any stale
wanwrapper_qqfolder incustom_nodesif old workflows reference it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_with_loras | MODEL | The model with LoRAs applied (from LTX2LoRASelect). | |
| output_prefix | STRING | lora_applied_model | Prefix for the output checkpoint filename. |
| output_dir | STRING | checkpoints | Output directory. Use 'checkpoints' to save to ComfyUI checkpoints folder. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| saved_checkpoint_path | STRING | — |