LoRA Block Weight Batch (Qwen-Image)
The all-in-one block sweep for Qwen-Image
- model
- vae
- positive
- negative
- latent_image
- images
- info
- blocks_used
- values_used
This is the workhorse of the LoraBlockWeight pack - the node that does the full experiment with no external orchestration. Where the single-block Qwen node needs an XY Plot from Efficiency Nodes to sweep, LoRA Block Weight Batch (Qwen-Image) loops over every (block, value) pair internally, samples each one, and hands you a single batched IMAGE. If you want to know which of Qwen-Image's 60 transformer blocks actually carry a LoRA, this is the node that answers it.
That's a lot of renders, and the README doesn't sugarcoat it. A full sweep is 60 blocks × 5 values = 300 images at 768×768. Qwen spreads a LoRA's signal further than FLUX does - the pack's own demo measured a 24× ratio between its top- and bottom-impact blocks - so the ranking you get out of here is the whole point. Block B29 and its neighbours carry the modern-anime style; a dozen blocks at the bottom contribute nothing visible.
How it works
The node is the full pipeline: it loads the LoRA once, then for every combination it clones the model, patches just that block's strength (everything else sits at baseline_weight), samples with your sampler settings, VAE-decodes, and stacks the results into one IMAGE tensor. It also returns three strings - info, blocks_used, and values_used - which feed straight into the pack's Save Grid node to render a labeled grid (block names on one axis, strengths on the other). No XY Plot required, which is the whole pitch.
The inputs that matter
- block_list - comma-separated block tags, defaulting to all 60 (
B00–B59). The tooltip's advice is worth taking: trim this for a faster first round. You don't need all 60 blocks at 5 values to find the active neighbourhood; a sparse 10–12 block first pass is how the pack's USAGE guide skips straight past the 300-image grind. - value_list - comma-separated strengths, default
0,0.25,0.5,0.75,1.0.0is the knockout point that the MSE analysis uses to rank impact. - baseline_weight -
1.0for knock-out mode (the sweep's default),0.0for solo mode.
The rest (seed, steps, cfg, sampler_name, scheduler, denoise, model, vae, lora_name, positive, negative, latent_image) are the sampler knobs you already know.
Installing it
ComfyUI Manager → search LoraBlockWeight, or:
cd <ComfyUI>/custom_nodes
git clone https://github.com/Baldwinzc/ComfyUI-LoraBlockWeight.git
Restart and it's under the LoraBlockWeight category. No model downloads, no extra pip dependencies.
The two gotchas worth remembering
First, because the batch node encodes conditioning upstream, the LoRA's CLIP-side effect is not applied - this patches the transformer only. If your Qwen LoRA's power lives partly in the text encoder, use a regular loader and the single-block node instead. Second, this is a sweeper, not a tuner. It's the right tool for producing the ranking; once you know the blocks, the Custom variant is where you lock in the recipe. And budget for the render time before you hit run - 300 images on a 20B model is a coffee break, minimum.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| vae | VAE | — | |
| lora_name | COMBO | 0 options: | |
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| latent_image | LATENT | — | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 251–10000 | — |
| cfg | FLOAT | 1.00–100 | — |
| sampler_name | COMBO | euler | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| scheduler | COMBO | simple | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 |
| denoise | FLOAT | 1.000–1 | — |
| block_list | STRING | B00,B01,B02,B03,B04,B05,B06,B07,B08,B09,B10,B11,B12,B13,B14,B15,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31,B32,B33,B34,B35,B36,B37,B38,B39,B40,B41,B42,B43,B44,B45,B46,B47,B48,B49,B50,B51,B52,B53,B54,B55,B56,B57,B58,B59 | Comma-separated block tags. Defaults to all 60 (B00..B59). Trim for faster first round. |
| value_list | STRING | 0,0.25,0.5,0.75,1.0 | Comma-separated strength values. |
| baseline_weight | FLOAT | 1.000–2 | Knock-out: 1.0. Solo: 0.0. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| info | STRING | — |
| blocks_used | STRING | — |
| values_used | STRING | — |