mlboydaisuke/Real-ESRGAN-x4-CoreML
Real-ESRGAN 4x — Core ML
Super Resolution, 2021
Real-world blind super-resolution. 4× upscale from any input. Handles noise, blur, and JPEG artifacts. 512×512 input → 2048×2048 output.
<p><img src="https://huggingface.co/mlboydaisuke/Real-ESRGAN-x4-CoreML/resolve/main/media/8c997df784.png" alt="Real-ESRGAN 4x demo" width="49%"> <img src="https://huggingface.co/mlboydaisuke/Real-ESRGAN-x4-CoreML/resolve/main/media/166187d198.jpg" alt="Real-ESRGAN 4x demo" width="49%"></p>
Core ML conversion of xinntao/Real-ESRGAN for on-device inference on iPhone, iPad and Mac. Converted with coremltools; the packages are stateless, so all sequencing and buffering lives in your Swift code.
Files
compute_units is not a suggestion -- it is the configuration the conversion was verified against. Moving a package to a different compute unit can silently change the numerics (FP16 attention overflow) or crash on the GPU.
Download
hf download mlboydaisuke/coreml-zoo --include "realesrgan/*" --local-dir ./realesrgan
unzip './realesrgan/realesrgan/*.zip' -d ./realesrganUse in Swift
import CoreML
let config = MLModelConfiguration()
config.computeUnits = .all // as converted — see the table above
// Unzip the .mlpackage, drop it into your Xcode target and Xcode compiles it
// at build time:
let model = try RealESRGAN_x4(configuration: config)
// ...or compile a downloaded .mlpackage at runtime:
let compiled = try await MLModel.compileModel(at: mlpackageURL)
let model = try MLModel(contentsOf: compiled, configuration: config)Demo
- Models Zoo — this model is downloadable and runnable inside the Models Zoo app on the App Store, no build required.
Conversion
- Pitfalls hit during conversion (FP16 overflow, ANE buffer limits, stride handling): `docs/coreml_conversion_notes.md`
- Model index: CoreML-Models
License
The conversion inherits the upstream license: BSD-3-Clause.
Credits
- Upstream authors: xinntao/Real-ESRGAN, 2021
- Core ML conversion: john-rocky (Daisuke Majima)
<!-- funnel:v1 -->
More models in this format: Core ML Model Zoo — 46 models, each with the recipe that produced it.
Want a different model on-device? Open a request — free, open weights only; the export and its measured numbers get published publicly.
<!-- /funnel:v1 -->
