Nodes/KJNodes for ComfyUI/LTX2 Block Lora Select
ComfyUI Node Runs on cloud

LTX2 Block Lora Select

Dial LoRA strength per transformer block

By kijai·Created 3 years ago·Updated 2 days ago· 3,030
LTX2 Block Lora Select
    • blocks
    blocks.0.0.00
    blocks.1.0.00
    blocks.2.0.00
    blocks.3.0.00
    blocks.4.0.00
    blocks.5.0.00
    blocks.6.0.00
    blocks.7.0.00
    blocks.8.0.00
    blocks.9.0.00
    blocks.10.0.00
    blocks.11.0.00
    blocks.12.0.00
    blocks.13.0.00
    blocks.14.0.00
    blocks.15.0.00
    blocks.16.0.00
    blocks.17.0.00
    blocks.18.0.00
    blocks.19.0.00
    blocks.20.0.00
    blocks.21.0.00
    blocks.22.0.00
    blocks.23.0.00
    blocks.24.0.00
    blocks.25.0.00
    blocks.26.0.00
    blocks.27.0.00
    blocks.28.0.00
    blocks.29.0.00
    blocks.30.0.00
    blocks.31.0.00
    blocks.32.0.00
    blocks.33.0.00
    blocks.34.0.00
    blocks.35.0.00
    blocks.36.0.00
    blocks.37.0.00
    blocks.38.0.00
    blocks.39.0.00
    blocks.40.0.00
    blocks.41.0.00
    blocks.42.0.00
    blocks.43.0.00
    blocks.44.0.00
    blocks.45.0.00
    blocks.46.0.00
    blocks.47.0.00

    Most people apply a LoRA at one uniform strength and call it a day. LTX2 Block Lora Select throws that out and gives you a slider for every single transformer block in LTX-2's DiT - 48 of them - so you can turn a LoRA's effect up in the blocks that carry the trait you want and down (or fully off) in the ones that don't. It's a scalpel where the normal LoRA loader is a dimmer switch.

    Why block-level control is a real thing, not overkill

    This isn't a Kijai-only party trick. The same idea already has a track record on Flux, where people spent real time isolating which transformer blocks in a LoRA actually encode the face versus the hairstyle versus the clothing, using KJNodes' Flux block-select node. One user's writeup landed the range 5–12 and 20–26 as carrying "most of the important data" for a face LoRA trained in ai-toolkit, with block 22 doing hair specifically for someone else's LoRA. The exact ranges are LoRA- and trainer-specific, but the method generalizes: zero out blocks one at a time (or in ranges) and watch what breaks. This node is that same method, ported to LTX-2's video DiT - genuinely useful if you're combining two LoRAs and one is stomping on the other, or if a style LoRA is also dragging in an unwanted subject bias you want to isolate away.

    How it works

    Each of the 48 inputs - blocks.0. through blocks.47. - is a float slider, one per LTX-2 transformer block. A value of 0 removes that block's LoRA contribution entirely; anything above 1 amplifies it past the LoRA's normal strength (the range goes all the way to 10,000, though you'll almost never go past 2–3 in practice). The node bundles all 48 values into one output, blocks, typed SELECTEDDITBLOCKS - a config blob, not a patched model by itself. It's meant to feed a companion LoRA-loading node in the LTX-2 corner of this pack that actually applies the weights per block; this node's whole job is building that per-block map.

    The one thing that'll trip you up

    Every block defaults to 0. Not 1, zero. That means if you drop this node in and wire it up without touching a single slider, you've built a LoRA selection that removes every block - the LoRA might as well not be loaded. This is a "dial in what you want" tool, not a "start at normal and carve away" tool. Set the blocks you want active to something sane (start around 1.0, which is the LoRA's normal strength) before you go hunting for which ones to zero out.

    Installing it

    It ships inside KJNodes, so there's no separate install:

    • ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, then pip install -r ComfyUI-KJNodes/requirements.txt (portable installs run that same command through python_embeded\python.exe -m pip install -r ...), then restart.

    LTX-2 itself is a heavier pull - plan for the base checkpoint plus a text encoder - but this node adds nothing on top of whatever LTX-2 setup you already have.

    Common issues

    Nothing changed after I loaded my LoRA. Check your sliders aren't sitting at the 0 default - see above, this is the most likely reason the node appears to do nothing.

    I don't know which blocks matter for my LoRA. There's no shortcut here; the community's own approach on the Flux version was brute-force testing - zero a range, generate, look, repeat. LTX-2's LoRA ecosystem is still young (block-wise LoRA tooling for it barely predates this article), so there isn't yet a settled "block 6 is always the face" map the way there sort of is for some Flux trainers. Expect to do your own pass.

    48 sliders is a lot of UI to manage. Fair. If you only care about excluding a couple of blocks rather than sculpting the whole LoRA, it's faster to leave everything at 1 except the ones you're actively testing at 0 - you don't have to touch all 48 to get value from this node.

    CategoryKJNodes/ltxv

    Inputs (48)

    NameTypeDefaultDescription
    blocks.0.FLOAT0.000–10000
    blocks.1.FLOAT0.000–10000
    blocks.2.FLOAT0.000–10000
    blocks.3.FLOAT0.000–10000
    blocks.4.FLOAT0.000–10000
    blocks.5.FLOAT0.000–10000
    blocks.6.FLOAT0.000–10000
    blocks.7.FLOAT0.000–10000
    blocks.8.FLOAT0.000–10000
    blocks.9.FLOAT0.000–10000
    blocks.10.FLOAT0.000–10000
    blocks.11.FLOAT0.000–10000
    blocks.12.FLOAT0.000–10000
    blocks.13.FLOAT0.000–10000
    blocks.14.FLOAT0.000–10000
    blocks.15.FLOAT0.000–10000
    blocks.16.FLOAT0.000–10000
    blocks.17.FLOAT0.000–10000
    blocks.18.FLOAT0.000–10000
    blocks.19.FLOAT0.000–10000
    blocks.20.FLOAT0.000–10000
    blocks.21.FLOAT0.000–10000
    blocks.22.FLOAT0.000–10000
    blocks.23.FLOAT0.000–10000
    blocks.24.FLOAT0.000–10000
    blocks.25.FLOAT0.000–10000
    blocks.26.FLOAT0.000–10000
    blocks.27.FLOAT0.000–10000
    blocks.28.FLOAT0.000–10000
    blocks.29.FLOAT0.000–10000
    blocks.30.FLOAT0.000–10000
    blocks.31.FLOAT0.000–10000
    blocks.32.FLOAT0.000–10000
    blocks.33.FLOAT0.000–10000
    blocks.34.FLOAT0.000–10000
    blocks.35.FLOAT0.000–10000
    blocks.36.FLOAT0.000–10000
    blocks.37.FLOAT0.000–10000
    blocks.38.FLOAT0.000–10000
    blocks.39.FLOAT0.000–10000
    blocks.40.FLOAT0.000–10000
    blocks.41.FLOAT0.000–10000
    blocks.42.FLOAT0.000–10000
    blocks.43.FLOAT0.000–10000
    blocks.44.FLOAT0.000–10000
    blocks.45.FLOAT0.000–10000
    blocks.46.FLOAT0.000–10000
    blocks.47.FLOAT0.000–10000

    Outputs (1)

    NameTypeDescription
    blocksSELECTEDDITBLOCKSThe modified diffusion model.