Model Patch Loader
Loading ControlNet-style patches for Qwen and Z-Image
- MODEL_PATCH
This node doesn't do anything on its own - it's a loader for a category of file that doesn't fit neatly into "checkpoint" or "LoRA": model patches. Think ControlNet for the newer DiT architectures, or a feature-projection adapter, packaged as a single .safetensors or .ckpt you drop into ComfyUI's model_patches folder. If you've used ControlNet on SD 1.5 or SDXL, the concept transfers, but the mechanics don't - on UNet-era models ControlNet works by duplicating encoder blocks and adding their output back into the frozen model's skip connections. FLUX, Qwen-Image, Z-Image and friends are DiT architectures with no UNet encoder to duplicate, so their control mechanisms get re-implemented against attention and MLP layers instead, and every architecture needs a version trained specifically for it. That's exactly the gap this node is loading files into.
It currently auto-detects and supports three model types, purely by inspecting the state dict keys in the file you point it at - you don't pick a type yourself:
- QwenImageBlockWiseControlNet - structural conditioning for Qwen-Image, ComfyUI's version of the union ControlNets the ecosystem ported to every 2025/2026 base within days of release.
- SigLIPMultiFeatProjModel - a multi-feature projection model, used for pulling style/reference features out of an image rather than spatial structure.
- ZImage_Control - the Z-Image-format equivalent, for controlling Z-Image generations the same way.
The two inputs are simple: name picks the file from your model_patches folder (the dropdown is empty until you actually have one there - this node has no bundled patches), and cpu_offload (default on) decides whether the patch loads into system RAM instead of VRAM. Leave it on if you're VRAM-constrained and the patch isn't the bottleneck for speed; turn it off if you've got headroom and want the fastest path. The tradeoff is the usual one - CPU-resident weights are cheap on VRAM and slower to use, since ComfyUI has to shuttle data across PCIe rather than keep it local to the GPU. The single output is MODEL_PATCH, which is its own type - it does not feed into a KSampler directly, it wires into whatever downstream node in your workflow is built to consume a model patch (a Qwen-Image or Z-Image control-application node elsewhere in your graph).
Installing it: this node ships as part of the whole pack, so there's no separate install - through ComfyUI Manager, search "ComfyUI-NunchakuFluxLoraStacker," or:
cd ComfyUI/custom_nodes
git clone https://github.com/ussoewwin/ComfyUI-NunchakuFluxLoraStacker.git
Restart ComfyUI. What you actually need beyond the clone is the model patch file itself, downloaded separately and placed in ComfyUI/models/model_patches/ - this node loads files, it doesn't fetch them for you.
Where this trips people up: an empty name dropdown almost always means the folder is missing or the file landed in the wrong place - check for models/model_patches/ specifically, since a .safetensors sitting in models/controlnet/ (the natural instinct if you're used to SD-era ControlNet) won't show up here. Beyond that, auto-detection means a corrupted or unrelated safetensors file will fail ungracefully rather than tell you which of the three types it expected - if loading errors out, the first thing worth checking is that the file is actually one of the three supported model types and not a plain ControlNet or LoRA mislabeled as a patch.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| name | COMBO | 0 options: | |
| cpu_offload | BOOLEAN | true | Load model to CPU (main memory). Does not use VRAM. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL_PATCH | MODEL_PATCH | — |