许可证:apache-2.0
语言:
- 英文
- 中文
任务类型:文本生成视频
库名称:diffusers
标签:
- 视频
- 视频生成
万2.1
💜 万    |    🖥️ GitHub    |   🤗 Hugging Face   |   🤖 ModelScope   |    📑 论文(即将发布)    |    📑 博客    |   💬 微信群   |    📖 Discord  
万:开放且先进的大规模视频生成模型
在本仓库中,我们推出了万2.1,这是一套全面开放的视频基础模型,旨在突破视频生成的边界。万2.1具备以下核心特点:
- 👍 顶尖性能:在多项基准测试中,万2.1的表现均优于现有开源模型及商业解决方案。
- 👍 支持消费级GPU:T2V-1.3B模型仅需8.19GB显存,兼容几乎所有消费级显卡。在RTX 4090上,无需量化等优化技术,约4分钟即可生成一段5秒的480P视频,性能媲美部分闭源模型。
- 👍 多任务支持:万2.1在文本生成视频、图像生成视频、视频编辑、文本生成图像及视频生成音频等任务中表现卓越,推动视频生成领域发展。
- 👍 视觉文本生成:万2.1是首个支持中英文文本生成的视频模型,其强大的文本生成能力显著提升了实际应用价值。
- 👍 高效视频VAE:万-VAE在效率与性能上表现突出,可无损编解码任意长度的1080P视频并保留时序信息,是视频与图像生成的理想基础。
本仓库提供了T2V-1.3B模型,这是一个兼容几乎所有消费级GPU的多功能视频生成解决方案。我们希望万2.1能成为创意团队在视频创作中的易用工具,并为计算资源有限的学术团队提供高质量的基础模型,从而促进视频创作社区的快速发展与视频技术的快速进步。
视频演示
🔥 最新动态!!
- 2025年2月25日:👋 我们发布了万2.1的推理代码与权重。
📑 待办清单
- 万2.1文本生成视频
- [x] 14B与1.3B模型的多GPU推理代码
- [x] 14B与1.3B模型的检查点
- [x] Gradio演示
- [ ] Diffusers集成
- [ ] ComfyUI集成
- 万2.1图像生成视频
- [x] 14B模型的多GPU推理代码
- [x] 14B模型的检查点
- [x] Gradio演示
- [ ] Diffusers集成
- [ ] ComfyUI集成
快速开始
安装
克隆仓库:
git clone https://github.com/Wan-Video/Wan2.1.git
cd Wan2.1
安装依赖:
# 确保torch >= 2.4.0
pip install -r requirements.txt
模型下载
💡提示:1.3B模型支持生成720P视频,但由于该分辨率训练数据有限,效果通常不如480P稳定。建议优先使用480P分辨率。
通过🤗 huggingface-cli下载模型:
pip install "huggingface_hub[cli]"
huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B --local-dir ./Wan2.1-T2V-1.3B
通过🤖 modelscope-cli下载模型:
pip install modelscope
modelscope download Wan-AI/Wan2.1-T2V-1.3B --local_dir ./Wan2.1-T2V-1.3B
运行文本生成视频
本仓库支持两种文本生成视频模型(1.3B与14B)及两种分辨率(480P与720P)。各模型的参数配置如下:
任务 |
分辨率 |
模型 |
480P |
720P |
t2v-14B |
✔️ |
✔️ |
万2.1-T2V-14B |
t2v-1.3B |
✔️ |
❌ |
万2.1-T2V-1.3B |
(1) 不使用提示扩展
为简化实现,我们首先介绍跳过提示扩展步骤的基础推理流程。
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./万2.1-T2V-1.3B --sample_shift 8 --sample_guide_scale 6 --prompt "两只拟人化的猫咪穿着舒适的拳击装备,戴着鲜艳的拳套,在聚光灯下的舞台上激烈搏斗。"
若遇到显存不足(OOM)问题,可使用--offload_model True
与--t5_cpu
选项降低显存占用。例如在RTX 4090上:
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./万2.1-T2V-1.3B --offload_model True --t5_cpu --sample_shift 8 --sample_guide_scale 6 --prompt "两只拟人化的猫咪穿着舒适的拳击装备,戴着鲜艳的拳套,在聚光灯下的舞台上激烈搏斗。"
💡提示:若使用T2V-1.3B
模型,建议设置参数--sample_guide_scale 6
。--sample_shift
参数可在8至12范围内根据性能调整。
pip install "xfuser>=0.4.1"
torchrun --nproc_per_node=8 generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./万2.1-T2V-1.3B --dit_fsdp --t5_fsdp --ulysses_size 8 --sample_shift 8 --sample_guide_scale 6 --prompt "两只拟人化的猫咪穿着舒适的拳击装备,戴着鲜艳的拳套,在聚光灯下的舞台上激烈搏斗。"
(2) 使用提示扩展
扩展提示词可有效丰富生成视频的细节,进一步提升视频质量。因此我们推荐启用提示扩展。我们提供以下两种提示扩展方法:
- 使用Dashscope API扩展。
- 提前申请
dashscope.api_key
(英文 | 中文)。
- 通过环境变量
DASH_API_KEY
指定Dashscope API密钥。国际站用户还需设置DASH_API_URL
为'https://dashscope-intl.aliyuncs.com/api/v1'。详见dashscope文档。
- 文本生成视频任务使用
qwen-plus
模型,图像生成视频任务使用qwen-vl-max
模型。
- 可通过参数
--prompt_extend_model
修改扩展模型。例如:
DASH_API_KEY=您的密钥 python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./万2.1-T2V-1.3B --prompt "两只拟人化的猫咪穿着舒适的拳击装备,戴着鲜艳的拳套,在聚光灯下的舞台上激烈搏斗" --use_prompt_extend --prompt_extend_method 'dashscope' --prompt_extend_target_lang 'ch'
- 使用本地模型扩展。
- 默认使用HuggingFace上的Qwen模型进行扩展,用户可根据显存大小选择。
- 文本生成视频任务可使用
Qwen/Qwen2.5-14B-Instruct
、Qwen/Qwen2.5-7B-Instruct
或Qwen/Qwen2.5-3B-Instruct
等模型。
- 图像生成视频任务可使用
Qwen/Qwen2.5-VL-7B-Instruct
或Qwen/Qwen2.5-VL-3B-Instruct
等模型。
- 模型越大扩展效果通常越好,但需更多显存。
- 可通过参数
--prompt_extend_model
指定本地模型路径或Hugging Face模型。例如:
python generate.py --task t2v-1.3B --size 832*480 --ckpt_dir ./万2.1-T2V-1.3B --prompt "两只拟人化的猫咪穿着舒适的拳击装备,戴着鲜艳的拳套,在聚光灯下的舞台上激烈搏斗" --use_prompt_extend --prompt_extend_method 'local_qwen' --prompt_extend_target_lang 'ch'
(3) 运行本地gradio
cd gradio
# 若使用Dashscope API扩展提示
DASH_API_KEY=您的密钥 python t2v_1.3B_singleGPU.py --prompt_extend_method 'dashscope' --ckpt_dir ./万2.1-T2V-1.3B
# 若使用本地模型扩展提示
python t2v_1.3B_singleGPU.py --prompt_extend_method 'local_qwen' --ckpt_dir ./万2.1-T2V-1.3B
评估
我们采用万-Bench框架评估T2V-1.3B模型的性能,结果如下表所示。数据显示,我们的1.3B小模型在综合指标上超越了更大规模的开源模型,验证了万X2.1架构与数据构建流程的有效性。
不同GPU上的计算效率
我们在下表中测试了不同万2.1模型在不同GPU上的计算效率,结果以**总耗时(秒)/峰值GPU内存(GB)**格式呈现。
本表测试参数设置如下:
(1) 1.3B模型在8 GPU上运行时,设置--ring_size 8
与--ulysses_size 1
;
(2) 14B模型在1 GPU上运行时,启用--offload_model True
;
(3) 1.3B模型在单张4090显卡上运行时,设置--offload_model True --t5_cpu
;
(4) 所有测试均未启用提示扩展(即未设置--use_prompt_extend
)。
万2.1技术介绍
万2.1基于主流的扩散Transformer范式设计,通过一系列创新实现了生成能力的显著突破。这些创新包括新颖的时空变分自编码器(VAE)、可扩展的训练策略、大规模数据构建及自动化评估指标等,共同提升了模型的性能与多功能性。
(1) 3D变分自编码器
我们提出了一种专为视频生成设计的3D因果VAE架构——万-VAE。通过结合多种策略,我们优化了时空压缩效率,降低了内存占用,并确保了时间因果性。万-VAE在性能效率上相较其他开源VAE展现显著优势。此外,万-VAE能无损编解码任意长度的1080P视频且保留历史时序信息,特别适合视频生成任务。
(2) 视频扩散DiT
万2.1基于主流扩散Transformer范式,采用Flow Matching框架设计。模型架构使用T5编码器处理多语言文本输入,通过各Transformer块中的交叉注意力将文本嵌入模型结构。此外,我们采用含线性层与SiLU层的MLP单独处理输入时间嵌入并预测六个调制参数。该MLP在所有Transformer块间共享,每个块学习独立的偏置集。实验表明,该方法在同参数规模下能显著提升性能。
模型 |
维度 |
输入维度 |
输出维度 |
前馈维度 |
频率维度 |
头数 |
层数 |
1.3B |
1536 |
16 |
16 |
8960 |
256 |
12 |
30 |
14B |
5120 |
16 |
16 |
13824 |
256 |
40 |
40 |
数据
我们整理并去重了包含海量图像与视频数据的候选集。在数据整理过程中,我们设计了四步数据清洗流程,聚焦基础维度、视觉质量与运动质量等核心维度。通过这一鲁棒的数据处理流程,我们能轻松获取高质量、多样化且规模庞大的图像与视频训练集。

与SOTA对比
我们将万2.1与领先的开源及闭源模型进行对比以评估性能。通过精心设计的1,035条内部提示词集,我们在14个主维度与26个子维度上展开测试,随后根据各维度重要性加权计算总分。详细结果如下表所示,这些结果表明我们的模型性能优于开源与闭源模型。