本文将为您详细介绍Wan2.1模型的特性、关键指标、边缘云部署的最佳实践以及测试环境搭建的步骤。帮助您快速了解模型特性、部署要求和性能优化方法,从而高效地在边缘云环境中部署和使用该模型,满足不同场景下的视频生成需求。
Wan2.1 模型简介
通义万相Wan2.1是由阿里巴巴开发的开源视频生成模型,在处理复杂运动、还原真实物理规律、提升影视质感以及优化指令遵循方面具有显著的优势,无论是创作者、开发者还是企业用户,都可以根据自己的需求选择合适的模型和功能,轻松实现高质量的视频生成。同时,万相还支持业内领先的中英文文字特效生成,满足广告、短视频等领域的创意需求。在权威评测集VBench中,万相以总分86.22%的成绩登上榜首位置,大幅领先了Sora、Minimax、Luma、Gen3、Pika等国内外视频生成模型。
Wan2.1-T2V-14B:高性能专业版,提供业界顶尖的表现力,满足对视频质量有极高要求的场景。
Wan2.1-T2V-1.3B:低显存即可生成480P高质量视频。
边缘云部署Wan2.1模型最佳实践
边缘云面向不同场景的异构算力需求,在广泛分布的节点上提供了多规格、差异化的异构算力资源,单卡显存从12GB到48GB不等。在边缘云上部署Wan2.1-T2V-1.3B模型的推理业务,推荐的最佳配置及推理性能如下:
Wan2.1-T2V-1.3B BF16精度生成480P视频推荐使用12GB显存五卡实例
12GB显存五卡实例,采用单卡单路运行性价比最高,尽管单卡运行会导致视频生成时间变长,但可以并行处理多路推理任务,在单位时间内的收益更高。
如果您追求视频的生成效率,可采用48GB显存双卡实例,可将单路视频生成时间提效85%,而成本只有35%的上升。
实例规格
推理方式
视频时长(s)
生成时间(s)
显存占用(GB)
单路成本
12GB显存五卡裸金属
单卡单路
5
1459
9.6
100%
四卡单路
5
865
35.3
296%
48GB显存单卡虚机
单卡单路
5
456
18.6
144%
48GB显存双卡虚机
双卡单路
5
214
20.9
135%
生成视频示例:
边缘云玩转通义万相Wan2.1-T2V推理业务最佳实践
Wan2.1-T2V-14B BF16精度生成720P视频推荐使用48GB显存双卡实例
720P可以为您带来更高质量的视频体验,但视频生成时间也会变得更长。您可根据业务场景需求以及示例视频的质量对比来选择合适的资源。
资源
推理方式
视频时长(s)
生成时间(s)
显存占用(GB)
48GB显存双卡虚机
双卡单路
5
3503
41
生成视频示例:
边缘云玩转通义万相Wan2.1-T2V推理业务最佳实践
以上提及的实例规格配置如下
环境参数
12GB显存五卡裸金属实例
48GB显存单卡虚机实例
48GB显存双卡虚机实例
环境参数
12GB显存五卡裸金属实例
48GB显存单卡虚机实例
48GB显存双卡虚机实例
CPU
24Core×2,3.0-4.0GHz
48核
96核
内存
256GB
192GB
384GB
GPU
NVIDIA 12GB * 5
NVIDIA 48GB * 1
NVIDIA 48GB * 2
操作系统
Ubuntu 20.04
GPU Driver
Driver Version: 570.124.06
CUDA Version: 12.4
Driver Version: 550.54.14
CUDA Version: 12.4
Driver Version: 550.54.14
CUDA Version: 12.4
推理框架
pytorch
测试环境搭建
虚机实例创建与初始化
通过控制台创建实例
登录ENS控制台。
在左侧导航栏,单击 。
在实例页面,单击创建实例。您可以通过创建实例了解创建ENS实例时的参数。
请您按照您的需求进行配置,推荐配置如下:
页面
参数选项
参考值
页面
参数选项
参考值
基础配置
付费方式
包年包月
实例类型
X86计算
实例规格
NVIDIA 48GB * 2
(详细规格请咨询客户经理)
镜像
Ubuntu
ubuntu_22_04_x64_20G_alibase_20240926
网络和存储
网络
自建网络
系统盘
高效云盘 80G+
数据盘
高效云盘 1T+
系统设置
密码设置
密码/密钥对
确认订单。
当您完成系统设置之后,您可以单击右下角确认订单。系统会根据您的配置来配置实例,并展示价格。进行支付后会提示支付成功,并可跳转到ENS控制台。
ENS控制台实例列表可查询到您创建的实例,若您创建的实例状态为运行中,代表您已经可以使用该实例。
通过OpenAPI创建实例
您也可以使用OpenAPI方式进行创建,您可以在阿里云开发者门户快速使用OpenAPI创建实例。
调用参数的参考代码如下,请您灵活调整:
{
"InstanceType": "ens.gnxxxx", <您的实例规格>
"InstanceChargeType": "PrePaid",
"ImageId": "ubuntu_22_04_x64_20G_alibase_20240926",
"ScheduleAreaLevel": "Region",
"EnsRegionId": "cn-your—ens-region", <实际的节点>
"Password": <YOURPASSWORD>, <自定义密码>
"InternetChargeType": "95BandwidthByMonth",
"SystemDisk": {
"Size": 80,
"Category": "cloud_efficiency"
},
"DataDisk": [
{
"Category": "cloud_efficiency",
"Size": 1024
}
],
"InternetMaxBandwidthOut": 5000,
"Amount": 1,
"NetWorkId": "n-xxxxxxxxxxxxxxx",
"VSwitchId": "vsw-xxxxxxxxxxxxxxx",
"InstanceName": "test",
"HostName": "test",
"PublicIpIdentification": true,
"InstanceChargeStrategy": "instance", <实例粒度计费>
}
实例登录与初始化磁盘
实例登录
您可以参考连接实例来登录实例。
磁盘初始化
根目录扩容。
实例新创建或扩容后,需要在不重启的情况下在线扩容根分区
# 安装云环境工具包 sudo apt-get update sudo apt-get install -y cloud-guest-utils # 确保GPT分区工具sgdisk存在 type sgdisk || sudo apt-get install -y gdisk # 扩展物理分区 sudo LC_ALL=en_US.UTF-8 growpart /dev/vda 3 # 调整文件系统大小 sudo resize2fs /dev/vda3 # 验证扩容结果 df -h
数据盘挂载
您需要对数据盘进行格式化,并进行挂载。以下是参考,按需进行操作。
# 识别新磁盘 lsblk # 这里不进行分区,直接格式化 sudo mkfs -t ext4 /dev/vdb # 配置挂载 sudo mkdir /data echo "UUID=$(sudo blkid -s UUID -o value /dev/vdb) /data ext4 defaults,nofail 0 0" | sudo tee -a /etc/fstab # 验证 sudo mount -a df -hT /data # 修改权限 sudo chown $USER:$USER $MOUNT_DIR
如果您要基于该实例制作镜像,需要删除
/etc/fstab
文件中添加的ext4 defaults 0 0
所在行。如果不删除,您制作的镜像创建实例将无法启动。
安装依赖
您可以参考CUDA Toolkit 12.4 Downloads | NVIDIA Developer来完成CUDA的安装。
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
chmod +x cuda_12.4.0_550.54.14_linux.run
# 这一步稍久,会出现图形交互
sudo sh cuda_12.4.0_550.54.14_linux.run
# 添加环境变量
vim ~/.bashrc
export PATH="$PATH:/usr/local/cuda-12.4/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64"
source ~/.bashrc
# 验证是否成功
nvcc -V
nvidia-smi
安装辅助工具(可选)
UV是较好的Python虚拟环境和依赖管理工具,适合需要运行多个模型的机器。您可以参考Installation | uv (astral.sh)来完成对UV的安装。
# 安装uv,默认安装在~/.local/bin/
curl -LsSf https://astral.sh/uv/install.sh | sh
# 编辑~/.bashrc
export PATH="$PATH:~/.local/bin"
source ~/.bashrc
# 创建一个干净的venv环境,命名diff
uv venv diff --python 3.12 --seed
source diff/bin/activate
如果您遇到安装UV后,原来所设置的CUDA环境变量失效,nvcc\nvidia-smi
无法找到,请您执行如下操作:
vim myenv/bin/activate
将
export PATH="$PATH:/usr/local/cuda-12.4/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-12.4/lib64"
加到export PATH的后面
安装GPU监控工具(可选)
# GPU监控工具,也可以使用nvidia-smi
pip install nvitop
下载推理框架和模型
推荐使用魔搭推出的Diffusion模型框架 DiffSynth Studio,以实现较好的性能和稳定性,详情参考 https://github.com/modelscope/DiffSynth-Studio/tree/main。
# 安装魔搭下载工具
pip install modelscope
# 下载DiffSynth Studio和依赖
cd /root
git clone https://github.com/modelscope/DiffSynth-Studio.git
cd DiffSynth-Studio
pip install -e .
# 安装xfuser
pip install xfuser>=0.4.3
# 下载Wan2.1-T2V-14B模型文件到DiffSynth-Studio的对应目录下
modelscope download --model Wan-AI/Wan2.1-T2V-14B --local_dir /root/DiffSynth-Studio/models/Wan-AI/Wan2.1-T2V-14B
测试视频生成
DiffSynth Studio提供了Unified Sequence Parallel (USP)和Tensor Parallel 两种并行方式,本文以Tensor Parallel为例,使用DiffSynth提供的测试脚本,通过Wan2.1-14B生成一段720P视频。
可选优化
您可通过修改测试脚本examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py中的部分代码和参数,实现以下效果:
因代码库持续优化中,代码文件随时可能更新,以下修改仅供参考
避免每次运行都重新下载模型。
修改视频的压缩质量,更大的视频文件代表更好的清晰度。
将生成视频从默认的480p修改为720p。
-
# 修改测试代码的文件 vim /root/DiffSynth-Studio/examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py # 1. 注释125行左右代码,避免每次运行都重新下载模型,从而使用先前已经下载到本地的模型 # snapshot_download("Wan-AI/Wan2.1-T2V-14B", local_dir="models/Wan-AI/Wan2.1-T2V-14B") # 2. 修改121行左右代码,调整函数test_step内的save_video入参,修改视频帧率和压缩质量。quality=1为最低,10为最高 save_video(video, output_path, fps=24, quality=10) # 3. 135行左右新增以下入参,调整分辨率,默认是480p .... "output_path": "video1.mp4", # 以下两行为新增 "height": 720, "width": 1280, }, # 4.保存文件并退出 :wq
运行测试
# 运行测试脚本
torchrun --standalone --nproc_per_node=2 /root/DiffSynth-Studio/examples/wanvideo/wan_14b_text_to_video_tensor_parallel.py
结果输出
有改动可在上述可选优化第三条中的output_path
中指定。
测试时间请参考进度条的剩余时间提示。结束后生成视频文件video1.mp4,您可以参考 cp(拷贝文件)来使用ossutil将生成的视频文件导出到阿里云OSS。
- 本页导读 (1)
- Wan2.1 模型简介
- 边缘云部署Wan2.1模型最佳实践
- 测试环境搭建
- 虚机实例创建与初始化
- 实例登录与初始化磁盘
- 安装依赖
- 安装辅助工具(可选)
- 安装GPU监控工具(可选)
- 下载推理框架和模型
- 测试视频生成