First super-resolution model designed for Apple Neural Engine. 2x upscale, real-time, on-device.
Project description
PiperSR
First super-resolution model designed and optimized for Apple Neural Engine.
2x upscale. Real-time. Runs entirely on the ANE in every Mac, iPhone, and iPad — no GPU, no cloud.
| Metric | PiperSR |
|---|---|
| PSNR (Set5) | 37.54 dB |
| FPS (M2 Max) | 44.4 |
| Compute | Apple Neural Engine |
| Precision | fp16 |
| Scale | 2x |
Built by Ben Racicot. Available on ModelPiper.com.
Quick Start
pip install pipersr
from pipersr import upscale
output = upscale("input.png")
output.save("output_2x.png")
Or use the script directly:
python inference.py --input photo.png --output photo_2x.png
Download
The CoreML model (PiperSR_2x.mlpackage, 916 KB) is included in this repo. Clone and run — no separate download needed.
Also available on ModelPiper.com.
Benchmarks
Tested on M2 Max, macOS 15+. All models running on the same hardware.
| Model | Set5 PSNR (dB) | FPS (M2 Max) | Compute | Format |
|---|---|---|---|---|
| PiperSR | 37.54 | 44.4 | ANE | CoreML |
| ESPCN (CoreML) | 33.0 | — | CPU/GPU | CoreML |
| IMDN (CoreML) | 34.4 | — | GPU | CoreML |
| Real-ESRGAN (CoreML) | 35.8 | — | GPU | CoreML |
Run
python benchmark.pyon your own hardware to fill in the FPS column. We publish what we measure. Reproduce it yourself.
Samples
| Input (1x) | PiperSR Output (2x) |
Why ANE?
Every Apple Silicon device has a Neural Engine — a dedicated inference accelerator that most ML models ignore. The entire ML ecosystem targets CUDA GPUs. PiperSR was designed from scratch for ANE, not converted from a GPU model.
The result: real-time super-resolution with zero GPU usage. Your GPU stays free for rendering, compositing, or whatever else you're doing.
For real-time video upscaling powered by PiperSR, see ToolPiper.
Supported Hardware
Any Apple Silicon device:
- Mac: M1, M1 Pro/Max/Ultra, M2, M2 Pro/Max/Ultra, M3, M3 Pro/Max/Ultra, M4, M4 Pro/Max/Ultra, M5
- iPhone: A15+
- iPad: M1+
Performance scales with ANE generation. M2 Max benchmarks shown above.
Model Details
- Task: Single-image 2x super-resolution
- Input: RGB image, any resolution (CoreML flexible input)
- Output: 2x upscaled RGB image, fp16
- Format: CoreML .mlpackage
- Compute target: Apple Neural Engine via
.cpuAndNeuralEngine
For the full model card, see MODEL_CARD.md.
For Video & Real-Time
PiperSR is an image model. For real-time video super-resolution with frame scheduling, buffering, and streaming — see ToolPiper, which integrates PiperSR into a full on-device video pipeline.
License
- Code (inference.py, benchmark.py, pipersr package): AGPL-3.0
- Model weights (.mlpackage): PiperSR Model License — free for personal and academic use, attribution required, commercial use requires a separate license
If you use PiperSR in your project, include:
Powered by PiperSR from ModelPiper — https://modelpiper.com
Links
- ModelPiper.com — Download PiperSR, browse benchmarks, explore on-device models
- ToolPiper — Local macOS AI toolkit with real-time video upscaling
- Ben Racicot — Author
Citation
@software{pipersr2026,
author = {Racicot, Ben},
title = {PiperSR: Real-Time Super-Resolution for Apple Neural Engine},
year = {2026},
url = {https://github.com/ModelPiper/PiperSR},
note = {Available at https://modelpiper.com}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipersr-1.0.0.tar.gz.
File metadata
- Download URL: pipersr-1.0.0.tar.gz
- Upload date:
- Size: 867.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abf55713763c8b5d29154b13c02a0f718dc34bc237fa7c36091b7150b91c0fcd
|
|
| MD5 |
f23301635da3dbc64737547d09df11d2
|
|
| BLAKE2b-256 |
65ec7552f4e1b2820f3bdba1b55f2816a688cc9337b234aaa855154adedb04fd
|
File details
Details for the file pipersr-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pipersr-1.0.0-py3-none-any.whl
- Upload date:
- Size: 865.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba0e73bf1a30a5653d685c7b7c3c0fc1afdb6ea3f72d467483c7a418dd7e6b9d
|
|
| MD5 |
5d378903c124129b38828ebe801b9b43
|
|
| BLAKE2b-256 |
bb07589b5789b9d364671d738c52c0c60cf6903be3e86a35d23e6f840fbbfbae
|