Wan2.2 5B:8GB 显存跑文生视频和图生视频
图像模型到这里告一段落,从这一课开始生视频。Wan2.2 是阿里云通义万相的视频生成模型,按 Apache 2.0 开源、可以商用。它开了三套核心权重:14B 文生视频、14B 图生视频,还有一个 5B 混合模型 TI2V——一个文件同时支持文生视频和图生视频,720P、24fps,官方称它是「目前最快的 720P@24fps 模型之一」。
这一页把 Wan2.2 5B 工作流完整跑通:下载三件套、文生视频出片、Ctrl+B 切图生视频、自己改分辨率和时长。全程只要 8GB 显存——官方 Tip 原话:配合 ComfyUI 原生 offloading,Wan2.2 5B 版本应能很好地适配 8GB 显存。
学完你能做什么
- 加载官方模板,跑通 Wan2.2 5B 文生视频:20 步采样,输出 1280×704、约 5 秒的 720P 视频
- 用同一个工作流做 Wan2.2 图生视频:Ctrl+B 启用 Load Image,让照片动起来
- 按规则改参数:分辨率步长 32、帧数 4n+1,自己调画幅和时长不报错
- 说得出 8GB 显存为什么跑得动:16×16×4 高压缩比 VAE + ComfyUI 原生 offloading
- 分清 5B 混合模型和 14B 双专家模型的区别,知道什么时候该升级
你现在的困境
- 想本地生视频,一查门槛:显存动辄 24GB 起,自己的 8GB 卡看着像是和视频生成无缘了
- 网上的 Wan2.2 教程几乎都在讲 14B:高噪、低噪两个 diffusion 文件,文生视频和图生视频还是两套权重,也不知道 5B 够不够自己用
- 拿 Wan2.1 的工作流直接跑 2.2:VAE 文件对不上、latent 节点也换了名字,画布一片红
什么时候用这一招
当你需要:
- 8GB 级别的显卡本地生视频:720P、24fps、约 5 秒一条
- 一个模型两种玩法:文生视频 + 图生视频,不用下两套权重
- 快速验证创意:5B 出片快,满意后再换 14B 精修
而且不想:
- 一次下 14B 那样的双份 diffusion 权重(那是下一课的事)
- 用 Wan-AI 官方 Python 脚本跑推理:命令行门槛高,官方口径还要至少 24GB 显存(如 RTX 4090)
🎒 开始前的准备
- 跑通了第一次生图:会加载工作流、按
Ctrl+Enter运行 - 熟悉模型目录规则:文件放进
models/下对应子目录(回看模型放哪里) - ComfyUI 0.3.46 以上(官方模板库对这个模板标的最低版本;模板库用法见模板库教程,版本变化见更新日志)
- 硬盘留出约 17GB:三件套加起来 9.31 + 6.27 + 1.31 GB
- 8GB 或以上显存(官方口径;更小的卡官方没承诺,见踩坑提醒)
核心思路
先记住 Wan2.2 5B 的四个关键设计,后面每一步都是在验证它们:
- TI2V = 一个模型管两种任务。 TI2V 是 Text-Image-to-Video 的缩写。14B 把文生视频(T2V)和图生视频(I2V)做成两套双专家权重;5B 用单个模型同时支持两者,权重只要下一份。
- 高压缩比 VAE 是低显存的关键。 5B 用的 Wan2.2-VAE 压缩比是 16×16×4(空间 16 倍、时间 4 倍),720P 视频压出来的 latent 很小——这是它能在家用显卡上跑 720P@24fps 的底层原因。
- 一个 latent 节点,两种模式。
Wan22ImageToVideoLatent的start_image输入是可选的:不接图,输出空 latent,走文生视频;接上图,图片被 VAE 编码进首帧,走图生视频。模板里的 Load Image 节点默认旁路(bypass),按 Ctrl+B 启用就是图生视频。 - 原生 offloading 兜底显存。 ComfyUI 会在显存和内存之间自动搬运模型,不用你加任何启动参数——官方 Tip 说的 8GB 显存就是靠它。
5B 和 14B 怎么选:
| Wan2.2 TI2V 5B(本课) | Wan2.2 14B(下一课起) | |
|---|---|---|
| diffusion 权重 | 1 个文件(9.31 GB) | 高噪 + 低噪两个文件,T2V / I2V 各一套 |
| 任务 | 文生视频 + 图生视频 | 文生视频、图生视频、首尾帧分开学 |
| 分辨率 | 720P(1280×704)@ 24fps | 480P / 720P |
| 显存 | 官方口径 8GB(原生 offloading) | 更高,见后续课程 |
| VAE | wan2.2_vae.safetensors | wan_2.1_vae.safetensors(官方注明与 2.2 兼容) |
| latent 节点 | Wan22ImageToVideoLatent | EmptyHunyuanLatentVideo(T2V)等 |
| 适合 | 快速原型、低显存、日常创意 | 质量优先的正式出片 |
两套都是 Apache 2.0 协议,商用不用另签协议。
跟我做
第 1 步:加载 Wan2.2 5B 工作流模板
为什么:官方模板把 13 个节点、默认参数、模型下载链接全部配好了,从模板起步不会漏节点、不会填错参数。
- 打开模板库(Browse Templates),搜索「Wan 2.2 5B」,找到模板 Wan 2.2 5B视频生成(英文界面叫 Wan 2.2 5B Video Generation)
- 点击加载
你应该看到:画布上 13 个节点按四个分组摆好——Step1 - Load models(Load Diffusion Model / Load CLIP / Load VAE 三个加载器)、Step3 - Prompt(正、负两个 CLIP Text Encode)、For i2v, use Ctrl + B to enable(Load Image,默认旁路)、Video Size & length(Wan22ImageToVideoLatent),加上 ModelSamplingSD3、KSampler、VAEDecode、CreateVideo、SaveVideo 和一个写着 Model Links 的便签节点,没有任何红节点。
- 模板加载完成,画布无红节点
第 2 步:下载三件套模型并归位
为什么:模板只带结构不带权重;三个文件各归各位,加载器的下拉列表里才选得到。
| 文件 | 放进 | 大小 |
|---|---|---|
wan2.2_ti2v_5B_fp16.safetensors | models/diffusion_models/ | 9.31 GB |
umt5_xxl_fp8_e4m3fn_scaled.safetensors | models/text_encoders/ | 6.27 GB |
wan2.2_vae.safetensors | models/vae/ | 1.31 GB |
注意:文本编码器复用的是 Wan2.1 仓库的文件(umt5_xxl 的 fp8 版),VAE 却是 Wan2.2 的新版本——别看串了行。
📂 ComfyUI/
└── 📂 models/
├── 📂 diffusion_models/
│ └── wan2.2_ti2v_5B_fp16.safetensors
├── 📂 text_encoders/
│ └── umt5_xxl_fp8_e4m3fn_scaled.safetensors
└── 📂 vae/
└── wan2.2_vae.safetensors下载地址(模板里的 Model Links 便签也带着这两组):
- Hugging Face:Comfy-Org/Wan_2.2_ComfyUI_Repackaged(diffusion 模型 + VAE)、Comfy-Org/Wan_2.1_ComfyUI_repackaged(文本编码器),文件在仓库
split_files/下的对应子目录 - 国内直连:魔搭 ModelScope 有同名镜像 Comfy-Org/Wan_2.2_ComfyUI_Repackaged、Comfy-Org/Wan_2.1_ComfyUI_repackaged
你应该看到:三个加载器(Load Diffusion Model / Load CLIP / Load VAE)的下拉列表里都能选中对应文件。
- 三件套出现在正确目录,加载器里能选中
💡 国内用户优先走 ModelScope
两个仓库在魔搭都有官方镜像,直连速度快。文件名和 HF 完全一致,按上面的表归位即可。
第 3 步:写提示词,跑通文生视频(20 步出片)
为什么:先用模板默认参数把整条链路验证通——20 步、cfg 5、uni_pc 这套默认值就是官方调好的平衡点,跑通之前别急着改。
- 在 CLIP Text Encode (Positive Prompt) 节点里写正向提示词。模板示例是一段完整的场景描述:
Low contrast. In a retro 1970s-style subway station, a street musician
plays in dim colors and rough textures. He wears an old jacket, playing
guitar with focus. Commuters hurry by, and a small crowd gathers to
listen. The camera slowly moves right, capturing the blend of music and
city noise, with old subway signs and mottled walls in the background.一句话写全了地点、人物、动作、镜头运动(The camera slowly moves right)和氛围——照这个结构写你自己的场景。
- CLIP Text Encode (Negative Prompt) 节点里是模板自带的中文负向提示词,先原样保留:
色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,
整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,
画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,
静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走- 确认 KSampler 是模板默认:steps 20、cfg 5、sampler
uni_pc、schedulersimple;旁边 ModelSamplingSD3 的 shift 是 8 - 按
Ctrl+Enter运行
你应该看到:进度条走满 20 步,视频由 SaveVideo 节点存进输出目录的 video/ 子目录(文件名以 ComfyUI 开头,格式默认 auto、通常输出 MP4),分辨率 1280×704、121 帧、24fps,时长约 5 秒。
- 输出目录里出现你的第一个 Wan2.2 视频
💡 提示词可以写中文
官方有一份 Wan2.2 使用指南(钉钉文档)。提示词中英文都行——这个模板自带的负向提示词本来就是中文;正向提示词照模板示例的结构写:场景、主体、动作、镜头、氛围一句写全。
第 4 步:切换图生视频(Ctrl+B 启用 Load Image)
为什么:TI2V 混合模型的方便之处就在这——同一套节点、同一套权重,把首帧接上就是图生视频。
- 找到 For i2v, use Ctrl + B to enable 分组里的 Load Image 节点,它默认处于旁路(bypass)状态
- 选中它,按
Ctrl+B启用(再按一次恢复旁路) - 点上传按钮,选择你的照片
- 把正向提示词改成描述「这段视频里会发生什么」
- 运行
你应该看到:视频第一帧就是你上传的照片,画面顺着提示词动起来。
- 输出视频的首帧与上传图一致
官方 README 的图生视频示例提示词(配的是一张戴墨镜的白猫坐冲浪板的图):
Summer beach vacation style, a white cat wearing sunglasses sits on a
surfboard. The fluffy-furred feline gazes directly at the camera with a
relaxed expression. Blurred beach scenery forms the background featuring
crystal-clear waters, distant green hills, and a blue sky dotted with
white clouds. The cat assumes a naturally relaxed posture, as if
savoring the sea breeze and warm sunlight. A close-up shot highlights
the feline's intricate details and the refreshing atmosphere of the
seaside.注意它的写法:描述的是「这段视频长什么样、镜头怎么拍」(A close-up shot…),内容与输入图片对齐——图生视频的提示词写的是整段画面,不只是动作。
⚠️ 上传图会被缩放到节点尺寸
Wan22ImageToVideoLatent 会把上传的图按节点的 width/height 双线性缩放、居中处理后再编码成首帧。想保住原图比例,先把节点的宽高改成和图片一致的比例再跑。
第 5 步:改分辨率、时长和帧数
为什么:默认的 1280×704、121 帧不是定死的;但宽高和帧数都有步长规则,乱填会出问题。
Wan22ImageToVideoLatent 的四个参数:
| 参数 | 模板默认 | 规则 | 说明 |
|---|---|---|---|
| width | 1280 | 步长 32 | 720P 横屏就是 1280×704 |
| height | 704 | 步长 32 | 竖屏 704×1280(官方明确支持) |
| length | 121 | 步长 4,取 4n+1 | 121 帧 ÷ 24fps ≈ 5 秒 |
| batch_size | 1 | — | 一次生成几条 |
- 想要竖屏视频:width 填 704、height 填 1280
- 想缩短时长、省显存:length 改 81(约 3.4 秒)或 49(约 2 秒)
- 帧率在 CreateVideo 节点改(模板设为 24):121 帧 @ 24fps ≈ 5.04 秒
你应该看到:改完参数再运行,输出视频的尺寸和时长跟着变。
- 会改 length,并说得出为什么它必须是 4n+1
为什么帧数是 4n+1?
Wan2.2-VAE 在时间维度压缩 4 倍:length 帧会被压成 ((length−1)÷4)+1 个时间片。所以 length 只能取 49、81、121 这种 4n+1 的值,节点把步长定成 4 就是在保证这一点。
检查点 ✅
- 文生视频跑通:20 步、1280×704、约 5 秒的视频出现在输出目录
- 图生视频跑通:Ctrl+B 启用 Load Image 后,首帧与上传图一致
- 说得出三件套的文件名和各自目录(diffusion_models / text_encoders / vae)
- 知道 length 取 4n+1、宽高步长 32,会自己改时长和画幅
- 说得出 8GB 能跑的两个原因:16×16×4 高压缩比 VAE + 原生 offloading
踩坑提醒
❌ 上传了图片,跑出来却不是它
Load Image 节点默认旁路(bypass),只往节点里换图、不启用,start_image 根本没送进 latent 节点,跑的还是纯文生视频。
正确做法:选中 Load Image 按 Ctrl+B 启用,确认节点不再是旁路样式,再运行。
❌ VAE 下错文件:wan2.2_vae 和 wan_2.1_vae 只差一个数字
5B 用的是 Wan2.2 新 VAE(wan2.2_vae.safetensors,压缩比 16×16×4);14B 那几课用的才是 wan_2.1_vae.safetensors(官方注明与 2.2 兼容)。5B 的视频 latent 是 48 通道(节点源码里写死),新旧 VAE 压出来的 latent 并不通用。
正确做法:按第 2 步的表下载,别顺手点开 14B 教程里的 VAE 链接。
❌ 显存不到 8GB 还硬跑 720P×121 帧
官方口径是「8GB 配合原生 offloading」。显存更小、或者把分辨率帧数往上调时,latent 变大,可能直接 OOM。
正确做法:先减 length(121 → 81 → 49),再降分辨率(按 32 的倍数往下调)。显存占用和 latent 大小直接挂钩:帧数 × 宽 × 高。
❌ length 填 120、width 填 1281
length 的合法值是 4n+1(49、81、121……),width/height 要是 32 的倍数——这是节点 schema 定死的步长。界面上填的时候按步长走;从别的节点传值进来时,就得自己守这个规则。
正确做法:帧数在 49 / 81 / 121 里挑,宽高在 32 的倍数里挑。1280×704 和 704×1280 都是官方验证过的 720P 组合。
进阶技巧(可选)
短句扩写成完整提示词
官方 Wan-AI 仓库有个提示词扩写(prompt extension)的玩法:用 dashscope API 或本地 Qwen 模型把短句扩写成完整场景描述,官方说明这样能有效丰富视频细节。ComfyUI 模板里没有这个节点,但思路可以直接搬:把「两只拟人猫在聚光灯下的擂台上打拳击」这类短句先丢给任意 LLM,扩写成模板示例那样的长句,再贴进正向提示词。
想先试水再下权重
Wan-AI 在 Hugging Face 开了 Wan-2.2-5B 的在线 Space,不想先下 17GB 权重可以去那里试几条,觉得值再回本地部署。
图生视频的实战方向
5B 图生视频跑熟了,可以直奔电商场景:商品视频:让产品图动起来 讲的就是图生视频路线在商品主图视频上的用法。想要更强的图生视频质量,下一站的 Wan2.2 14B 图生视频 用的是专门的 I2V 权重。
本课小结
✅ 这一课跑通了 Wan2.2 5B 工作流的两种玩法:
- ✅ 文生视频:官方模板 + 三件套权重,20 步、cfg 5、uni_pc,1280×704 约 5 秒出片
- ✅ 图生视频:Ctrl+B 启用 Load Image,照片当首帧,同一套权重不用换
- ✅ 参数规则:宽高步长 32、length 取 4n+1,会自己改画幅和时长
- ✅ 低显存原理:16×16×4 高压缩比 VAE + ComfyUI 原生 offloading,8GB 显存能跑
关键配置字段回顾:
| 字段 | 推荐值 | 说明 |
|---|---|---|
| Load Diffusion Model | wan2.2_ti2v_5B_fp16.safetensors | 5B 混合模型,weight_dtype 保持 default |
| Load CLIP | umt5_xxl_fp8_e4m3fn_scaled.safetensors | type 选 wan |
| Load VAE | wan2.2_vae.safetensors | 5B 专用新 VAE,别用 2.1 的 |
| KSampler | 20 步 / cfg 5 / uni_pc + simple | 模板默认 |
| ModelSamplingSD3 | shift 8 | 模板默认 |
| Wan22ImageToVideoLatent | 1280×704 / length 121 | 宽高步长 32,length 取 4n+1 |
| CreateVideo | fps 24 | 121 帧 ≈ 5 秒 |
| Load Image | 默认旁路,Ctrl+B 启用 | 启用 = 图生视频模式 |
下一课预告
5B 解决的是「跑得动」,下一课解决「跑得好」:Wan2.2 14B 文生视频:双专家模型出大片。你会学到:
- MoE 高噪/低噪双专家模型按去噪时间步分工是什么意思
- 14B 的模型下载,以及
EmptyHunyuanLatentVideo和本课 latent 节点的区别 - 什么时候值得从 5B 升级到 14B
附录:源码参考
点击展开查看源码位置
更新时间:2026-11-05(模板库模板 video_wan2_2_5B_ti2v,官方标注最低 ComfyUI 版本 0.3.46)
| 内容 | 位置 |
|---|---|
| 官方教程(Wan2.2,含 5B 节) | https://docs.comfy.org/tutorials/video/wan/wan2_2 |
| 工作流模板 JSON | https://github.com/Comfy-Org/workflow_templates/blob/main/templates/video_wan2_2_5B_ti2v.json |
| 权重仓库(Hugging Face) | https://huggingface.co/Comfy-Org/Wan_2.2_ComfyUI_Repackaged |
| 权重仓库(ModelScope 镜像) | https://modelscope.cn/models/Comfy-Org/Wan_2.2_ComfyUI_Repackaged |
| Wan-AI 官方仓库 README(5B 720P、16×16×4、示例提示词) | https://github.com/Wan-Video/Wan2.2 |
Wan22ImageToVideoLatent 节点源码 | comfy_extras/nodes_wan.py(L1418–L1459) |
SaveVideo / CreateVideo 节点源码 | comfy_extras/nodes_video.py(L137–L166 / L209 起) |
本页参数(KSampler 20 步 / cfg 5 / uni_pc + simple、shift 8、1280×704 / length 121 / fps 24、三件套文件名与大小、Load Image 默认旁路)均核对自模板 JSON video_wan2_2_5B_ti2v.json 的实际节点值;显存与分辨率口径来自官方教程与 Wan-AI README。