onnx 与 pth 模型格式 | UVR5 中文站
onnx 与 pth 是 UVR5 里两套模型文件格式的扩展名,分别对应不同的推理引擎。简单说,你从「Download More Models」下载的模型,文件后缀决定了它由哪套底层框架加载,也影响了体积和速度。搞清这两者,能避免把模型放错目录或选错引擎,省去大量排错时间。
UVR5 三大引擎中,MDX-Net 用 onnx,VR 架构用 pth,Demucs 则有自己的加载方式。下面把两种格式讲清,让你下载安装时心里有数。
两种格式的定义
onnx(Open Neural Network Exchange)是一种开放的神经网络交换格式,把模型结构与权重存成统一中间表示,便于跨框架部署。pth 是 PyTorch 的默认权重存档格式,直接保存训练好的张量和网络状态,和 Python 生态紧耦合。两者都是「模型文件」,但面向的运行时不同,不能混用,放错目录软件识别不到。
引擎归属
| 格式 | 归属引擎 | 代表模型 |
|---|---|---|
| onnx | MDX-Net(onnxruntime) | UVR-MDX-NET Main、Inst 系列、Kim 系列 |
| pth | VR 架构(PyTorch) | UVR-DeEcho-DeReverb、7_HP2、UVR-DeNoise |
| 专用 | Demucs | htdemucs、htdemucs_ft、htdemucs_6s |
体积与加载差异
- onnx 模型通常经过优化导出,加载由 onnxruntime 执行,推理稳定且跨平台,启动较快;
- pth 模型体积因变体差异大,加载依赖 PyTorch,启动稍重但变体极多、调参灵活(如 Aggression);
- 模型目录里 Windows 在软件安装目录的 models 下分 MDXNET、VR、Demucs 子目录,macOS 与 Linux 在根目录 models 下,放错子目录软件识别不到;
- 手动放入文件后需重启软件才能被识别,这是最常见的「模型不显示」原因。
手动安装模型的注意事项
除了软件内下载,你也可以从社区手动获取模型文件。关键是认准后缀:onnx 扔进 models 下的 MDXNET 子目录,pth 扔进 VR 子目录,Demucs 的模型按它的目录结构放。放错目录软件不会报错,只是模型列表里不出现,很多人误以为是文件损坏。放好后必须重启 UVR5 才能扫描到。另外注意模型对应的引擎版本,老模型配新引擎可能加载失败,下载时看清说明,别拿到文件就往里塞,否则排查起来很费时间。
体积差异的实际意义
onnx 模型多在几十到一百多兆,pth 的 VR 变体小的几兆、大的上百兆,体积差异主要影响磁盘和首次加载内存,不改变分离质量上限。选择模型时不必纠结格式体积,按「要拆几轨、要什么清晰度」选用途,格式只是它背后的技术实现。磁盘紧张时优先保留常用的几个模型,冷门模型用时再下,不必全装,既省空间也减少管理负担,模型列表太长反而难找。
常见误解
onnx 比 pth 更好吗?
不是格式优劣问题,而是引擎分工。MDX-Net 用 onnx 是因它均衡通用,VR 用 pth 是因变体多、迭代快。选哪个看你要做哪种分离,而非格式本身,纠结格式不如纠结模型用途。
下一步建议
知道格式归属后,下载模型时对照「Download More Models」里的引擎分类放目录。想了解各引擎能拆几轨,回看「分轨是什么」;想看模型怎么影响质量,读「源分离是什么」。装模型前先确认磁盘剩余空间,避免解压失败。