--- license: cc-by-nc-sa-4.0 library_name: coreml pipeline_tag: image-to-image tags: - super-resolution - esrgan - coreml - non-commercial --- # Community ESRGAN upscalers for Core ML — NON-COMMERCIAL Two community ESRGAN models offered by [`upscale`](https://github.com/arraypress/swift-upscale) as opt-in variants. **Both are licensed CC BY-NC-SA 4.0: non-commercial use only**, with attribution, and anything you make from the models themselves must carry the same licence. The full licence text is in `LICENSE`. Pictures you upscale are your own; the restriction is on the models. | Package | Model | Author | Licence | |---|---|---|---| | `RealESRGAN-UltraSharp.mlpackage` | 4x-UltraSharp | Kim2091 | CC BY-NC-SA 4.0 | | `ESRGAN-MangaJPEGLQ.mlpackage` | MangaJPEGLQ | bunzero | CC BY-NC-SA 4.0 | Licences as listed by the authors and on [OpenModelDB](https://openmodeldb.info) (4x-UltraSharp, 1x-MangaJPEGLQ). The upstream Core ML mirror these come from (`LocalMuseAI/coreml-realesrgan-x4plus` at `4f6c21f7c431ae4e52ae45d11d6195fd96d93fcc`, converted by VincentGOURBIN/RealESRGAN-CoreML) labels them BSD-3; that is wrong for these two. ## Changes None to the models: each archive matched the SHA-256 Hugging Face listed upstream and is republished unzipped. Attribution: 4x-UltraSharp © Kim2091; MangaJPEGLQ © bunzero; Core ML conversion by VincentGOURBIN. This repository is shared under the same licence (CC BY-NC-SA 4.0). ## MangaJPEGLQ on Core AI (`ESRGAN-MangaJPEGLQ.aimodel`, swift-upscale 2.1+) `upscale --variant manga` crashed in swift-upscale 2.0 / upscale 0.3.0: **MangaJPEGLQ is a 1× model** (it cleans JPEG blocks out of greyscale manga without enlarging — OpenModelDB lists `1x-MangaJPEGLQ`, bunzero, CC BY-NC-SA 4.0), and the Core ML build was run as if it were 4×. This Core AI asset is exported from bunzero's original weights (`1x-MangaJPEGLQ.pth`, OpenModelDB's file host) with `export_esrgan.py`: a 256-px tile, float16, RGB in → Rec. 601 luma → the 1-channel model → copied to RGB. Parity against the original PyTorch weights on six stock-photo tiles: **min 56.6 dB, mean 61.0 dB** (`parity.py`). `upscale` now runs it as a clean-up pass before the default 4× model. The Core ML `.mlpackage` builds above stay for older versions.