【免费下载链接】VOSR2-fp16
VOSR2-fp16 是 CVPR 2026 一步式生成式图像超分辨率模型 VOSR2 的 MLX 权重仓库,默认以 fp16 精度发布,并可在加载时自动派生 int8 量化档。本指南带你用一张对比表看懂 fp32 / fp16 / int8 / bf16 四条精度的画质与速度取舍,快速为你的超分辨率任务选对精度。
VOSR2-fp16 是什么:三个组件组成一条超分辨率流水线
VOSR2("vision-only" one-step generative super-resolution)无需多步扩散迭代,一次前向即可把低清图放大 1–4 倍。MLX 移植版将上游检查点逐张量精确转换(无二次量化)后拆成三个权重文件:
| 文件 | 组件 | 说明 |
|---|---|---|
| transformer_fp16.safetensors | LightningDiT 1.394 B 主干 | 权重约 2.8 GB,超分核心 |
| vae_fp16.safetensors | Qwen-Image 2-D VAE | 潜变量编解码 |
| dinov2_fp16.safetensors | DINOv2 ViT-L/14(仅 blocks 0–17) | 语义编码器,448² 输入 |
| config.json | 上游 args.json + VAE/DINOv2 配置 | 结构契约:dim 1536、depth 36、num_heads 24、patch_size 2 |
config.json 中的key_contract字段明确写了转换约定:卷积权重为(O,kH,kW,I)布局、nn.Sequential子模块映射到layers.N、DINOv2 只保留 DiT 实际消费的 18 个 block——这也是新手理解"为什么文件只有这三个"的答案。
为什么 fp16 胜出 bf16:11.7 dB 的差距从何而来
很多新手的第一反应是:MLX 生态里 bf16 更常见,应该选 bf16。但这个项目没有发布 bf16 版——因为实测它只拿到 37.6 dB,而 fp16 拿到 49.3 dB(均相对 fp32 参考、解码 512² 输出对比)。
bf16 的"范围优势"在这里用不上
fp16 与 bf16 的关键区别在于尾数与指数的分配:
- fp16:5 位指数(最大可表示约 65504),11 位尾数(相对精度约 0.05%)
- bf16:8 位指数(范围与 fp32 相同),仅 7 位尾数(相对精度约 0.39%)
VOSR2 的 DiT 残差流(residual stream)幅值最大只到|126|,远远落在 fp16 的 65504 表示范围内——bf16 那套"防溢出"的大范围完全用不上,反而要白白承受 8 倍的尾数精度损失。
fp16 的尾数精度直接兑现成画质
在残差流这种"数值累加放大误差"的敏感区域,bf16 的粗尾数让误差滚雪球,PSNR 从 49.3 dB 掉到 37.6 dB,差了11.7 dB——换算成均方误差约是 4 倍以上,放大图上肉眼可辨。结论很直接:
当激活值范围受控时,选精度(尾数位宽)而不是选范围(指数位宽),fp16 是 VOSR2 的默认且推荐精度。
int8 组量化:加载时自动派生的加速档
group-64 权重量化的原理
README.md 说明:fp16 泳道是发布泳道,Swift/MLX 移植版(mlx-vosr-swift)在加载时自动从中派生 int8 档——对 DiT 内的 Linear 层做 group-64、仅权重的量化(激活仍保持高精度),无需你额外转换或下载第二份权重。
46.7 dB:画质损失肉眼难辨
fp16 + int8 DiT 组合实测46.7 dB,只比纯 fp16 的 49.3 dB 低 2.6 dB。经验上 PSNR 高于 40 dB 的输出与参考几乎不可区分,因此 int8 档把 1.39 B 主干的权重内存/带宽占用大约砍半,换来的画质代价可以忽略——这就是"兼顾画质与速度"的实现方式。
三条精度泳道对比:一张表看懂
| 精度泳道 | PSNR(相对 fp32 参考) | 定位 | 适用场景 |
|---|---|---|---|
| fp32(mlx-community/VOSR2-fp32) | 115.5 dB(分块 1024² 达 121.9 dB) | 对齐 / 参考基线 | 验证、生成基准图 |
| fp16(本仓库) | 49.3 dB | 默认发布泳道 | 日常超分,推荐起点 |
| fp16 + int8 DiT | 46.7 dB | 加载时自动派生 | 显存/带宽紧张、追求速度 |
| bf16(未发布) | 37.6 dB | 实测不达标 | 不推荐 |
在 mlx-vosr-swift 中选择精度:最快配置方法
配合 MLXEngine 的imageUpscale使用时,精度只是一个配置项,首次运行会自动物化本仓库权重:
let id = try await engine.register( VOSRUpscalePackage.registration, configuration: VOSRConfiguration(quant: .fp16) ) let out = try await engine.run( ImageUpscaleRequest(image: image, scale: 2), package: id // ×1…×4 )需要更省内存时按移植版文档切换到 int8 档即可,其余流程不变。
选型清单:30 秒做出决定
- ✅普通用户:直接
quant: .fp16,画质与资源的最优平衡点 - ⚡内存吃紧 / 批量处理:用 int8 派生档,PSNR 仅从 49.3 dB 到 46.7 dB
- 🔬对齐验证 / 出版级基准:用 fp32 参考泳道
- 🚫bf16:残差流精度不足,37.6 dB 不达标,跳过
- ⚠️提示:VOSR2 是生成式模型,会"重写"清晰小字。文字密集的素材请走可读性保护流程再上采样
核心资料入口:README.md(泳道说明与对齐数据)、config.json(结构契约)。
【免费下载链接】VOSR2-fp16
相关推荐
RestoreFormerPlusPlus-fp32精度实验报告:为什么这里fp16反而胜过bf16?完整解析
RestoreFormerPlusPlus fp32精度实验报告:为什么这里fp16反而胜过bf16?完整解析 RestoreFormerPlusPlus fp
oneDNN量化计算权威指南:INT8、FP16、BF16精度优化策略
oneDNN量化计算权威指南:INT8、FP16、BF16精度优化策略 oneAPI Deep Neural Network Library oneDNN 提供
ComfyUI量化技术:FP16、INT8精度优化指南
ComfyUI量化技术:FP16、INT8精度优化指南 在图像生成领域,模型精度与性能的平衡始终是核心挑战。ComfyUI作为模块化的稳定扩散GUI,提供了灵活
人工智能大模型媒体生成计算机视觉推理引擎本地部署
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考