DiffSynth: MOVA Audio Video Loader
MOVA Audio Video Loader — the open AV model that had no ComfyUI path
- model_configs
- tokenizer_config
- vram_limit
- pipe
MOVA is an open-weights audio-video model from OpenMOSS, and if you were around for the mid-2026 "where is everything" complaints, it was one of the names in them - someone would link the weights on HuggingFace and the reply would be, essentially, "if ComfyUI isn't supported, does it count?". This loader is the answer to that thread.
It's also a model assembled from parts, and seeing which parts tells you what it is: MOVA's video and audio towers plus a bridge between them, and Wan's VAE and umt5 text encoder. That's why the pack's MOVA template has two ModelConfigs pointing at DiffSynth-Studio/Wan-Series-Converted-Safetensors.
Required inputs
model_configs- the merged list. The template wiresopenmoss/MOVA-360pforvideo_dit*/diffusion_pytorch_model-*.safetensors,audio_dit/diffusion_pytorch_model.safetensorsanddual_tower_bridge/diffusion_pytorch_model.safetensors, then the audio VAE and tokenizer fromopenmoss/MOVA-720p, thenWan2.1_VAE.safetensorsandmodels_t5_umt5-xxl-enc-bf16.safetensorsfrom the Wan converted-safetensors repo.torch_dtype-bfloat16default.device-cudaorcpu.
Note the size mix in that list: the DiTs are the 360p variant, and some surrounding components come from the 720p repo. That's not an error to fix; it's how the template ships.
Optional inputs
tokenizer_config - the tokenizer/ folder, its own ModelConfig.
use_usp (default false) - the sequence-parallel path. On a single GPU this stays off; it's for splitting a long sequence across multiple devices. If you don't know that you need it, you don't need it, and the failure mode when you switch it on without a multi-GPU setup is a load error rather than a magic speedup.
vram_limit - from the VRAM Limit node. Two DiTs plus a bridge plus Wan's encoder stack is a lot of components, and the loader benefits from knowing your actual budget.
Install
ComfyUI 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
Then open general_mova_360p_i2av from the Template tab. The Wan-side ModelConfigs are the fiddly part; copying beats deriving.
Where people get burned
Wiring only the MOVA repo. Without Wan's VAE and umt5 text encoder in the merge list, the pipeline can't complete. This is the most common failure on this graph.
Treating it as a Wan finetune. It isn't - MOVA has its own towers. The Wan borrowing is the decoder and the text encoder, which is a much narrower dependency than "it's Wan-based."
Assuming 360p in the folder name means a toy. The 360p/720p split here is about the video tower's resolution target; the audio side still runs at 48kHz.
Expecting the same ergonomics as LTX-2. MOVA is younger and less trodden. Fewer people have run it, so fewer people have already hit your problem. That's the cost of being early.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| torch_dtype | COMBO | bfloat16 | 3 options: bfloat16, float16, float32 |
| device | COMBO | cuda | 2 options: cuda, cpu |
| model_configs | DIFFSYNTH_MODEL_CONFIG_LIST | — | |
| tokenizer_configopt | DIFFSYNTH_MODEL_CONFIG | — | |
| use_uspopt | BOOLEAN | false | — |
| vram_limitopt | DIFFSYNTH_VRAM_LIMIT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipe | DIFFSYNTH_PIPE | — |