Nodes/IAMCCS-nodes/Apply LoRA to MODEL (LTX-2, segmented: 3 seg × 2 stages)
ComfyUI Node

Apply LoRA to MODEL (LTX-2, segmented: 3 seg × 2 stages)

Six different LoRA'd models for a three-segment video, in one node

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
Apply LoRA to MODEL (LTX-2, segmented: 3 seg × 2 stages)
  • model
  • seg0_stage1_model
  • seg0_stage2_model
  • seg1_stage1_model
  • seg1_stage2_model
  • seg2_stage1_model
  • seg2_stage2_model
fixed_lorano
seg0_var_lora1no
seg0_var_lora2no
seg0_fixed_strength_stage10.00
seg0_fixed_strength_stage20.00
seg0_var1_strength_stage10.00
seg0_var1_strength_stage20.00
seg0_var2_strength_stage10.00
seg0_var2_strength_stage20.00
seg1_var_lora1no
seg1_var_lora2no
seg1_fixed_strength_stage10.00
seg1_fixed_strength_stage20.00
seg1_var1_strength_stage10.00
seg1_var1_strength_stage20.00
seg1_var2_strength_stage10.00
seg1_var2_strength_stage20.00
seg2_var_lora1no
seg2_var_lora2no
seg2_fixed_strength_stage10.00
seg2_fixed_strength_stage20.00
seg2_var1_strength_stage10.00
seg2_var1_strength_stage20.00
seg2_var2_strength_stage10.00
seg2_var2_strength_stage20.00

Here's a workflow shape the plain LoRA nodes can't express: a three-segment video where each segment wants a different set of LoRA strengths - maybe the opening segment is heavier on a style LoRA, the middle drops it back, and the closer brings in a character LoRA. And each segment runs a two-stage sampler, so really you need six distinct patched models: 3 segments × 2 stages. Building that from individual loaders is a wall of nodes. This node produces all six in one shot.

It's the most specialized of the LTX-2 LoRA family, aimed squarely at the pack's segment-queue long-video pipeline. If your videos are one-shot clips, this is overkill - the plain IAMCCS_LTX2_LoRAStackModelIO does the job. If you're generating segment by segment with a LoRA schedule, this is the node that makes the schedule legible.

How it works

There's a fixed_lora slot (one always-available LoRA) plus, for each of segments 0/1/2, two variable LoRA slots (segN_var_lora1, segN_var_lora2) and per-slot strength fields for both stages (segN_*_strength_stage1 / _stage2, and the same for the fixed LoRA). Then the structure:

  • Segment 0's stage-1 and stage-2 stacks each combine the fixed LoRA at its per-stage strength plus that segment's variable LoRAs.
  • Same for segments 1 and 2 - so you can vary the variable LoRAs per segment while the fixed LoRA stays consistent.

Each of the six resulting stacks is applied to the incoming base model with comfy.sd.load_lora_for_models, and six MODELs come out the other side:

  • seg0_stage1_model, seg0_stage2_model
  • seg1_stage1_model, seg1_stage2_model
  • seg2_stage1_model, seg2_stage2_model

Wire each to the sampler that processes that segment's stage. There's a sister node (IAMCCS_LTX2_LoRAStackSegmented6) that outputs the six LORA bundles instead if you'd rather apply them through your own chain.

Inputs and outputs

  • model - the base MODEL all six are built from.
  • fixed_lora plus the segment/variable slots and 18 strength fields (6 per segment: fixed, var1 and var2, each with a stage-1 and stage-2 strength).

Outputs: six MODELs as above.

Install

ComfyUI Manager → "IAMCCS", or:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart. No extra deps.

Gotchas

The ergonomics are rough by design - 24 numeric fields is a lot of surface for a typo, and a strength left at 0 silently drops a LoRA from that stack (that's the intent, but it's also how you get a segment that "forgot" its style). The log line per stack tells you exactly what got applied: segStage[idx] -> name(strength), .... Read it once before a long run. And keep the family-matching rule in mind: the apply path suppresses "lora key not loaded" spam but doesn't change what loaded, so a segment whose LoRA family mismatches the base will just look weaker, not fail. Check the log before you start debugging the sampler.

CategoryIAMCCS/LoRA

Inputs (26)

NameTypeDefaultDescription
modelMODEL
fixed_loraCOMBOno1 options: no
seg0_var_lora1COMBOno1 options: no
seg0_var_lora2COMBOno1 options: no
seg0_fixed_strength_stage1FLOAT0.00-5–5
seg0_fixed_strength_stage2FLOAT0.00-5–5
seg0_var1_strength_stage1FLOAT0.00-5–5
seg0_var1_strength_stage2FLOAT0.00-5–5
seg0_var2_strength_stage1FLOAT0.00-5–5
seg0_var2_strength_stage2FLOAT0.00-5–5
seg1_var_lora1COMBOno1 options: no
seg1_var_lora2COMBOno1 options: no
seg1_fixed_strength_stage1FLOAT0.00-5–5
seg1_fixed_strength_stage2FLOAT0.00-5–5
seg1_var1_strength_stage1FLOAT0.00-5–5
seg1_var1_strength_stage2FLOAT0.00-5–5
seg1_var2_strength_stage1FLOAT0.00-5–5
seg1_var2_strength_stage2FLOAT0.00-5–5
seg2_var_lora1COMBOno1 options: no
seg2_var_lora2COMBOno1 options: no
seg2_fixed_strength_stage1FLOAT0.00-5–5
seg2_fixed_strength_stage2FLOAT0.00-5–5
seg2_var1_strength_stage1FLOAT0.00-5–5
seg2_var1_strength_stage2FLOAT0.00-5–5
seg2_var2_strength_stage1FLOAT0.00-5–5
seg2_var2_strength_stage2FLOAT0.00-5–5

Outputs (6)

NameTypeDescription
seg0_stage1_modelMODEL
seg0_stage2_modelMODEL
seg1_stage1_modelMODEL
seg1_stage2_modelMODEL
seg2_stage1_modelMODEL
seg2_stage2_modelMODEL