-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
简述
在 DiffSynth-Studio 2.0.6 下,AniSoraV3.2(哔哩哔哩基于 wan2.2训练的2次元专用模型) 生成 1280x720 视频会全黑,但 832x480 正常。同一输入在旧链路 DiffSynth
1.1.9 下正常。问题可定位到 DiffSynth 2.x 的 Wan VRAM management:WanModel.DiTBlock 被映射为
AutoWrappedNonRecurseModule 后触发黑屏;改为 AutoWrappedModule 后,1280x720 恢复正常。我在自己项目wanvace中使用的diffsynth. 地址:https://github.com/sfzman/wanvace
环境
- GPU: NVIDIA GeForce RTX 4090 48GB
- wanvace current: 1a8e1dd12d8a494da8590b9579894c34a8975b4d
- old working wanvace: c4977b57e5ace2d005ac274b62c338aca297c2a4
- DiffSynth-Studio: 2.0.6, commit 7a80f10
- old working DiffSynth: 1.1.9
复现步骤
- 使用 AniSoraV3.2
- 相同首帧、相同 prompt、相同 seed、相同 steps
- 生成 81 帧,cfg_scale=1.0,sigma_shift=5.0
- 对比两个分辨率:
- 1280x720: 输出全黑
- 832x480: 输出正常
实际结果
- 1280x720: 所有帧像素全 0,整段视频全黑
- 832x480: 正常出图
期望结果
1280x720 不应黑屏,至少应与 1.1.9 行为一致。
已验证的排除项
- 不是 AniSora 权重 hash 识别错误
- 不是本地 AniSora T5/VAE 文件导致
- 不是 scheduler 差异导致
- 不是保存视频阶段问题,采样输出本身就是全黑
关键定位结果
DiffSynth-Studio 提交 72af712 引入了新的 Wan VRAM management module map:
diffsynth/configs/vram_management_module_maps.py
"diffsynth.models.wan_video_dit.WanModel": {
...
"diffsynth.models.wan_video_dit.DiTBlock": "diffsynth.core.vram.layers.AutoWrappedNonRecurseModule",
...
}
我做了直接对照:
- DiffSynth 1.1.9,同一输入,1280x720 正常
- 81 frames, min=0, max=236, mean=80.96
- DiffSynth 2.0.6,只把 DiTBlock wrapper 从 AutoWrappedNonRecurseModule 改成 AutoWrappedModule
- 1280x720 立即恢复正常
- 81 frames, min=0, max=255, mean=124.32
所以问题大概率在:
- WanModel.DiTBlock -> AutoWrappedNonRecurseModule
- 或其与 Wan block / large sequence length / CPU offload 路径的交互
最小修复验证
把:
"diffsynth.models.wan_video_dit.DiTBlock": "diffsynth.core.vram.layers.AutoWrappedNonRecurseModule"
改成:
"diffsynth.models.wan_video_dit.DiTBlock": "diffsynth.core.vram.layers.AutoWrappedModule"
后,AniSoraV3.2 1280x720 恢复正常。