54 lines
2.5 KiB
Plaintext
54 lines
2.5 KiB
Plaintext
# EED-EXPER-031 · LTX 长视频 VAE 解码爆显存 → 时空分块 CPU 解码解药(D207 实测)
|
||
|
||
> trigger: 480p 15秒(361帧) 机甲大战带台词 → 第一跑在 LTXVTiledVAEDecode 节点 CUDA OOM(Tried to allocate 2.40GiB, 17.03GiB allocated + 4.72GiB reserved, GPU 24G 只剩 1.4G)
|
||
> emergence: 2026-08-05 · D207 · 长视频 latent 太大,2D 空间分块(TiledVAEDecode)不够 → 换时空分块+CPU解码
|
||
> lock: 长视频(10秒+/300帧+)解码必须用 LTXVSpatioTemporalTiledVAEDecode(时空分块+CPU)· 别再只用 LTXVTiledVAEDecode
|
||
> why: 帧数越多 latent 越大,解码峰值显存随帧数涨;2D 分块只切空间不切时间,长视频照样爆
|
||
|
||
---
|
||
|
||
## §1 · 症状
|
||
```
|
||
CUDA out of memory. Tried to allocate 2.40 GiB. GPU 0 has a total capacity of 23.98 GiB
|
||
of which 1.40 GiB is free. 17.03 GiB allocated by PyTorch, 4.72 GiB reserved but unallocated.
|
||
节点: LTXVTiledVAEDecode (17) · 480p 864×480 × 361帧
|
||
```
|
||
|
||
## §2 · 解药节点(已验证跑通)
|
||
```
|
||
LTXVSpatioTemporalTiledVAEDecode {
|
||
vae: [视频VAE,0],
|
||
latents: [separate_av,0],
|
||
spatial_tiles: 4, # 空间分块
|
||
spatial_overlap: 1,
|
||
temporal_tile_length: 16, # 时间分块(关键!每16帧一块)
|
||
temporal_overlap: 1,
|
||
last_frame_fix: false,
|
||
working_device: "cpu", # CPU 解码,不占显存
|
||
working_dtype: "float16"
|
||
}
|
||
```
|
||
实测: 480p 15秒 361帧 解码通过,出片 15.04s 完整(h264+aac 2.6MB)
|
||
|
||
## §3 · 为什么有效
|
||
- TiledVAEDecode(LTXV 版)只切空间(horizontal/vertical tiles),帧数照吃显存
|
||
- SpatioTemporalTiled 同时切时间维(temporal_tile_length=16),每块只解16帧 latent → 峰值显存骤降
|
||
- working_device=cpu → 解码放内存(32G),显存完全释放给采样
|
||
|
||
## §4 · 用法纪律(下次直接套)
|
||
```
|
||
长视频(300帧+/10秒+) → 解码器一律用 SpatioTemporalTiled + temporal_tile_length 8~16 + working_device=cpu
|
||
短视频(49~125帧) → 可继续用 LTXVTiledVAEDecode(2,2 tiles)或直接同样用时空分块(更稳)
|
||
采样阶段 361 帧在 24G 上 OK(动态显存+fast-disk)→ 瓶颈只在解码,已解决
|
||
```
|
||
|
||
## §5 · 相关
|
||
- EED-EXPER-030(LTX 带音频工作流)· ltx_test_hardware.md(GGUF+动态显存配置)
|
||
- 复用脚本: /tmp/ltx_mecha.py(480p 15秒带台词 完整工作流,含时空分块解码)
|
||
- 出片: 桌面/LTX23_机甲大战15秒.mp4
|
||
|
||
---
|
||
|
||
> 蛋蛋 · D207 · 2026-08-05
|
||
> 下次跑长镜:采样用动态显存 GGUF + 解码用时空分块CPU,24G 稳稳的
|