Flux Block Lora Select
Turn off the parts of a LoRA you don't want
- blocks
A Flux LoRA isn't one blob of weights - it's a change spread across 57 separate transformer blocks (19 "double stream" blocks that process image and text together, then 38 "single stream" blocks after they merge), and different blocks tend to carry different kinds of information. Some skew toward composition and motion, others toward fine identity and style. When a LoRA's doing something you don't want - muddying a style you liked, or overpowering identity when you only wanted a pose - the fix isn't always "lower the strength," it's "turn off the blocks causing it." That's block-weight LoRA merging, and it's a real, if fiddly, technique people actually use - trial-and-error recipes for which blocks matter for what circulate on Reddit and Civitai for exactly this reason. FluxBlockLoraSelect is Kijai's node for doing it live, inside the graph, without a separate offline tool.
Every block defaults to 0, meaning off - you have to explicitly dial in the ones you want to keep. That's the opposite of most LoRA controls, so it catches people out.
How it works
The node exposes one float slider per block - double_blocks.0. through double_blocks.18., then single_blocks.0. through single_blocks.37. - each an independent alpha multiplier for that block's LoRA contribution. Set a block to 0 and its LoRA weights are effectively removed for that block; set it to 1 for the LoRA's normal strength there, or push past 1 to over-emphasize it. It bundles the whole selection into one blocks output that a LoRA loader elsewhere in your graph (or a compatible LoRA-loading node in this pack) reads to know which blocks to actually apply.
The inputs and outputs that matter
There isn't a small set of "the ones that matter" here - the node is 57 identical float widgets, one per block, each 0–1000 in steps of 0.01. In practice you're not tuning all 57; you're zeroing out the handful you suspect are the problem (or the handful you know from a specific LoRA's documented behavior) and leaving the rest at their default of 0 until you've confirmed which ones you want on.
The single output, blocks (type SELECTEDDITBLOCKS), carries that selection downstream to whatever LoRA loader in your Flux graph is set up to consume it.
How to install it
Via ComfyUI Manager: search "KJNodes for ComfyUI," install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-KJNodes
pip install -r ComfyUI-KJNodes/requirements.txt
then restart ComfyUI.
Common issues & troubleshooting
Everything defaults to 0 and nothing seems to happen. That's the trap mentioned above - a fresh node has every block off, which typically means the LoRA has effectively no effect until you turn blocks on. If your LoRA seems dead after adding this node, check you didn't forget to enable the blocks it actually needs.
It's genuinely trial and error. There's no universal map of "block N does X" that holds across every LoRA - behavior varies by what the LoRA was trained on. Expect to sweep a few blocks at a time, compare outputs at a fixed seed, and iterate, the same way people work with block-weight tools generally.
You can't easily export the result as a standalone LoRA file. This node adjusts blocks live, in-graph - it's not a bake-to-disk tool. If you need a portable, pre-merged LoRA file rather than a graph you re-run, you'll want a dedicated offline block-merging tool instead; this node's job is live experimentation, not export.
Inputs (57)
| Name | Type | Default | Description |
|---|---|---|---|
| double_blocks.0. | FLOAT | 0.000–1000 | — |
| double_blocks.1. | FLOAT | 0.000–1000 | — |
| double_blocks.2. | FLOAT | 0.000–1000 | — |
| double_blocks.3. | FLOAT | 0.000–1000 | — |
| double_blocks.4. | FLOAT | 0.000–1000 | — |
| double_blocks.5. | FLOAT | 0.000–1000 | — |
| double_blocks.6. | FLOAT | 0.000–1000 | — |
| double_blocks.7. | FLOAT | 0.000–1000 | — |
| double_blocks.8. | FLOAT | 0.000–1000 | — |
| double_blocks.9. | FLOAT | 0.000–1000 | — |
| double_blocks.10. | FLOAT | 0.000–1000 | — |
| double_blocks.11. | FLOAT | 0.000–1000 | — |
| double_blocks.12. | FLOAT | 0.000–1000 | — |
| double_blocks.13. | FLOAT | 0.000–1000 | — |
| double_blocks.14. | FLOAT | 0.000–1000 | — |
| double_blocks.15. | FLOAT | 0.000–1000 | — |
| double_blocks.16. | FLOAT | 0.000–1000 | — |
| double_blocks.17. | FLOAT | 0.000–1000 | — |
| double_blocks.18. | FLOAT | 0.000–1000 | — |
| single_blocks.0. | FLOAT | 0.000–1000 | — |
| single_blocks.1. | FLOAT | 0.000–1000 | — |
| single_blocks.2. | FLOAT | 0.000–1000 | — |
| single_blocks.3. | FLOAT | 0.000–1000 | — |
| single_blocks.4. | FLOAT | 0.000–1000 | — |
| single_blocks.5. | FLOAT | 0.000–1000 | — |
| single_blocks.6. | FLOAT | 0.000–1000 | — |
| single_blocks.7. | FLOAT | 0.000–1000 | — |
| single_blocks.8. | FLOAT | 0.000–1000 | — |
| single_blocks.9. | FLOAT | 0.000–1000 | — |
| single_blocks.10. | FLOAT | 0.000–1000 | — |
| single_blocks.11. | FLOAT | 0.000–1000 | — |
| single_blocks.12. | FLOAT | 0.000–1000 | — |
| single_blocks.13. | FLOAT | 0.000–1000 | — |
| single_blocks.14. | FLOAT | 0.000–1000 | — |
| single_blocks.15. | FLOAT | 0.000–1000 | — |
| single_blocks.16. | FLOAT | 0.000–1000 | — |
| single_blocks.17. | FLOAT | 0.000–1000 | — |
| single_blocks.18. | FLOAT | 0.000–1000 | — |
| single_blocks.19. | FLOAT | 0.000–1000 | — |
| single_blocks.20. | FLOAT | 0.000–1000 | — |
| single_blocks.21. | FLOAT | 0.000–1000 | — |
| single_blocks.22. | FLOAT | 0.000–1000 | — |
| single_blocks.23. | FLOAT | 0.000–1000 | — |
| single_blocks.24. | FLOAT | 0.000–1000 | — |
| single_blocks.25. | FLOAT | 0.000–1000 | — |
| single_blocks.26. | FLOAT | 0.000–1000 | — |
| single_blocks.27. | FLOAT | 0.000–1000 | — |
| single_blocks.28. | FLOAT | 0.000–1000 | — |
| single_blocks.29. | FLOAT | 0.000–1000 | — |
| single_blocks.30. | FLOAT | 0.000–1000 | — |
| single_blocks.31. | FLOAT | 0.000–1000 | — |
| single_blocks.32. | FLOAT | 0.000–1000 | — |
| single_blocks.33. | FLOAT | 0.000–1000 | — |
| single_blocks.34. | FLOAT | 0.000–1000 | — |
| single_blocks.35. | FLOAT | 0.000–1000 | — |
| single_blocks.36. | FLOAT | 0.000–1000 | — |
| single_blocks.37. | FLOAT | 0.000–1000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| blocks | SELECTEDDITBLOCKS | The modified diffusion model. |