Nodes/DiffSynth-ComfyUI/DiffSynth: Wan Video Loader
ComfyUI Node

DiffSynth: Wan Video Loader

One loader, every Wan task, and a redirect you should leave alone

By modelscope·Created about a month ago·Updated a day ago· 8
DiffSynth: Wan Video Loader
  • model_configs
  • tokenizer_config
  • audio_processor_config
  • vram_limit
  • pipe
◄torch_dtypebfloat16►
◄devicecuda►
◄redirect_common_filestrue►
◄use_uspfalse►

Wan is where local video consolidated and then stopped: Wan 2.1 and 2.2 are the open weights, the numbered series above them went API-only, and most 2026 open video models are built on the frozen 2.1/2.2 checkpoints. This Loader is how the DiffSynth pack loads them.

Inputs

Required:

  • torch_dtype - bfloat16 (default), float16, float32.
  • device - cuda or cpu.
  • model_configs - merged from Merge ModelConfigs. Required, and this is where the entire task definition actually lives, for reasons below.

Optional:

  • tokenizer_config - the UMT5 tokenizer. The framework's default points at Wan-AI/Wan2.1-T2V-1.3B's google/umt5-xxl/ folder; if you're loading a 14B or a 2.2 checkpoint, that same tokenizer directory is what you want.
  • audio_processor_config - only relevant to the audio-conditioned Wan tasks (speech-to-video and friends). The T2V and I2V example graphs leave it empty.
  • redirect_common_files - on by default, and you should leave it on. More below.
  • use_usp - Unified Sequence Parallelism across multiple GPUs. Single card? Off.
  • vram_limit - from a VRAM Limit node.

Output: pipe, into DiffSynth: Wan Video Inference.

One loader, six jobs

There is exactly one Wan loader in the pack, and it has to serve text-to-video, image-to-video, first/last-frame, video-to-video, VACE control, Animate, speech-to-video and the camera-control models. The Loader has no idea which one you want. It loads whatever model_configs tells it to, and the Inference node's connections decide which parts of the pipeline actually run. So the model list is the task:

  • T2V 1.3B: Wan-AI/Wan2.1-T2V-1.3B → diffusion_pytorch_model*.safetensors, plus the text encoder and VAE below.
  • T2V 14B: Wan-AI/Wan2.1-T2V-14B → same shape, much bigger file.
  • Any Wan workflow needs the text encoder (models_t5_umt5-xxl-enc-bf16.pth) and the VAE (Wan2.1_VAE.pth) as their own ModelConfigs, because none of it ships bundled.

Read the pack's example JSON for whichever task you're running and copy its ModelConfig list verbatim. Guessing costs you a 30GB download.

What redirect_common_files actually does

Four filenames - models_t5_umt5-xxl-enc-bf16.pth, the CLIP encoder, Wan2.1_VAE.pth, Wan2.2_VAE.pth - get rewritten at load time to pre-converted .safetensors versions on DiffSynth-Studio/Wan-Series-Converted-Safetensors, with a console message explaining the swap. It's a de-duplication trick: the VAE you need is identical across a dozen Wan workflows, so the framework points them all at one converted copy instead of re-downloading a .pth per repo. Turn it off only if you're offline with your own local copies, or if a checkpoint genuinely needs the original file.

Install

Manager → search DiffSynth-ComfyUI → install → restart, or:

pip install git+https://github.com/modelscope/DiffSynth-Studio.git
cd ComfyUI/custom_nodes && git clone https://github.com/modelscope/DiffSynth-ComfyUI.git

First run downloads the transformer, the UMT5 encoder and the VAE. For 14B that's tens of gigabytes and the single longest wait in the whole process; set DIFFSYNTH_MODEL_BASE_PATH to a drive with room before the first queue, because the default is models/ under ComfyUI's working directory.

Realistic expectations

The 1.3B runs on modest cards. The 14B wants 12GB minimum with aggressive offload and 24GB to be comfortable; 81 frames is the native context and 480p is the sane default output. Don't expect a 12GB card to be pleasant at 720p 14B without quantization - that's what the pack's Quantization Config and ModelConfig quant_config input are for.

Common issues

  • It loads, the sampler errors immediately. Wrong file set for the task: an I2V graph with T2V weights, or a VACE workflow without the VACE checkpoint in model_configs.
  • Repeated multi-gigabyte downloads. redirect_common_files off, or patterns that don't match the on-disk layout.
  • A socket that isn't there. Loader inputs are generated from your installed diffsynth version at ComfyUI startup. Upgrade the library, restart ComfyUI.
  • use_usp on a single GPU. It won't parallelise anything; it'll just look for infrastructure you don't have.
CategoryDiffSynth/loader

Inputs (8)

NameTypeDefaultDescription
torch_dtypeCOMBObfloat163 options: bfloat16, float16, float32
deviceCOMBOcuda2 options: cuda, cpu
model_configsDIFFSYNTH_MODEL_CONFIG_LIST—
tokenizer_configoptDIFFSYNTH_MODEL_CONFIG—
audio_processor_configoptDIFFSYNTH_MODEL_CONFIG—
redirect_common_filesoptBOOLEANtrue—
use_uspoptBOOLEANfalse—
vram_limitoptDIFFSYNTH_VRAM_LIMIT—

Outputs (1)

NameTypeDescription
pipeDIFFSYNTH_PIPE—