Selective LoRA Loader (MiniMax H3)
50 checkboxes for your MiniMax H3 LoRA, no analysis needed
- model
- clip
- model
- clip
- info
- weights_output
The plain selective loader from the ShootTheSound/comfyUI-Realtime-Lora pack ("Realtime LoRA Trainer"), aimed at MiniMax H3. If you already know which DiT blocks are causing trouble in your H3 LoRA - or you just want the fastest way to experiment - this is the no-frills version: 50 toggles and 50 strength sliders, nothing else in the way. The fancier MiniMax H3 Analyzer + Selective Loader V2 from the same pack throws in impact analysis and strength scheduling, but you don't always need the surgical instruments.
MiniMax H3 is a 33B omni-modal model that does text, image, video and audio in one context, and its LoRAs are correspondingly sprawling. LoRA effect isn't spread evenly through a model - some blocks learn the subject, some the style, some mostly artifacts - so being able to mute individual blocks is a legitimate fix for a LoRA that's 90% there. H3's main packed DiT blocks run 0–49 (early 0–12, middle 13–37, late 38–49), and the token-refiner plus any other non-block H3 tensors are corralled under one other_weights control.
How it works
The node loads the LoRA file from models/loras, maps each tensor to a block number, keeps only the enabled blocks at their per-block strength, and hands the filtered result to ComfyUI's stock LoRA loader. Two details make it H3-robust:
- It understands both key formats H3 LoRAs arrive in - the native
diffusion_model.blocks.*keys and thelora_unet_blocks_*keys from the training tools - so a LoRA trains and loads without conversion gymnastics. - When you scale a block it scales only the "up" factor, because ComfyUI multiplies the two LoRA factors together at load time. Scaling one factor keeps the strength linear and signed, so a 0.5 slider means half, not a quarter, and negative strengths behave like you'd expect.
Inputs that matter
- model and clip - from your checkpoint and text encoder loaders, same wiring as the stock LoraLoader.
- preset -
All Blocksby default; the presets (Late Only (38-49),Mid-Late (25-49),Skip Early (13-49), and so on) are one-click experiments.Customis where the individual toggles kick in. - analysis_json - optional, but plug in the pack's "LoRA Loader + Analyzer" output here and the checkboxes color-code by measured impact, which beats guessing.
- lora_path_opt - overrides the dropdown, handy after a fresh train.
Outputs are model, clip, and two strings: info (a running summary of what got loaded, enabled and scaled) and weights_output (the block profile if you want to reuse it elsewhere). Unusually for a V1 loader, this one also has optional save_refined_lora / save_path / save_filename inputs, so you can write the exact filtered LoRA it applied to disk.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/ShootTheSound/comfyUI-Realtime-Lora
Restart ComfyUI, or find "Realtime LoRA Trainer" in ComfyUI Manager. This is a loader, not a trainer, so it needs no extra installation - the training backends this pack is known for (sd-scripts, Musubi Tuner, AI-Toolkit) are only for the trainer nodes. The requirements file is effectively empty beyond ComfyUI's own dependencies.
Reality check
Before you spend a weekend on H3 LoRAs: the MiniMax H3 Community License excludes the US, EU, UK and South Korea from its Applicable Territory. If you're in one of those regions you're not licensed to run the local weights - no loader changes that. And it's a ~33B model; treat the pre-release "it runs on a 3060" talk as rumor, because no verified consumer hardware floor was published at release.
Where people get burned
- Disabling everything but
other_weightsproduces broken output. Disable in ranges. - A connected block_weights_string silently overrides every checkbox. Power-user feature, easy to trip over.
- All blocks off returns a warning string ("All blocks disabled, no LoRA applied") and passes the model through untouched - which is actually the correct behavior, just don't mistake it for a crash.
If you don't know which blocks matter yet, start with the V2 analyzer version of this node instead; it'll tell you. Once you know, this is the one you'll actually leave in the workflow.
Inputs (113)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | COMBO | MiniMax H3 LoRA file to load | |
| strength | FLOAT | 1.00-5–5 | Overall LoRA strength |
| preset | COMBO | All Blocks | Quick preset selection. Choose 'Custom' to use individual toggles below. |
| block_0 | BOOLEAN | true | — |
| block_0_str | FLOAT | 1.00-5–5 | — |
| block_1 | BOOLEAN | true | — |
| block_1_str | FLOAT | 1.00-5–5 | — |
| block_2 | BOOLEAN | true | — |
| block_2_str | FLOAT | 1.00-5–5 | — |
| block_3 | BOOLEAN | true | — |
| block_3_str | FLOAT | 1.00-5–5 | — |
| block_4 | BOOLEAN | true | — |
| block_4_str | FLOAT | 1.00-5–5 | — |
| block_5 | BOOLEAN | true | — |
| block_5_str | FLOAT | 1.00-5–5 | — |
| block_6 | BOOLEAN | true | — |
| block_6_str | FLOAT | 1.00-5–5 | — |
| block_7 | BOOLEAN | true | — |
| block_7_str | FLOAT | 1.00-5–5 | — |
| block_8 | BOOLEAN | true | — |
| block_8_str | FLOAT | 1.00-5–5 | — |
| block_9 | BOOLEAN | true | — |
| block_9_str | FLOAT | 1.00-5–5 | — |
| block_10 | BOOLEAN | true | — |
| block_10_str | FLOAT | 1.00-5–5 | — |
| block_11 | BOOLEAN | true | — |
| block_11_str | FLOAT | 1.00-5–5 | — |
| block_12 | BOOLEAN | true | — |
| block_12_str | FLOAT | 1.00-5–5 | — |
| block_13 | BOOLEAN | true | — |
| block_13_str | FLOAT | 1.00-5–5 | — |
| block_14 | BOOLEAN | true | — |
| block_14_str | FLOAT | 1.00-5–5 | — |
| block_15 | BOOLEAN | true | — |
| block_15_str | FLOAT | 1.00-5–5 | — |
| block_16 | BOOLEAN | true | — |
| block_16_str | FLOAT | 1.00-5–5 | — |
| block_17 | BOOLEAN | true | — |
| block_17_str | FLOAT | 1.00-5–5 | — |
| block_18 | BOOLEAN | true | — |
| block_18_str | FLOAT | 1.00-5–5 | — |
| block_19 | BOOLEAN | true | — |
| block_19_str | FLOAT | 1.00-5–5 | — |
| block_20 | BOOLEAN | true | — |
| block_20_str | FLOAT | 1.00-5–5 | — |
| block_21 | BOOLEAN | true | — |
| block_21_str | FLOAT | 1.00-5–5 | — |
| block_22 | BOOLEAN | true | — |
| block_22_str | FLOAT | 1.00-5–5 | — |
| block_23 | BOOLEAN | true | — |
| block_23_str | FLOAT | 1.00-5–5 | — |
| block_24 | BOOLEAN | true | — |
| block_24_str | FLOAT | 1.00-5–5 | — |
| block_25 | BOOLEAN | true | — |
| block_25_str | FLOAT | 1.00-5–5 | — |
| block_26 | BOOLEAN | true | — |
| block_26_str | FLOAT | 1.00-5–5 | — |
| block_27 | BOOLEAN | true | — |
| block_27_str | FLOAT | 1.00-5–5 | — |
| block_28 | BOOLEAN | true | — |
| block_28_str | FLOAT | 1.00-5–5 | — |
| block_29 | BOOLEAN | true | — |
| block_29_str | FLOAT | 1.00-5–5 | — |
| block_30 | BOOLEAN | true | — |
| block_30_str | FLOAT | 1.00-5–5 | — |
| block_31 | BOOLEAN | true | — |
| block_31_str | FLOAT | 1.00-5–5 | — |
| block_32 | BOOLEAN | true | — |
| block_32_str | FLOAT | 1.00-5–5 | — |
| block_33 | BOOLEAN | true | — |
| block_33_str | FLOAT | 1.00-5–5 | — |
| block_34 | BOOLEAN | true | — |
| block_34_str | FLOAT | 1.00-5–5 | — |
| block_35 | BOOLEAN | true | — |
| block_35_str | FLOAT | 1.00-5–5 | — |
| block_36 | BOOLEAN | true | — |
| block_36_str | FLOAT | 1.00-5–5 | — |
| block_37 | BOOLEAN | true | — |
| block_37_str | FLOAT | 1.00-5–5 | — |
| block_38 | BOOLEAN | true | — |
| block_38_str | FLOAT | 1.00-5–5 | — |
| block_39 | BOOLEAN | true | — |
| block_39_str | FLOAT | 1.00-5–5 | — |
| block_40 | BOOLEAN | true | — |
| block_40_str | FLOAT | 1.00-5–5 | — |
| block_41 | BOOLEAN | true | — |
| block_41_str | FLOAT | 1.00-5–5 | — |
| block_42 | BOOLEAN | true | — |
| block_42_str | FLOAT | 1.00-5–5 | — |
| block_43 | BOOLEAN | true | — |
| block_43_str | FLOAT | 1.00-5–5 | — |
| block_44 | BOOLEAN | true | — |
| block_44_str | FLOAT | 1.00-5–5 | — |
| block_45 | BOOLEAN | true | — |
| block_45_str | FLOAT | 1.00-5–5 | — |
| block_46 | BOOLEAN | true | — |
| block_46_str | FLOAT | 1.00-5–5 | — |
| block_47 | BOOLEAN | true | — |
| block_47_str | FLOAT | 1.00-5–5 | — |
| block_48 | BOOLEAN | true | — |
| block_48_str | FLOAT | 1.00-5–5 | — |
| block_49 | BOOLEAN | true | — |
| block_49_str | FLOAT | 1.00-5–5 | — |
| other_weights | BOOLEAN | true | — |
| other_weights_str | FLOAT | 1.00-5–5 | — |
| lora_path_optopt | STRING | Optional: Connect from LoRA Analyzer to use its selected LoRA | |
| analysis_jsonopt | STRING | Optional: Connect from LoRA Analyzer for impact-colored checkboxes | |
| block_weights_stringopt | STRING | Optional positional or named block profile. A connected string overrides the individual controls. | |
| save_refined_loraopt | BOOLEAN | false | Save the exact filtered/scaled LoRA applied by this node. |
| save_pathopt | STRING | Directory where the filtered LoRA will be saved. | |
| save_filenameopt | STRING | Base filename. A timestamp and .safetensors are added automatically. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| info | STRING | — |
| weights_output | STRING | — |