Nunchaku Qwen Image LoRA Stack V2
The LoRA stack with the AWQ modulation toggle
- model
- MODEL
V2 is the version where the experimental AWQ modulation support first showed up as a switch you control. If that phrase means nothing yet, it's the whole reason this node exists as a separate version, so let's start there. It's a multi-LoRA stacker for Nunchaku-quantized Qwen-Image, dynamic UI, and it's compatible with ComfyUI's Nodes 2.0 (beta) canvas, which V1 wasn't.
Context in one breath: Nunchaku (MIT HAN Lab's SVDQuant engine) runs Alibaba's 20B Qwen-Image in 4-bit so it fits on real hardware, and stock LoRA loaders can't touch those quantized weights. This pack makes LoRAs work on them.
The AWQ modulation thing, explained
When Nunchaku quantizes the model, it AWQ-quantizes the modulation layers specifically, the img_mod.1 and txt_mod.1 layers. Those layers control how the model scales and shifts its activations, and when the pack tried to apply LoRA weights to them the naive way, the result was visible noise in the image. The fix is a runtime monkey-patch the author calls "Manual Planar Injection," and V2 is where it's exposed as an opt-in toggle. It's flagged experimental: if it's clean, the plan is to fold it into the other versions too (V3 already turns it on permanently). So V2 is the node where you get to A/B it yourself, on versus off, and see whether it helps your particular LoRA.
The inputs and outputs that matter
- model (MODEL) - your Nunchaku Qwen-Image model.
- lora_count (1–10, default 3) - how many LoRA rows to show.
- cpu_offload (
auto/enable/disable, defaultdisable) - offload to RAM for VRAM headroom. - apply_awq_mod (default false) - the experimental toggle above. Off by default here. Flip it on if you're seeing modulation-related noise or you just want to test the fuller LoRA application.
- lora_name_1 … lora_name_10 and lora_strength_1 … lora_strength_10 - the per-slot file and strength. Default strength 1.0; set a name to
Noneto skip a slot.
Output is a single patched MODEL for your sampler.
Installing it
Ships with the pack. ComfyUI Manager, search, install, restart, or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/ussoewwin/ComfyUI-QwenImageLoraLoader
then restart. You still need the official ComfyUI-nunchaku plugin installed and working underneath it, and a Nunchaku Qwen model downloaded. Nunchaku's wheel has to match your PyTorch and CUDA versions, which is the one genuinely finicky step, so sort that before adding this. Python 3.11+.
Where people get burned
apply_awq_modis experimental for a reason. If enabling it changes your output in a way you don't like, turn it back off, that's exactly why it's a switch and not baked in. It's the newest and least-settled part of the node.- Only Standard and PEFT LoRAs apply. LoKR, LoHa and IA3 are silently skipped on Nunchaku. A row that does nothing is usually a wrong-format LoRA, not a broken node.
- Lightning-on-lightning gives black images. If your Nunchaku model already bakes in a 4-step lightning distillation, don't stack another lightning LoRA on top. And if you get black frames with none of that going on, try disabling SageAttention and any torch.compile node at startup, they're a known cause of black-image runs on this stack.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model to apply LoRAs to. | |
| lora_count | INT | 31–10 | Number of LoRA slots to process. |
| cpu_offload | COMBO | disable | CPU offload setting. 'auto' enables offload when VRAM is low, 'enable' forces offload, 'disable' disables offload. |
| apply_awq_mod | BOOLEAN | false | Force enable LoRA application to AWQ modulation layers (img_mod/txt_mod). May cause noise in some cases, but required for style LoRAs like Flat Color. |
| lora_name_1opt | COMBO | The file name of LoRA 1. Select 'None' to skip this slot. | |
| lora_strength_1opt | FLOAT | 1.00-100–100 | Strength for LoRA 1. |
| lora_name_2opt | COMBO | The file name of LoRA 2. Select 'None' to skip this slot. | |
| lora_strength_2opt | FLOAT | 1.00-100–100 | Strength for LoRA 2. |
| lora_name_3opt | COMBO | The file name of LoRA 3. Select 'None' to skip this slot. | |
| lora_strength_3opt | FLOAT | 1.00-100–100 | Strength for LoRA 3. |
| lora_name_4opt | COMBO | The file name of LoRA 4. Select 'None' to skip this slot. | |
| lora_strength_4opt | FLOAT | 1.00-100–100 | Strength for LoRA 4. |
| lora_name_5opt | COMBO | The file name of LoRA 5. Select 'None' to skip this slot. | |
| lora_strength_5opt | FLOAT | 1.00-100–100 | Strength for LoRA 5. |
| lora_name_6opt | COMBO | The file name of LoRA 6. Select 'None' to skip this slot. | |
| lora_strength_6opt | FLOAT | 1.00-100–100 | Strength for LoRA 6. |
| lora_name_7opt | COMBO | The file name of LoRA 7. Select 'None' to skip this slot. | |
| lora_strength_7opt | FLOAT | 1.00-100–100 | Strength for LoRA 7. |
| lora_name_8opt | COMBO | The file name of LoRA 8. Select 'None' to skip this slot. | |
| lora_strength_8opt | FLOAT | 1.00-100–100 | Strength for LoRA 8. |
| lora_name_9opt | COMBO | The file name of LoRA 9. Select 'None' to skip this slot. | |
| lora_strength_9opt | FLOAT | 1.00-100–100 | Strength for LoRA 9. |
| lora_name_10opt | COMBO | The file name of LoRA 10. Select 'None' to skip this slot. | |
| lora_strength_10opt | FLOAT | 1.00-100–100 | Strength for LoRA 10. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | The modified diffusion model with all LoRAs applied. |