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
这是什么?Wan2.1 是一套开源的大规模视频生成模型:它能把文字或图片变成视频,还涵盖视频编辑、文生图和视频转音频等任务。
这是我在浏览器里访问的在线服务,还是我自己在本地运行的东西?需要自己本地运行:仓库里提供了模型权重和在你自己显卡上运行的 Python 推理代码。这里没有托管好的在线应用,不过 Wan2.1 也可以在 ComfyUI 和 Diffusers 里使用。
我怎么把它跑起来?克隆仓库,安装 Python 依赖,用 huggingface-cli 或 modelscope-cli 下载模型权重,然后运行自带的文生视频脚本。也可以选择本地 Gradio 演示、ComfyUI 或 Diffusers。
需要 API 密钥或额外的模型吗?基础的生成完全在本地运行,不需要密钥。可选的提示词扩写步骤要么使用 Dashscope 的 API 密钥(设置为 DASHAPIKEY),要么使用你自选的本地 Qwen 模型。
在动手之前,有哪些坑我需要知道?1.3B 模型实际上只针对 480P 调优——它的 720P 输出不稳定。首尾帧生成主要用中文语料训练,所以在这个功能里中文提示词效果最好。显卡显存紧张时,可能需要加 --offloadmodel True 和 --t5cpu 来避免显存不足的报错。
我的游戏电脑能跑吗,还是一定要数据中心级显卡?1.3B 模型只需要 8.19 GB 显存,几乎所有消费级显卡都能跑,在 RTX 4090 上生成一段 5 秒的 480P 视频大约只要 4 分钟。14B 模型则需要更多显存。
我可以下载哪些模型版本?共七个模型权重:T2V-1.3B(480P)和 T2V-14B(480P/720P),I2V-14B 分 480P 和 720P 两个版本,FLF2V-14B(720P),还有 VACE-1.3B 和 VACE-14B——全部都在 Hugging Face 和 ModelScope 上。
VACE 是什么?VACE 于 2025 年 5 月发布,是 Wan2.1 的一体化视频创作和编辑模型,提供 1.3B 和 14B 两种规格,附带推理代码和权重。它是在 FLF2V 之后推出的,后者是 4 月加入的用于首尾帧生成视频的模型。
用英文提示词可以吗?可以,而且模型甚至能在画面里渲染出清晰可读的文字——Wan2.1 被称为首个能同时生成中文和英文文字的视频模型。唯一偏向中文的场景是首尾帧生成。
Wan2.1 周围有生态吗?生态很庞大:它已经集成进 ComfyUI 和 Diffusers,社区项目还通过 DiffSynth-Studio 提供 TeaCache 加速、FP8 量化和 LoRA 训练,另外还有基于 Wan2.1 构建的虚拟试穿、姿态动画和运动控制等专用模型。
Creator
Wan-Video
Size
10.1 MB
Stars
17.2K
Updated
CommitMar 05
Age
1y
Commits · 90 Days