ltx-2.5-mlx-q8 速度优化:Pruna 剪枝 VAE 解码器如何让视频解码提速 2 倍(compact24 档实测)
在 Apple Silicon 上跑 LTX-2.5 视频生成,VAE 解码往往是最耗时的环节。ltx-2.5-mlx-q8 仓库内置了一份Pruna 剪枝 VAE 解码器(vae_decoder_pruna.safetensors),可近乎无感替换原装解码器。本文带你弄懂它是什么、实测收益有多大、以及如何在 compact24 档下最快启用。
先认识 ltx-2.5-mlx-q8:Apple 芯片上的 LTX-2.5 全套组件
这是一个面向 MLX 运行时的 LTX-2.5(文本生成视频 + 音频)完整组件树,与基础版相比唯一的区别是 Gemma-4 文本编码器被量化为 int8(13.6 GB 对比 23.8 GB),其余文件逐字节一致。仓库内主要文件如下:
| 文件 | 作用 | 大小(LFS 记录) |
|---|---|---|
| gemma4-12b-ltx-v1/ | int8 量化文本编码器(3 分片) | 约 13.6 GB |
| connector.safetensors | 文本特征连接器(8 层 Transformer) | 约 6.3 GB |
| vae_decoder.safetensors | 标准视频 VAE 解码器 | 814,349,515 B |
| vae_decoder_pruna.safetensors | Pruna 剪枝解码器(本文主角) | 690,025,680 B |
| vae_encoder.safetensors | 视频 VAE 编码器 | 约 638 MB |
| vae_diffusion_decoder.safetensors、audio_vae.safetensors、vocoder.safetensors | 潜扩散解码器 / 音频 VAE / 声码器 | — |
| spatial_upscaler_x2_v1_1.safetensors、temporal_upscaler_x2_v1_0.safetensors | 2 倍空间 / 时间上采样器 | — |
💡 注意:本仓库不含量化 DiT。DiT 是独立的量化维度,int8 编码器与 bf16 / int8 DiT 可以自由组合,详见 README.md 的 “Why it exists” 一节。
为什么 VAE 解码是提速的关键
LTX-2.5 的出片流程可以概括为:文本编码器 → DiT(潜空间去噪)→ VAE 解码器(把潜变量还原成像素帧)。前两步有流式加载等手段可优化,而解码阶段是实打实把全部空间/时间维度展开成像素的“重活”——帧数、分辨率越高,解码占比越大。换句话说,谁能让解码变快、变省内存,谁就拿到了整条流水线的最大红利。
Pruna 剪枝 VAE 解码器:它和原装到底差在哪
vae_decoder_pruna.safetensors来自 PrunaAI 发布的PrunaVAED:一个经过剪枝 + 蒸馏微调的 LTX-2 视频 VAE 解码器,可作为原装解码器的“即插即用”替代品。仓库于 2026-07-31 将其从 diffusers 布局转换为本仓库使用的ltx-core扁平解码器格式,转换只做键名映射 + PyTorch→MLX 卷积转置,不改动任何张量数值。
几个值得留意的工程细节(均来自 README.md 说明):
- 不是单纯的“砍通道”:其中两个块携带原装解码器没有的通道适配器 ResBlock(
conv_in512→384 与 384→256,附带仿射norm3)。MLX 解码器会从权重自动推导每个层宽、并在检测到适配器时自动启用,因此无需改代码。 - 潜空间完全不动:编码器、潜变量格式、逐通道统计量都保持原装——也就是说,上游生成流程一行代码都不用改,只换解码端。
- 一份文件通吃两代:视频 VAE 在 LTX-2.3 与 LTX-2.5 之间逐字节相同,所以该文件同时服务两个版本。
- 完整性可校验:文件 690,025,680 字节,SHA-256 为
891ec5f0680acea9acbdd651c9756a26c5d3298480224356cf5ea86071846f79。
对比原装 vae_decoder.safetensors(814,349,515 B),剪枝版体积直接少了约 15%——而收益远不止参数变少这么简单。
compact24 档实测:解码约 2× 提速,峰值内存 21.1 GB → 14.5 GB
官方在24 GB M5 Pro上、compact24档位(测试单号 AB-R-0561,ltx-2-mlx-swift)给出了两组关键数据:
| 场景 | 指标 | 原装解码器 | Pruna 剪枝解码器 |
|---|---|---|---|
| compact24 档自身包络 | 每条 clip 墙钟耗时 | 基线 | −15.9%(峰值不变) |
| 解码构成瓶颈的 704×512×121 | 峰值内存 | 21.1 GB(超预算,触发换页) | 14.5 GB(预算内) |
📌一句话理解:在“解码绑死总耗时”的高分辨率场景,剪枝解码器不仅把解码速度提升到约2 倍,还把峰值激活显存从 21.1 GB 压到 14.5 GB——直接让一次原本超预算、需要 swap 的运行回到预算之内。对于 24 GB 机型的用户,这是“跑得动 / 跑得顺”的差别。
配合仓库本身的 int8 文本编码器(整程峰值 14.6 / 15.4 GB),小内存机器上的“双杠杆”组合也就完整了:编码器降基线内存 + Pruna 解码器降解码峰值,README 特别强调两者必须同时生效,缺一不可。
如何启用:一个环境变量即可切换解码器
Swift 移植版提供了两种选择方式,任选其一:
- 环境变量:
LTX_VAE_DECODER=pruna - 配置项:
LTX2Configuration.vaeDecoderPath指向剪枝解码器文件
而且在 compact24、balanced32 等低档位中,Swift 移植版已把 Pruna 解码器设为默认解码器——也就是说,按官方低档配置出片时,你其实已经在享受这份提速了。模型文件本身建议通过 Hugging Face 工具链(如hf命令行)拉取后放入工作目录,解码器路径与 vae_encoder.safetensors 同级。
兼容性与许可须知
- 许可:PrunaVAED 以 LTX-2 许可证发布,本仓库中的转换副本按 LICENSE.md 的 LTX-2 Community License 一并分发,README 对应章节即为修改声明(协议 §3.3);镜像与格式转换不改变、不放宽任何条款。
- 质量预期:解码结果是“近乎相同但非逐位一致”的视频,属于同等有效的另一种输出;官方通过盲测 A/B 判定可接受。
- 模型整体受 LTX-2 社区许可约束(含营收门槛条款),商用前请先阅读 LICENSE.md 与 ltx-acceptable-use-policy-snapshot-2026-08-12.pdf。
总结
- Pruna 剪枝 VAE 解码器是 ltx-2.5-mlx-q8 里最“立竿见影”的提速件:解码约2×提速、解码激活峰值显著下降。
- compact24 档实测:墙钟−15.9%;704×512×121 解码瓶颈场景峰值内存21.1 → 14.5 GB,超预算变预算内。
- 启用零门槛:
LTX_VAE_DECODER=pruna或直接走LTX2Configuration.vaeDecoderPath;低档位默认即启用。 - 潜空间格式与编码器保持不变,上游流程零改动,且 LTX-2.3 / 2.5 通用。
如果你的 Mac 是 24 GB 档且经常出 512×288 以上的高分辨率视频,这个剪枝解码器基本是“必开”的默认项。🎬
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考