Skip to main content

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.py on 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pipersr-1.0.0.tar.gz (867.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pipersr-1.0.0-py3-none-any.whl (865.6 kB view details)

Uploaded Python 3

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

Hashes for pipersr-1.0.0.tar.gz
Algorithm Hash digest
SHA256 abf55713763c8b5d29154b13c02a0f718dc34bc237fa7c36091b7150b91c0fcd
MD5 f23301635da3dbc64737547d09df11d2
BLAKE2b-256 65ec7552f4e1b2820f3bdba1b55f2816a688cc9337b234aaa855154adedb04fd

See more details on using hashes here.

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

Hashes for pipersr-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba0e73bf1a30a5653d685c7b7c3c0fc1afdb6ea3f72d467483c7a418dd7e6b9d
MD5 5d378903c124129b38828ebe801b9b43
BLAKE2b-256 bb07589b5789b9d364671d738c52c0c60cf6903be3e86a35d23e6f840fbbfbae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page