Wan2.1 README

The project's README from github.com/Wan-Video/Wan2.1. As one markdown file: README.md.

Wan2.1

💜 Wan    |    🖥️ GitHub    |   🤗 Hugging Face   |   🤖 ModelScope   |    📑 Technical Report    |    📑 Blog    |   💬 WeChat Group   |    📖 Discord  


Wan: Open and Advanced Large-Scale Video Generative Models

In this repository, we present Wan2.1, a comprehensive and open suite of video foundation models that pushes the boundaries of video generation. Wan2.1 offers these key features:

Video Demos

🔥 Latest News!!

Community Works

If your work has improved Wan2.1 and you would like more people to see it, please inform us.

📑 Todo List

Quickstart

Installation

Clone the repo:

git clone https://github.com/Wan-Video/Wan2.1.git
cd Wan2.1

Install dependencies:

# Ensure torch >= 2.4.0
pip install -r requirements.txt

Model Download

Models Download Link Notes
T2V-14B 🤗 Huggingface 🤖 ModelScope Supports both 480P and 720P
I2V-14B-720P 🤗 Huggingface 🤖 ModelScope Supports 720P
I2V-14B-480P 🤗 Huggingface 🤖 ModelScope Supports 480P
T2V-1.3B 🤗 Huggingface 🤖 ModelScope Supports 480P
FLF2V-14B 🤗 Huggingface 🤖 ModelScope Supports 720P
VACE-1.3B 🤗 Huggingface 🤖 ModelScope Supports 480P
VACE-14B 🤗 Huggingface 🤖 ModelScope Supports both 480P and 720P

💡Note:

  • The 1.3B model is capable of generating videos at 720P resolution. However, due to limited training at this resolution, the results are generally less stable compared to 480P. For optimal performance, we recommend using 480P resolution.
  • For the first-last frame to video generation, we train our model primarily on Chinese text-video pairs. Therefore, we recommend using Chinese prompt to achieve better results.

Download models using huggingface-cli:

pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-14B --local-dir ./Wan2.1-T2V-14B

Download models using modelscope-cli:

pip install modelscope
modelscope download Wan-AI/Wan2.1-T2V-14B --local_dir ./Wan2.1-T2V-14B

Run Text-to-Video Generation

This repository supports two Text-to-Video models (1.3B and 14B) and two resolutions (480P and 720P). The parameters and configurations for these models are as follows:

Task Resolution Model
480P 720P
t2v-14B ✔️ ✔️ Wan2.1-T2V-14B
t2v-1.3B ✔️ ❌ Wan2.1-T2V-1.3B
(1) Without Prompt Extension

To facilitate implementation, we will start with a basic version of the inference process that skips the prompt extension step.

python generate.py  --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."

If you encounter OOM (Out-of-Memory) issues, you can use the --offload_model True and --t5_cpu options to reduce GPU memory usage. For example, on an RTX 4090 GPU:

python generate.py  --task t2v-1.3B --size 832*480 --ckpt_dir ./Wan2.1-T2V-1.3B --offload_model True --t5_cpu --sample_shift 8 --sample_guide_scale 6 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."

💡Note: If you are using the T2V-1.3B model, we recommend setting the parameter --sample_guide_scale 6. The --sample_shift parameter can be adjusted within the range of 8 to 12 based on the performance.

pip install "xfuser>=0.4.1"
torchrun --nproc_per_node=8 generate.py --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --dit_fsdp --t5_fsdp --ulysses_size 8 --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage."
(2) Using Prompt Extension

Extending the prompts can effectively enrich the details in the generated videos, further enhancing the video quality. Therefore, we recommend enabling prompt extension. We provide the following two methods for prompt extension:

DASH_API_KEY=your_key python generate.py  --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage" --use_prompt_extend --prompt_extend_method 'dashscope' --prompt_extend_target_lang 'zh'
python generate.py  --task t2v-14B --size 1280*720 --ckpt_dir ./Wan2.1-T2V-14B --prompt "Two anthropomorphic cats in comfy boxing gear and bright gloves fight intensely on a spotlighted stage" --use_prompt_extend --prompt_extend_method 'local_qwen' --prompt_extend_target_lang 'zh'
(3) Running with Diffusers

You can easily inference Wan2.1-T2V using Diffusers with the following command:

import torch
from diffusers.utils import export_to_video
from diffusers import AutoencoderKLWan, WanPipeline
from diffusers.schedulers.scheduling_unipc_multistep import UniPCMultistepScheduler

# Available models: Wan-AI/Wan2.1-T2V-14B-Diffusers, Wan-AI/Wan2.1-T2V-1.3B-Diffusers
model_id = "Wan-AI/Wan2.1-T2V-14B-Diffusers"
vae = AutoencoderKLWan.from_pretrained(model_id, subfolder="vae", torch_dtype=torch.float32)
flow_shift = 5.0 # 5.0 for 720P, 3.0 for 480P
scheduler = UniPCMultistepScheduler(prediction_type='flow_prediction', use_flow_sigmas=True, num_train_timesteps=1000, flow_shift=flow_shift)
pipe = WanPipeline.from_pretrained(model_id, vae=vae, torch_dtype=torch.bfloat16)
pipe.scheduler = scheduler
pipe.to("cuda")

prompt = "A cat and a dog baking a cake together in a kitchen. The cat is carefully measuring flour, while the dog is stirring the batter with a wooden spoon. The kitchen is cozy, with sunlight streaming through the window."
negative_prompt = "Bright tones, overexposed, static, blurred details, subtitles, style, works, paintings, images, static, overall gray, worst quality, low quality, JPEG compression residue, ugly, incomplete, extra fingers, poorly drawn hands, poorly drawn faces, deformed, disfigured, misshapen limbs, fused fingers, still picture, messy background, three legs, many people in the background, walking backwards"

output = pipe(
     prompt=prompt,
     negative_prompt=negative_prompt,
     height=720,
     width=1280,
     num_frames=81,
     guidance_scale=5.0,
    ).frames[0]
export_to_video(output, "output.mp4", fps=16)

💡Note: Please note that this example does not integrate Prompt Extension and distributed inference. We will soon update with the integrated prompt extension and multi-GPU version of Diffusers.

(4) Running local gradio
cd gradio
# if one uses dashscope’s API for prompt extension
DASH_API_KEY=your_key python t2v_14B_singleGPU.py --prompt_extend_method 'dashscope' --ckpt_dir ./Wan2.1-T2V-14B

# if one uses a local model for prompt extension
python t2v_14B_singleGPU.py --prompt_extend_method 'local_qwen' --ckpt_dir ./Wan2.1-T2V-14B

R

Wan2.1 (Wan-Video/Wan2.1)

Searching Database…

17.2K ·GitHub
What is this?Wan2.1 is an open suite of large-scale video generative models: it turns text or images into videos, and also covers video editing, text-to-image and video-to-audio tasks.
Is this a web service I visit, or something I run myself?Something you run yourself: the repo ships model weights plus Python inference code for your own GPU. There is no hosted app here, though Wan2.1 also works inside ComfyUI and Diffusers.
How do I get it running?Clone the repo, install the Python dependencies, download checkpoints with huggingface-cli or modelscope-cli, then run the provided text-to-video script. A local Gradio demo, ComfyUI and Diffusers are alternatives.
Do I need an API key or any extra models?Base generation runs locally with no key. The optional prompt-extension step uses either a Dashscope API key (set as DASHAPIKEY) or a local Qwen model of your choosing.
What gotchas should I know about before trying it?The 1.3B model is really tuned for 480P — its 720P output is unstable. First-last-frame generation was trained mostly on Chinese pairs, so Chinese prompts work best there. On tight GPUs you may need --offloadmodel True and --t5cpu to avoid out-of-memory errors.
Will it run on my gaming PC, or do I need a datacenter GPU?The 1.3B model needs only 8.19 GB of VRAM, so it fits almost all consumer GPUs, and produces a 5-second 480P clip in about 4 minutes on an RTX 4090. The 14B models need more memory.
What model variants can I download?Seven checkpoints: T2V-1.3B (480P) and T2V-14B (480P/720P), I2V-14B in separate 480P and 720P versions, FLF2V-14B (720P), plus VACE-1.3B and VACE-14B — all on Hugging Face and ModelScope.
What is VACE?Released in May 2025, VACE is Wan2.1's all-in-one model for video creation and editing, shipped in 1.3B and 14B sizes with inference code and weights. It followed FLF2V, an April addition for first-last-frame-to-video generation.
Does it work with English prompts?Yes, and the model can even render readable text on screen — Wan2.1 is described as the first video model generating both Chinese and English text. The only Chinese-first case is first-last-frame generation.
Is there an ecosystem built around Wan2.1?A big one: it is already integrated into ComfyUI and Diffusers, and community projects add TeaCache acceleration, FP8 quantization and LoRA training via DiffSynth-Studio, plus specialized models for try-on, pose animation and motion control built on top of Wan2.1.
Creator
Wan-Video
Size
10.1 MB
Stars
17.2K
Updated
CommitMar 05
Age
1y
Commits · 90 Days