Nodes/hy_omniweaving_comfyui_unofficial/HY OmniWeaving UNet Loader
ComfyUI Node

HY OmniWeaving UNet Loader

The Hy OmniWeaving UNet loader that fixes the q/k/v key mismatch

By Shiba-2-shiba·Created 5 months ago·Updated 4 months ago· 1
HY OmniWeaving UNet Loader
    • MODEL
    unet_name
    weight_dtypedefault
    strict_modetrue

    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:

    1. Attention-key fusion. It scans the state dict for split img_attn_q/k/v and txt_attn_q/k/v tensors inside each double_blocks layer and torch.cats them into the qkv layout ComfyUI's transformer expects. With strict_mode on (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.
    2. mm_in extraction and attachment. OmniWeaving's mm_in connector weights are present in the checkpoint but stock ComfyUI ignores them (that's what the unet 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.
    3. Weight dtype control. weight_dtype defaults to default, but you can force fp8_e4m3fn or fp8_e4m3fn_fast (adds the fp8-optimization path) or fp8_e5m2. The README's blessed checkpoint is already the fp8_e4m3fn_patched build, 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_models folder. The pack assumes it's named hy_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.

    Categoryadvanced/loaders

    Inputs (3)

    NameTypeDefaultDescription
    unet_nameCOMBO0 options:
    weight_dtypeCOMBOdefault4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    strict_modeBOOLEANtrue

    Outputs (1)

    NameTypeDescription
    MODELMODEL