# Upscayl 自定义模型教程：NCNN bin/param 配对与线稿对照

核对来自官方自定义模型仓库的 NCNN 文件对，导入桌面设置后用同一原创线稿记录实际模型选择与细节。

已运行原创输入生成与离线文件校验；本页模型/桌面应用未实跑，比较脚本供你运行后使用。

## 逐步操作

### 1. 打开原创线稿并固定比较区域

input.png 包含原创细线、曲线、网点和小字标记，crop-regions.json固定三处坐标。它是输入，正文最近邻放大仅帮助看原像素，不是某个自定义模型的成功结果。

```bash
python3 verify.py
```

### 2. 获取真正的 NCNN 模型文件对

从官方指南链接的 custom-models 仓库选择模型，阅读对应许可与原生倍率。示例models.example/只有文件名说明，不含伪造权重；不要把 .pth 直接改成 .bin。

### 3. 在本机校验配对和结构

将真实模型放入 models/ 后运行 verify_models.py。它检查同stem的 .bin/.param、非空与 NCNN param文本头；通过只说明基础文件结构，不等于模型兼容或效果通过。

```bash
python3 verify_models.py models
```

### 4. 打开实际 Add Custom Models 设置

在 Upscayl Settings 找 Add Custom Models / Select Folder，选择上一步目录，再回主界面选择对应文件名。官方 GPU/日志截图只作真实设置风格参考，不能冒充本页已导入。

### 5. 用同一输入分别跑两个配置

记录所选模型名、文件哈希、倍率、格式和日志；两次使用同一 input.png 与独立输出目录。没装GPU应用时保持“未运行”，不生成假模型对比图。

### 6. 同坐标比较线条和网点

compare.py 要求两版真实输出尺寸相同，按固定比例抽取细线、曲线和网点。检查线条是否粘连、网点是否被抹平；不能依据模型名称直接宣布更清晰。

```bash
python3 compare.py output-model-a.png output-model-b.png
```

### 7. 保留不兼容或漏配文件的负例

test_models.py 用临时目录验证缺.bin、缺.param、空文件和合法结构四类分支，标为文件校验测试。真正GPU加载失败需另存应用日志，不将文件测试当推理通过。

```bash
python3 test_models.py
```

## 来源与边界

- [官方自定义模型导入步骤](https://github.com/upscayl/upscayl/wiki/Guide#custom-models)
- [官方链接的 NCNN 模型仓库](https://github.com/upscayl/custom-models)
- [模型原生倍率与后续缩放](https://github.com/upscayl/upscayl/wiki/Guide#scale-option)

素材：照片样式输入由 apizt 原创生成；几何商品、积木、文具、纹理、线稿和透明标尺由代码原创绘制。输入/标注/官方示例均不是未运行模型的输出。
官方代码/模型、第三方依赖各保留其独立许可；包内不含模型权重或API凭证。
