【免费下载链接】LTX-2-FP8
LTX-2-FP8是 Unsloth 基于 Lightricks 开源视频生成模型LTX-2制作的 FP8 / INT8 量化版模型仓库:它用torchao 动态激活量化把 19B 音视频 DiT 的 transformer 预量化为检查点,加载时不再需要 55GB,而是约37GB 显存常驻,加载速度更快、画质损失极小,是低显存显卡本地跑通 LTX-2 视频生成的实用方案。
一、它到底是什么?先看清仓库结构
LTX-2 是一个 DiT 架构的音视频联合生成基础模型——同一个模型同时生成画面与音效。这个仓库 = 原版 LTX-2 的完整组件 + 预量化好的 transformer 检查点,外加一个预转 FP8 的文本编码器。
| 组件 | 路径 | 说明 |
|---|---|---|
| Transformer(量化主角) | transformer/ | 48 层、32 头的 LTX2VideoTransformer3DModel,见 transformer/config.json |
| FP8 单文件检查点 | LTX-2-FP8.pt(18.9 GB) | torchao 动态激活量化后的完整 transformer |
| INT8 单文件检查点 | LTX-2-INT8.pt(19.1 GB) | 同上的 int8 方案版本 |
| 分片 safetensors | LTX-2-FP8.safetensors | 与 .pt 等价的分片格式 |
| 预转 FP8 文本编码器 | LTX-2-text_encoder-FP8.pt(13.2 GB) | 原 48.7 GB 的 fp32 编码器瘦身版 |
| 其余组件 | vae/、audio_vae/、vocoder/、latent_upsampler/、connectors/、tokenizer/、scheduler/ | 保持原精度,未做量化 |
📌 整个 diffusers 管线的组件清单定义在 model_index.json,许可条款见 LICENSE 与 NOTICE。
二、为什么需要量化?显存账本算给你看 👇
原版的 dense bf16 transformer 约 37.7 GB 权重(transformer/diffusion_pytorch_model.safetensors.index.json 中total_size: 37758861824),加载进显存并做推理时实际要占用约55 GB。而 LTX-2-FP8 量化检查点常驻显存约37 GB:
| 加载方式 | 常驻显存 | 加载耗时 |
|---|---|---|
| 原版 bf16 直接加载 | 约 55 GB | 82–92 秒 |
| 原版 bf16 + 在线量化 | 约 37 GB | 34–50 秒 |
| LTX-2-FP8 预量化检查点 | 约 37 GB | 21–25 秒 |
预量化检查点把"边加载边量化"的开销直接省掉,又快又省。
三、torchao动态激活量化:核心原理拆解
这是整篇文章的核心。torchao 的 "Dynamic Activation Quantization" 配置包含两半,处理方式完全不同:
1️⃣ 权重:静态预量化(一次搞定)加载时一次性把 bf16 权重量化成目标格式(FP8 或 INT8),之后每次前向都直接用量化后的权重做矩阵乘。这就是为什么检查点可以直接保存下来复用。
2️⃣ 激活:动态运行时量化(每步都算)激活值(每层输入的特征)分布随内容变化,无法提前量化。torchao 在每次前向传播时,对当前激活张量实时统计缩放因子(scale)再量化,计算完立刻释放,不占持久显存——这就是 "Dynamic" 的含义。
两个方案的工程细节:
- INT8:
Int8DynamicActivationInt8WeightConfig—— 激活按per-token(每个 token 一个 scale)、权重按per-channel(每个输出通道一个 scale),底层调用torch._int_mm做整数矩阵乘。 - FP8:
Float8DynamicActivationFloat8WeightConfig—— 激活按PerRow粒度、e4m3格式,底层调用torch._scaled_mm做缩放矩阵乘。
⚠️一个容易踩的坑:FP8 的动态激活 scale 可能出现 0(某一行的激活全为 0),导致除法炸出 NaN。torchao 0.13+ 需要用activation_value_lb=1e-12给 scale 设一个下界兜底——本仓库的检查点已按此处理,加载即用。
💡 关键保证:加载预量化检查点,与"加载 bf16 再当场量化"在比特级别完全一致。你省掉的是流程,不是精度。
四、FP8 vs INT8 怎么选?
| 维度 | FP8(推荐) | INT8 |
|---|---|---|
| 文件 | LTX-2-FP8.pt 18.9 GB | LTX-2-INT8.pt 19.1 GB |
| 量化格式 | e4m3 浮点 | 8 位整数 |
| 同种子首帧 LPIPS(越低越好) | 0.26 | 0.23 |
| 加载耗时 | 约 25 秒 | 约 21 秒 |
仓库用"同种子首帧 LPIPS"对比了量化版与 bf16 原版(12 步采样,整套用例均值 0.24/0.26,单案例硬性检查全部通过)。INT8 理论上略好一点点,FP8 浮点动态范围更自然——两者差距都在人眼难以察觉的范围内,任选其一即可,追求文件略小选 FP8。
另外,文本编码器也做了瘦身:LTX-2-text_encoder-FP8.pt 把下载量从 48.7 GB(fp32)压到 13.2 GB,且逐张量验证与"下载原版 + 加载时转 fp8"完全一致(1066 个张量,660 个转入 fp8 存储),可直接用torch.load(weights_only=True)加载。
五、量化质量如何验证的?
官方在torch 2.10 + torchao 0.17环境下,用相同种子分别跑量化版与 dense bf16 原版,对生成片段做了三重检查:
- LPIPS-vgg / PSNR:感知差异与像素差异均在可接受范围;
- 非有限值检查:无 NaN / Inf;
- 黑帧检查:无全黑废帧。
仓库内 samples/ 目录即 "cute sloth typing on a computer" 提示词生成的样例首帧(INT8 / FP8 各 3 张,seed 0–2),可用来直观感受量化后的画质。
六、上手清单:3 步跑起来 ✅
- 选检查点:按上文选 LTX-2-FP8.pt 或 LTX-2-INT8.pt,替换你 LTX-2 部署中的 transformer 权重即可(加载 API 与原版一致);
- 环境要求:Python ≥ 3.12、CUDA > 12.7、PyTorch ≈ 2.7、torchao ≥ 0.13(FP8 动态激活 scale 下界需要);
- 显存规划:transformer 常驻约 37 GB,若你的显卡不足 40 GB,配合 diffusers 的
enable_sequential_cpu_offload或 VAE tiling(vae.enable_tiling())进一步压缩峰值显存。
🔎 小贴士:LTX-2 的宽高须被 32 整除、帧数须为 8+1 的倍数;分辨率/帧数不满足时先用 -1 填充再裁切。
七、FAQ 常见问题
Q:FP8 需要新显卡(RTX 50 系)吗?不挑显卡。FP8 量化主要省的是显存和加载时间,torch._scaled_mm在常规数据中心与消费级显卡上均可用。
Q:为什么 VAE、文本编码器(原版)不做量化?本仓库的量化目标是显存大头 transformer(19B)。VAE / vocoder 本身很小;文本编码器则单独提供了预转 FP8 版本(13.2 GB)解决下载体积问题。
Q:量化后能训练 / LoRA 微调吗?量化检查点面向推理。如需训练,请回到原版 bf16 模型(官方基座ltx-2-19b-dev)。
总结:LTX-2-FP8 用 torchao 动态激活量化把 19B 音视频 DiT 的显存占用从 55 GB 压到 37 GB,加载时间从 82–92 秒降到 21–25 秒,且保证比特级一致与极小的画质损失。如果你的显卡卡在 32–48 GB 之间、又想让 LTX-2 跑起来,这一套量化检查点就是目前最省事的本地部署路径。
【免费下载链接】LTX-2-FP8
相关推荐
Wan2.2-TI2V-5B-FP8 量化原理深度解析:torchao FP8/INT8 动态激活量化全机制
Wan2.2 TI2V 5B FP8 量化原理深度解析:torchao FP8/INT8 动态激活量化全机制 Wan2.2 TI2V 5B FP8 是 unsl
FLUX.1-schnell-FP8 Technical原理:torchao动态激活量化与Int8DynamicActivation详解
FLUX.1 schnell FP8 Technical原理:torchao动态激活量化与Int8DynamicActivation详解 FLUX.1 schn
MiniMax-H3-FP8 显存优化终极指南:如何把 57GB 峰值压到 37GB 实现单卡渲染
MiniMax H3 FP8 显存优化终极指南:如何把 57GB 峰值压到 37GB 实现单卡渲染 MiniMax H3 FP8 是 Unsloth 发布的 M
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考