Load VACE Module
Merge a VACE module into your Wan model in one node
- MODEL
VACE - Alibaba's official video-to-video, inpainting, and reference-to-video framework built for Wan - doesn't ship as a LoRA you can just bolt onto a checkpoint at low weight. It's a separate module that has to be merged into the base Wan diffusion model before you can sample with it, which normally means a base model loader plus a separate merge step wired together. Load VACE Module collapses that into one node: pick your base Wan model and your VACE module, and it hands you back a single, ready-to-sample MODEL output.
VACE earned its hype honestly - threads like "VACE is incredible!" and "VACE 14B is phenomenal" put it among the most talked-about Wan releases of 2025, largely because it does reference-to-video (feed it reference images of a character plus a pose/depth control video, get motion-consistent output preserving that character's identity), video extension, and video inpainting, all from one framework. The tradeoff the community settled on early: VACE is slow - 14B generation running 15-40 minutes on a 4090 without acceleration - which is exactly why distillation LoRAs like CausVid exist alongside it in practice.
How it works
You pick a base WanVideo diffusion checkpoint, pick a VACE module to merge into it, and choose a precision to load the result at. The merge happens inside the node - you get one MODEL output that already has VACE baked in, compatible with the rest of a standard Wan sampling pipeline downstream (no separate VACE-application step needed after this).
The inputs and outputs that matter
model_name(enum, required) - your base WanVideo diffusion model, chosen from a dropdown populated by whatever's already sitting in your model folder. The author's tooltip: "The base WanVideo diffusion model."vace_name(enum, required) - the VACE module to merge in. Tooltip: "The WanVideo VACE module to merge into the model."weight_dtype(enum, defaultdefault) - four choices:default,fp8_e4m3fn,fp8_e4m3fn_fast,fp8_e5m2. This is a real, meaningful choice, not a throwaway setting.defaultloads at whatever precision the checkpoint ships in (fp16/bf16, generally) - full quality, full VRAM cost.fp8_e4m3fnis the settled community default for large models on 12-24GB cards: roughly half the VRAM of fp16 at close to zero perceptible quality loss, which is why the community's blunt framing of fp8 in general is "just use it."fp8_e4m3fn_fasttrades a bit more toward speed. Reach fordefaultonly if you have VRAM to spare and want to rule out precision as a variable; fp8 is the pragmatic choice on anything short of a big card.
One output: MODEL - merged and ready to wire directly into your sampler, positive/negative conditioning, and the rest of a standard Wan pipeline.
How to install it
Search "Link Comfy Nodes" in ComfyUI Manager and install, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/Mister-Link/link-comfy-nodes
pip install -r link-comfy-nodes/requirements.txt
Restart ComfyUI. One thing this node does not do: download any model files for you. This pack ships nodes, not weights - your base Wan checkpoint and VACE module have to already be sitting in your usual model folders (wherever your other Wan diffusion models and VACE files live) before this node's dropdowns will have anything to show.
Common issues & troubleshooting
model_name or vace_name dropdown is empty. This is the single most common trap with this node, and it isn't a bug - it means ComfyUI hasn't found any files in the folder it expects Wan diffusion models or VACE modules to live in. Download the actual checkpoint and VACE module files first (from wherever you normally source Wan models) and drop them into the right model folder before this node has anything to populate.
Output looks noticeably softer or lower quality than expected. Check weight_dtype before assuming something's wrong with your merge - if you're VRAM-constrained and running fp8_e4m3fn, the quality cost genuinely is close to invisible per community consensus, but if you're seeing real degradation, try default on the same setup to isolate whether precision is actually the cause.
Merged model runs, but VACE-specific behavior (reference-to-video, extension, inpainting) doesn't seem to work. Merging the module gives you a compatible MODEL, but actually driving VACE's capabilities still depends on feeding it the right conditioning downstream - reference images and a properly preprocessed control video (DWPose, OpenPose, or depth) for reference-to-video, for instance. A silent, VACE-inert output usually traces back to a missing or wrong conditioning input further down the graph rather than to this loader.
Out of memory on a merge that used to fit. VACE 14B is meaningfully heavier than the 1.3B variant - community reports put 14B comfortably in the 16-32GB range depending on precision, versus roughly 16GB for the 1.3B model at 720p. If you're right at the edge, fp8_e4m3fn buys real headroom before you need to drop to a smaller model.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | The base WanVideo diffusion model. | |
| vace_name | COMBO | The WanVideo VACE module to merge into the model. | |
| weight_dtype | COMBO | 4 options: default, fp8_e4m3fn, fp8_e4m3fn_fast, fp8_e5m2 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |