Smart Dual Model Loader
Load both Wan 2.2 noise models at once, with a name summary thrown in
- model_1
- model_2
- model_names
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.gguffiles (switches which model dropdowns apply).unet_name_1/unet_name_2- the two models fromdiffusion_models.gguf_name_1/gguf_name_2- the two.gguffiles, active whenggufis 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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| gguf | BOOLEAN | false | — |
| unet_name_1 | COMBO | 0 options: | |
| unet_name_2 | COMBO | 0 options: | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 | |
| gguf_name_1 | COMBO | 0 options: | |
| gguf_name_2 | COMBO | 0 options: |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| model_1 | MODEL | — |
| model_2 | MODEL | — |
| model_names | STRING | — |