LoRA Stack (LTX-2, segmented: 3 seg × 2 stages)
Six stacks for a three-segment, two-stage video
- seg0_stage1_lora
- seg0_stage2_lora
- seg1_stage1_lora
- seg1_stage2_lora
- seg2_stage1_lora
- seg2_stage2_lora
IAMCCS_LTX2_LoRAStackSegmented6 builds six LoRA stacks at once for segmented LTX-2 long-video work: 3 segments × 2 stages. The idea is that a long LTX-2 render isn't one uniform generation - it's three chronological segments, each passed through two sampling stages - and the LoRA look you want can legitimately differ between "segment 1, stage 1" and "segment 3, stage 2." Instead of hand-building six separate stacks, this node generates all six as named LORA outputs.
To make sense of this, you need the pack's LTX-2 LoRA architecture. The README describes the modern stack-and-apply split: you build a LORA stack (this node), then a paired apply node (the pack's IAMCCS_ModelWithLoRA_LTX2 and its _Staged variant) patches your MODEL with it. The staged variant is exactly why six outputs exist - an LTX-2 segment gets a stage-1 pass and a stage-2 pass, and if your workflow distinguishes them (common for detail-then-refine setups), each stage can carry its own LoRA strength. Combined with IAMCCS_LTX2_LongVideoWrapperPrep for the frame planning, this is the "give each segment its own look" layer of the long-video stack.
How it works
One fixed_lora (a LoRA that's always in the mix, with a per-segment, per-stage strength) plus two variable LoRAs per segment (seg0_var_lora1, seg0_var_lora2, …). For each of the three segments it builds two stacks - stage 1 and stage 2 - using the fixed LoRA at that segment's fixed_strength_stage1/stage2 and the variable LoRAs at their var1_strength_stage1/stage2 and var2_strength_stage1/stage2. All strengths default to 0.0, so out of the box every stack is effectively empty until you set values - a deliberate "nothing sneaks in" default, and the reason a fresh node produces six outputs that all look inactive.
The dropdowns are populated from your ComfyUI/models/loras folder, with "no" meaning "skip this slot." The node logs a warning if no LoRA is active at all, and a summary of how many entries each of the six stacks carries - so you can sanity-check that segment 2, stage 1 actually has the strength you think it does.
Inputs and outputs
Inputs: fixed_lora, then per segment (seg0/seg1/seg2): segN_var_lora1, segN_var_lora2, segN_fixed_strength_stage1, segN_fixed_strength_stage2, segN_var1_strength_stage1, segN_var1_strength_stage2, segN_var2_strength_stage1, segN_var2_strength_stage2. Outputs: six LORA stacks - seg0_stage1_lora, seg0_stage2_lora, seg1_stage1_lora, seg1_stage2_lora, seg2_stage1_lora, seg2_stage2_lora - each fed to its matching apply node.
Installing it
Part of the IAMCCS-nodes pack. ComfyUI Manager → search IAMCCS, or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Restart ComfyUI; it's under IAMCCS/LoRA. No pip requirements, no model downloads - it reads LoRAs from your standard loras folder. README floor: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8.
Where people get burned
- Every strength defaults to 0. Wire it up, see "no LoRA active" warnings, and think it's broken - no, you just haven't set any strengths. That's the design; set at least one non-zero value.
- Feeding the stacks to the wrong apply variant. The outputs are named
_stage1/_stage2for a reason - the staged apply node is what understands them. Handing a stage-2 stack to a single-stage apply gives you a silent half-configuration. - It's a stack builder, not an applier. The six outputs must each go into a
ModelWithLoRA-type node; there's no MODEL input here, so a new user wiring it straight toward a sampler will get a type error and a "wait, where's the model?" moment.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| fixed_lora | COMBO | no | 1 options: no |
| seg0_var_lora1 | COMBO | no | 1 options: no |
| seg0_var_lora2 | COMBO | no | 1 options: no |
| seg0_fixed_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg0_fixed_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg0_var1_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg0_var1_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg0_var2_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg0_var2_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg1_var_lora1 | COMBO | no | 1 options: no |
| seg1_var_lora2 | COMBO | no | 1 options: no |
| seg1_fixed_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg1_fixed_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg1_var1_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg1_var1_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg1_var2_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg1_var2_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg2_var_lora1 | COMBO | no | 1 options: no |
| seg2_var_lora2 | COMBO | no | 1 options: no |
| seg2_fixed_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg2_fixed_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg2_var1_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg2_var1_strength_stage2 | FLOAT | 0.00-5–5 | — |
| seg2_var2_strength_stage1 | FLOAT | 0.00-5–5 | — |
| seg2_var2_strength_stage2 | FLOAT | 0.00-5–5 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| seg0_stage1_lora | LORA | — |
| seg0_stage2_lora | LORA | — |
| seg1_stage1_lora | LORA | — |
| seg1_stage2_lora | LORA | — |
| seg2_stage1_lora | LORA | — |
| seg2_stage2_lora | LORA | — |