Nodes/ComfyUI-SA-Nodes-QQ/Lora Apply On LTX (QQ)
ComfyUI Node

Lora Apply On LTX (QQ)

Bake an LTX LoRA straight into the checkpoint and ship one file

By siraxe·Created 11 months ago·Updated 2 days ago· 72
Lora Apply On LTX (QQ)
  • model_with_loras
  • saved_checkpoint_path
output_prefixlora_applied_model
output_dircheckpoints

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_dir must be writable by ComfyUI. checkpoints resolves 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_qq folder in custom_nodes if old workflows reference it.
CategoryKJNodes/ltxv

Inputs (3)

NameTypeDefaultDescription
model_with_lorasMODELThe model with LoRAs applied (from LTX2LoRASelect).
output_prefixSTRINGlora_applied_modelPrefix for the output checkpoint filename.
output_dirSTRINGcheckpointsOutput directory. Use 'checkpoints' to save to ComfyUI checkpoints folder.

Outputs (1)

NameTypeDescription
saved_checkpoint_pathSTRING