RTX 5090 跑 Wan 2.2 生成 12 秒 720×1280 视频,为什么看起来要 2 小时?一次完整排查实录 RTX 5090 跑 Wan 2.2 生成 12 秒 720×1280 视频为什么看起来要 2 小时一次完整排查实录我最近做了一个口播的Agent从一张照片一篇文章一段语音生成完整的口播。本来没要求分辨率只生成了480左右的角度。于是想着生成720精度的试片效果很好可是使用Wan 2.2 S2V 14B时遇到了一个很有意思的问题RTX 5090 FP8 Lightning 4 Steps生成一个约 12 秒、720×12809:16、16fps 的视频居然感觉要接近 2 小时直觉上看这很反常5090 是目前消费级顶级显卡模型已经使用 FP8 Scaled已经挂载 Lightning LoRASteps 从 10 降到 4为什么还这么慢经过一轮完整排查后我发现问题并没有想象中的简单。环境配置模型wan2.2_s2v_14B_fp8_scaled.safetensors文本编码器umt5_xxl_fp8_e4m3fn_scaled.safetensorsLoRAwan2.2_t2v_lightx2v_4steps_lora_v1.1_high_noise.safetensors视频参数分辨率720 × 1280FPS16时长12 秒总帧数192 FramesSteps4之前是10CFG3第一反应是不是 FP8 没生效很多时候文件名写着 FP8但实际运行时可能回退到 BF16。先检查模型wan2.2_s2v_14B_fp8_scaled检查文本编码器umt5_xxl_fp8_e4m3fn_scaled同时本机根本没有wan2.2_s2v_14B_bf16版本。因此可以确认确实在跑 FP8排除BF16导致速度变慢第二反应是不是 CPU Offload很多视频工作流耗时长本质上不是 GPU 慢而是显存不够↓CPU Offload↓频繁搬运数据↓速度暴跌于是查看运行状态nvidia-smi得到GPU Util : 100%Power : 600W / 600WMemory : 25.3GB / 32GBTemperature: 83℃这是一个极其重要的证据。说明什么GPU 100%代表GPU一直在计算不是等待。排除CPU瓶颈IO瓶颈功耗 600W更关键。很多所谓的GPU 100%其实是假满载。例如GPU Util 100%Power200W说明并没有真正把 Tensor Core 喂满。但这里600W / 600W已经接近满血 Blackwell 输出。说明GPU在真正干活显存还有 7GB 空余25GB / 32GB说明没有爆显存排除显存交换CPU Offload低显存模式第三反应是不是 SageAttention 没开检查发现No module named sageattention也就是说未安装 SageAttention同时启动参数没有--use-sage-attention实际运行的是PyTorch Attention很多人会立刻得出结论找到了就是因为没开 SageAttention但这其实是个误区。SageAttention 真有那么神吗答案有帮助但不是决定性因素原因很简单。整个视频生成链路包括AttentionTransformerTemporal计算VAE视频拼接编码Attention 只是其中一部分。根据阿姆达尔定律如果某个模块只占总耗时 40%即使加速 2 倍整体提升也远达不到 2 倍因此PyTorch Attention↓SageAttention通常属于10%20%30%级别优化。而不是120分钟↓30分钟这种神话。真正关键的信息Chunk Length接下来发现了最关键的配置。Wan 2.2 S2V 使用Chunk Length 77 Frames一个 Chunk77 Frames对应77 / 16 FPS≈ 4.81 秒而我的视频12 秒192 Frames必须拆成3个Chunk日志中也能看到3 × 77 Frames更大的隐藏成本Motion ReferenceS2V工作流还会保留前段参考信息。代码中最多参考 73 Frames Motion也就是说Chunk之间存在大量重叠计算虽然最终输出192 Frames但实际参与计算的帧数明显更多。Sampling 速度实测ComfyUI 显示10 Steps53.7 ~ 58.8 s/it4 Steps53.6 ~ 59.1 s/it注意这里非常关键很多人误以为降低Steps↓每步会更快实际上不会。真正情况是单步耗时基本固定约55 秒/Step算一下实际耗时10 Steps每个 Chunk55 × 10≈ 550秒≈ 9.2分钟3 个 Chunk≈27.6分钟纯 Sampling。4 Steps每个 Chunk55 × 4≈220秒≈3.7分钟3 个 Chunk≈11分钟纯 Sampling。那为什么会感觉像 2 小时排查到这里我发现一个有趣的事实从数学上看Sampling并不支持2小时这个结论实际上4 Steps192 Frames更接近10~20分钟量级。因此需要重新区分Sampling Time和Workflow Time很多时间可能花在这里除了扩散采样还有VAE Decode192 Frames720 × 1280VAE并不便宜。视频编码例如H264H265CRF编码参数不同耗时差异巨大。FFmpeg高质量编码经常吃掉大量时间。多批次生成很多时候Batch 1或者多个Seed用户没注意到。最终结论经过完整排查不是这些原因❌ FP8失效❌ BF16回退❌ CPU Offload❌ 显存不足❌ GPU没有跑满因为实际状态是GPU Util : 100%Power : 600WMemory : 25GB已经是标准的满血运行状态。更可能的原因1. Wan 2.2 S2V 14B 本身计算量巨大尤其720×1280192 Frames属于重型任务。2. Chunk机制增加了实际计算量77 Frame Chunk73 Frame Motion Reference导致实际计算帧数高于表面数字。3. 2小时未必都是 Sampling从实测≈55 s/it推算4 Steps 的采样时间更接近10~20分钟剩余时间很可能消耗在VAE视频编码FFmpeg后处理环节。一句话总结当 RTX 5090 在 Wan 2.2 S2V 14B 下表现为 GPU 100%、600W 满功耗、FP8 正常加载时生成 10 秒左右视频的耗时问题更多是模型架构、Chunk 切分和后处理流程带来的复杂度而不是显卡性能不足或配置错误。