Nodes/ComfyUI Smart Helper Nodes/Smart Dual Model Loader
ComfyUI Node

Smart Dual Model Loader

Load both Wan 2.2 noise models at once, with a name summary thrown in

By slvslvslv·Created 2 years ago·Updated 7 days ago· 3
Smart Dual Model Loader
    • model_1
    • model_2
    • model_names
    gguffalse
    unet_name_1
    unet_name_2
    weight_dtype
    gguf_name_1
    gguf_name_2

    If you're running Wan 2.2, you need two diffusion models - a high-noise model for motion and composition, and a low-noise model for the fine detail pass. The stock way is two separate loaders and a couple of wires. Smart Dual Model Loader collapses that into one node that loads both, plus a model_names string that tells you exactly what you loaded.

    This is a Wan-shaped node wearing a general name. Wan 2.2's two-pass architecture is the reason a dual loader exists, and it's also why this pack cares about dual anything - see SmartLoadDoubleLoRA and the Mobius loop nodes. If you've never touched video, you can still use it to load any two diffusion models, but the intended audience is pretty clearly "Wan 2.2 14B person who is tired of the high/low loader dance."

    How it works

    You pick both models, flip one boolean, and it loads. In .safetensors mode it calls ComfyUI's standard load_diffusion_model for each, optionally casting to an fp8 dtype. In GGUF mode it hands off to city96's ComfyUI-GGUF UnetLoaderGGUF for both files - which is worth knowing, because it means GGUF mode isn't built in; it requires the ComfyUI-GGUF pack to be installed.

    The weight_dtype selector is your memory knob: default, fp8_e4m3fn, fp8_e4m3fn_fast, or fp8_e5m2. The community consensus on fp8 for video is basically "just use it" - half the VRAM, near-invisible quality cost - and for 14B video models on consumer cards it's often the difference between running and not running. fp8_e4m3fn is the one you'll actually pick.

    The inputs that matter

    • gguf - false for .safetensors, true for .gguf files (switches which model dropdowns apply).
    • unet_name_1 / unet_name_2 - the two models from diffusion_models.
    • gguf_name_1 / gguf_name_2 - the two .gguf files, active when gguf is on.
    • weight_dtype - fp8 casting for safetensors mode.

    Outputs: model_1, model_2 (MODEL) and model_names (STRING) - a plain two-line summary. Wire the models into your two KSampler passes and log model_names to a SmartSaveText if you want a record of which weights a render used.

    Installing it

    Part of SmartHelperNodes; install the pack once:

    cd ComfyUI/custom_nodes
    git clone https://github.com/slvslvslv/ComfyUI-SmartHelperNodes
    

    Restart ComfyUI (or ComfyUI Manager → "SmartHelperNodes"). The pack itself has no pip dependencies. But if you plan to use the gguf toggle, install city96's ComfyUI-GGUF separately - this node detects it on the fly and raises a clear error telling you to go get it if it's missing.

    Common issues

    The predictable trap: flip gguf on without ComfyUI-GGUF installed and the node refuses to load - that's the error telling you to install it, not a bug. The subtler one is memory: loading two 14B-class models, even fp8, is a real VRAM ask. ComfyUI's model management will offload between passes, but if you're on a 12GB card, expect swap-like stalls; Q5/Q8 GGUFs are the accepted compromise for video on constrained hardware. And keep weight_dtype on default if you're not sure - fp8 is great, but it's a deliberate choice, not a default you should trip over.

    CategorySmartHelperNodes

    Inputs (6)

    NameTypeDefaultDescription
    ggufBOOLEANfalse
    unet_name_1COMBO0 options:
    unet_name_2COMBO0 options:
    weight_dtypeCOMBO4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2
    gguf_name_1COMBO0 options:
    gguf_name_2COMBO0 options:

    Outputs (3)

    NameTypeDescription
    model_1MODEL
    model_2MODEL
    model_namesSTRING