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

LoRA Stack (LTX-2, segmented: 3 seg × 2 stages)

Six stacks for a three-segment, two-stage video

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
LoRA Stack (LTX-2, segmented: 3 seg × 2 stages)
    • seg0_stage1_lora
    • seg0_stage2_lora
    • seg1_stage1_lora
    • seg1_stage2_lora
    • seg2_stage1_lora
    • seg2_stage2_lora
    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

    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/_stage2 for 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.
    CategoryIAMCCS/LoRA

    Inputs (25)

    NameTypeDefaultDescription
    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_loraLORA
    seg0_stage2_loraLORA
    seg1_stage1_loraLORA
    seg1_stage2_loraLORA
    seg2_stage1_loraLORA
    seg2_stage2_loraLORA