Hunyuan Video LoRA Loader
The LoRA loader that keeps Hunyuan Video sharp when you stack LoRAs
- model
- model
Stack two or three LoRAs on Hunyuan Video with the stock ComfyUI loader and the output goes soft, artifacty, washed-out. This node exists because that problem is real and specific, and its fix is a dropdown: load the LoRA on the double_blocks only, and the contamination mostly goes away.
Hunyuan Video LoRA Loader (class HunyuanVideoLoraLoader, one of a one-node pack from facok) is a drop-in replacement for ComfyUI's ordinary LoraLoaderModelOnly, built for Hunyuan Video's transformer. Same wiring, same MODEL in → MODEL out, one extra input on top. It's the load step a "skyreels + character + style" Hunyuan workflow reaches for instead of the default.
Why it exists
Hunyuan's 13B transformer is built from two families of blocks, and the LoRA weight keys literally carry their names: double_blocks (the dual-stream blocks where text and image attend separately) and single_blocks (the fused ones). The stock loader slaps every LoRA patch onto every block. Do that with several LoRAs and they fight over the same weights - the "multiple LoRAs degrade quality" complaints from the Hunyuan days, in thread after thread. The author's fix is to stop patching blocks you don't need.
The README's whole usage note is one sentence: connection is unchanged, just pick double_blocks. Kijai (of the HunyuanVideoWrapper that most Hunyuan workflows actually run on) recommended exactly this node for "some benefit limiting the blocks loaded," and the people who use it confirm: character on the double blocks, everything else dialed down, and the blur stops.
How it works
Mechanically it's four steps in lora_loader.py:
- Loads the LoRA file once and caches it per node instance, so reruns don't re-read the weights from disk.
- Musubi-format conversion. Most Hunyuan LoRAs are trained with musubi-tuner, which writes keys as
lora_unet_...with a separatealphatensor and a different naming scheme. The node detects that format, rewrites the keys to the diffusers-stylediffusion_model.naming Hunyuan expects, and scales byalpha- so a musubi-trained LoRA loads correctly without you converting it by hand. - Filters the keys against your
blocks_typechoice, keeping only the block family you asked for. - Hands the filtered, converted dict to ComfyUI's
load_lora_for_modelswith your strength.
IS_CHANGED keys on lora_name + strength + blocks_type, so tweaking any of them re-patches without a full reload.
The inputs that matter
- model - your loaded Hunyuan
MODEL(Unet/diffusion model). Wire from your model loader. - lora_name - dropdown of everything in
ComfyUI/models/loras/. - strength - default
1.0, range-10to10. Dial back to0.5–0.8when a second LoRA is fighting the first. - blocks_type - the whole point.
all= stock behavior (blurry, don't).double_blocks= the author's recommendation, everything withdouble_blocksin the key.single_blocks= fused-block-only, for the rare LoRA trained that way.db0-9/db10-19= double blocks with layer index in that range only - handy when you want to park a character LoRA on the later blocks and a style on the earlier ones.
Output: model, the patched MODEL you feed onward to the sampler. That's it.
Install
No dependencies beyond ComfyUI itself - this pack is a single Python file, no requirements.txt, no model downloads. LoRAs just live in models/loras as usual.
- ComfyUI Manager: search ComfyUI-HunyuanVideoMultiLora, install, restart.
- Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/facok/ComfyUI-HunyuanVideoMultiLora
Restart ComfyUI and the node appears under loaders/hunyuan (or search "Hunyuan Video LoRA Loader").
Where people get burned
- Leaving it on
all. The default is the stock behavior you installed the node to escape. Setdouble_blocksand leave it. - "It doesn't load." A few reports of the node failing to appear or load - usual suspects: ComfyUI not restarted after install, or the pack not updated through Manager. Delete the folder, re-clone, restart.
- Still blurry with three LoRAs. Some degradation is the model itself, not the loader. The community fix is block choreography: character LoRA on
db10-19, style ondb0-9ordouble_blocks, then tune each strength one at a time instead of stacking at full weight. - Wrong LoRA format. If your LoRA's keys are neither musubi nor diffusers style, the filter silently keeps nothing and you get an unpatched model. Check the keys in a LoRA viewer before blaming the node.
One honest footnote: Hunyuan Video's ecosystem faded hard through 2026 - Wan's LoRA scene won. But if you're still on Hunyuan or FramePack (which builds on it), this is the loader to use, and it's the one the wrapper's author points at.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| lora_name | COMBO | 0 options: | |
| strength | FLOAT | 1.00-10–10 | — |
| blocks_type | COMBO | 5 options: all, single_blocks, double_blocks, db0-9, db10-19 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |