模型说明
本站用的是两个开源模型,都是 MIT / BSD 类的宽松授权,可商用。
AI 放大:Real-ESRGAN
采用 Real-ESRGAN General x4v3,4 倍超分。Real-ESRGAN 由 Xintao Wang 等人提出,目标是处理真实场景中的退化图像(压缩痕迹、轻微模糊、噪点), 而不只是理想条件下的超分。
| 项 | 值 |
|---|---|
| 模型体积 | 4.9 MB |
| 放大倍率 | 4× |
| 输入尺寸 | 固定 128×128,大图会切成瓦片逐块处理 |
| 授权 | BSD-3-Clause(模型权重) |
| ONNX 导出 | Qualcomm AI Hub |
因为输入是固定 128×128,大图会被切成 128 的瓦片逐块推理,再把结果拼回去。 拼接处需要一定的重叠与融合,否则会出现网格状接缝 —— 这是超分类应用的通用做法。
AI 抠图:BiRefNet
采用 BiRefNet(Bilateral Reference Network),一个二分图像分割模型。 BiRefNet 由 Peng Zheng 等人提出, 在多个显著性分割与抠图数据集上表现都不错,尤其是发丝、毛绒这类高频边缘。
两个版本怎么选
界面上有两个选项,但这不是「画质高低」的区别,而是「能不能用」的区别:
| 版本 | 什么时候用 | 体积 |
|---|---|---|
| BiRefNet Lite 默认推荐 |
平时都用这个。发丝、毛绒这类细节也能抠得比较干净,绝大多数图片都够用。 | 94 MB(fp16) |
| BiRefNet Full 兼容备用 |
只有设备不支持 WebGPU 时才会用到。效果和 Lite 基本一样,但文件大得多、速度慢不少。 | 452 MB |
大多数情况下你不需要手动选。程序会按设备能力自动挑合适的版本。
只有当你明确知道自己在做什么(比如在没有 WebGPU 的机器上想强制指定)时,才需要手动切换。
技术细节
| 项 | 值 |
|---|---|
| 输入尺寸 | 固定 512×512,整图一次推理(不做瓦片切分) |
| 输入张量名 | input_image |
| 输出张量名 | output_image |
| 输出形式 | 未激活的 logits,需过 sigmoid 得到 0–1 的 alpha |
| 预处理 | 直接 resize 到 512×512(不做 letterbox),ImageNet 均值方差归一化 |
| 授权 | MIT |
遮罩分辨率上限是 512×512。源图比这大时,边缘精度受遮罩分辨率限制, 而不是受模型能力限制。结果面板下方会有一条附注说明这件事。
输出张量名踩过坑。BiRefNet 有多个 ONNX 导出,不同导出者给输出起的名字不一样。
实测确认这两个 revision 都叫
output_image(不是常见的 logits)。
代码里做了容错:注册表里的名字对不上时会退到「唯一输出」或按形状推断。
权重从哪来
| 模型 | 来源 |
|---|---|
| Real-ESRGAN x4v3 | 提交在仓库 public/models/ 下,随站点一起部署 |
| BiRefNet Lite | studioludens/birefnet-lite-512,HuggingFace |
| BiRefNet Full | naddy24/birefnet-512-webgpu,HuggingFace |
HuggingFace 上的地址是可变的,所以代码里钉死了具体的 commit revision —— 保证今天跑通的模型明天还是同一个。升级模型等于改这个 revision 常量。