HY OmniWeaving UNet Loader
The Hy OmniWeaving UNet loader that fixes the q/k/v key mismatch
- MODEL
If you try to load an HY-OmniWeaving diffusion checkpoint with the stock UNETLoader, you get an ugly pile of unexpected key warnings and - depending on the file - a model that silently doesn't work. That's because Tencent's OmniWeaving checkpoints store attention weights as separate img_attn_q/k/v and txt_attn_q/k/v tensors, while stock ComfyUI's HunyuanVideo 1.5 path expects them fused as qkv. This node exists to bridge that gap.
HY-OmniWeaving is Tencent's April 2026 reason-then-generate video model: a fine-tune of HunyuanVideo 1.5 with a Qwen2.5-VL MLLM in front that parses your prompt and reference frames, then forwards hidden states into the diffusion transformer through an mm_in MLP connector. The official pipeline wants eight GPUs. This pack is the community's ComfyUI extraction lane - it keeps sampling, CFG, and VRAM management on stock nodes and reimplements only the OmniWeaving-specific bits. The UNet loader is one of those bits.
How it works
Under the hood, HY OmniWeaving UNet Loader does three jobs:
- Attention-key fusion. It scans the state dict for split
img_attn_q/k/vandtxt_attn_q/k/vtensors inside eachdouble_blockslayer andtorch.cats them into theqkvlayout ComfyUI's transformer expects. Withstrict_modeon (the default), a partially-fused checkpoint raises an error instead of loading a half-broken model - flip it off only if you know what you're doing and want it to limp along. mm_inextraction and attachment. OmniWeaving'smm_inconnector weights are present in the checkpoint but stock ComfyUI ignores them (that's what theunet unexpected: ['mm_in...']diagnostic warning means). The loader pulls them out, attaches them to the model, and registers the deepstack-style wrapper that lets the diffusion model accept projected hidden states.- Weight dtype control.
weight_dtypedefaults todefault, but you can forcefp8_e4m3fnorfp8_e4m3fn_fast(adds the fp8-optimization path) orfp8_e5m2. The README's blessed checkpoint is already thefp8_e4m3fn_patchedbuild, so most people leave this alone.
The inputs that matter
Only two things actually matter for a beginner:
- unet_name - pick the OmniWeaving transformer from your
models/diffusion_modelsfolder. The pack assumes it's namedhy_omniweaving_hunyuanvideo15_transformer_fp8_e4m3fn_patched.safetensors. - strict_mode - leave it on.
The single MODEL output wires straight into your KSampler, exactly like a stock UNet loader's.
Installing it
This node ships in the hy_omniweaving_comfyui_unofficial pack. ComfyUI Manager: search "hy_omniweaving" and install, or clone it manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Shiba-2-shiba/hy_omniweaving_comfyui_unofficial
Then restart ComfyUI. The pack has no extra pip dependencies - requirements.txt is effectively empty - but it does need a recent ComfyUI checkout because it registers through the newer comfy_entrypoint extension API, not the old NODE_CLASS_MAPPINGS mechanism. The model files come from HuggingFace; the exact download mapping is in the pack README (Shiba-2-shiba's FP8-patched repo, plus the tencent/HY-OmniWeaving and vafipas663/HY-OmniWeaving_repackaged repos).
Common issues
- "unet unexpected: ['mm_in...']" in the console - that's expected and harmless; it's the stock loader saying it doesn't know
mm_in.*. That's precisely why this node exists. Don't panic, don't go hunting for another loader. - "Failed to load HY-OmniWeaving diffusion model" - you pointed it at a non-OmniWeaving Hunyuan 1.5 file, or the checkpoint name differs from the validated workflow's. Use the exact filename in the README.
- Strict mode errors about partial attention tensors - the file is a half-fused build; grab the FP8-patched checkpoint the README links.
One honest heads-up from the community: OmniWeaving is slow even on an RTX 6000, and wants CFG plus 30–50 steps to look right. The loader is the easy part. Give yourself time on the sampling side.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| unet_name | COMBO | 0 options: | |
| weight_dtype | COMBO | default | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
| strict_mode | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |