LoRA Block Weight Batch (SD3.5 Large)
The 190-image block sweep that tells you what an SD3.5 LoRA is made of
- model
- vae
- positive
- negative
- latent_image
- images
- info
- blocks_used
- values_used
SD3.5 Large is the niche pick of the diffusion-transformer world - a competent 8B MMDiT whose architecture won even as the ecosystem around it never formed. If you're one of the people who actually runs it, you know its LoRA situation is thinner than FLUX's and less forgiving: an overpowered anime LoRA can flatten a whole composition. LoRA Block Weight Batch (SD3.5 Large) is the pack's all-in-one diagnostic for that - it sweeps every one of SD3.5's 38 joint blocks at multiple strengths, samples each combination itself, and returns a labeled-ready grid. No XY Plot, no orchestration, one node.
The full sweep is 38 blocks × 5 values = 190 images, which is the cheapest full sweep in the pack and still a serious render job at 1024×1024. The payoff is the ranking: the README's SD3.5 demo found the most lopsided block distribution of the three architectures it covers - a 47× ratio between top and bottom impact blocks. The 12 lowest-MSE blocks knocked out together were visually indistinguishable from the full LoRA. Twelve dead-weight blocks. That's the finding this node exists to produce.
How it works
The node is the entire pipeline in a box. It loads the LoRA once, then for every (block, value) pair 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 returns info, blocks_used and values_used strings designed to feed the pack's Save Grid node, which renders the labeled comparison grid - block names down the side, strengths across the top. SD3.5's 38 blocks are tagged J00–J37, matching the MMDiT joint_blocks layout, each split into its text (context_block) and image (x_block) halves - the node treats each joint block as one unit.
The inputs that matter
- block_list - comma-separated tags, defaulting to all 38 (
J00–J37). Trim to a sparse first-round subset for a faster pass; the pack's USAGE guide suggests ~10–12 blocks instead of the full 190-image grind. - value_list - strengths to try, default
0,0.25,0.5,0.75,1.0. The0column is what the MSE impact analysis ranks on. - baseline_weight -
1.0(knock-out: others stay full, target varies) or0.0(solo: only the target runs).
Everything else - seed, steps, cfg, sampler_name, scheduler, denoise, plus model, vae, lora_name, positive, negative, latent_image - is the KSampler setup 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 files to download, no extra pip dependencies.
Two things to keep in mind
First, the batch node encodes conditioning before the LoRA is applied, so it only patches the transformer - the LoRA's text-encoder effect isn't included. Second, and this is the SD3.5-specific twist from the README's own demo: its joint blocks carry the LoRA signal redundantly, so a single top-group knockout softens the style but doesn't fully strip it. Don't expect the clean on/off you'd get on FLUX - and read any block ranking as one prompt's snapshot, not a permanent law. Budget the render time too: 190 images on an 8B model is a break, not a blink.
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 | J00,J01,J02,J03,J04,J05,J06,J07,J08,J09,J10,J11,J12,J13,J14,J15,J16,J17,J18,J19,J20,J21,J22,J23,J24,J25,J26,J27,J28,J29,J30,J31,J32,J33,J34,J35,J36,J37 | Comma-separated block tags. Defaults to all 38 (J00..J37). 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 | — |