Real-ESRGAN-x4plus: Optimized for Qualcomm Devices
Real-ESRGAN is a machine learning model that upscales an image with minimal loss in quality. The implementation is a derivative of the Real-ESRGAN-x4plus architecture, a larger and more powerful version compared to the Real-ESRGAN-general-x4v3 architecture.
This is based on the implementation of Real-ESRGAN-x4plus found here. This repository contains pre-exported model files optimized for Qualcomm® devices. You can use the Qualcomm® AI Hub Models library to export with custom configurations. More details on model performance across various devices, can be found here.
Qualcomm AI Hub Models uses Qualcomm AI Hub Workbench to compile, profile, and evaluate this model. Sign up to run these models on a hosted Qualcomm® device.
Getting Started
There are two ways to deploy this model on your device:
Option 1: Download Pre-Exported Models
Below are pre-exported model assets ready for deployment.
| Runtime | Precision | Chipset | SDK Versions | Download |
|---|---|---|---|---|
| ONNX | float | Universal | QAIRT 2.45, ONNX Runtime 1.25.0 | Download |
| ONNX | w8a8 | Universal | QAIRT 2.45, ONNX Runtime 1.25.0 | Download |
| QNN_DLC | float | Universal | QAIRT 2.45 | Download |
| QNN_DLC | w8a8 | Universal | QAIRT 2.45 | Download |
| TFLITE | float | Universal | QAIRT 2.45 | Download |
| TFLITE | w8a8 | Universal | QAIRT 2.45 | Download |
For more device-specific assets and performance metrics, visit Real-ESRGAN-x4plus on Qualcomm® AI Hub.
Option 2: Export with Custom Configurations
Use the Qualcomm® AI Hub Models Python library to compile and export the model with your own:
- Custom weights (e.g., fine-tuned checkpoints)
- Custom input shapes
- Target device and runtime configurations
This option is ideal if you need to customize the model beyond the default configuration provided here.
See our repository for Real-ESRGAN-x4plus on GitHub for usage instructions.
Model Details
Model Type: Model_use_case.super_resolution
Model Stats:
- Model checkpoint: RealESRGAN_x4plus
- Input resolution: 128x128
- Number of parameters: 16.7M
- Model size (float): 63.9 MB
- Model size (w8a8): 16.7 MB
Performance Summary
| Model | Runtime | Precision | Chipset | Inference Time (ms) | Peak Memory Range (MB) | Primary Compute Unit |
|---|---|---|---|---|---|---|
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® X2 Elite | 34.461 ms | 8 - 8 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® X Elite | 65.428 ms | 37 - 37 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® 8 Gen 3 Mobile | 49.6 ms | 0 - 740 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® 8 Gen 1 Mobile | 127.564 ms | 1 - 735 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 63.675 ms | 0 - 43 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Qualcomm® QCS8450 | 127.564 ms | 1 - 735 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Qualcomm® Dragonwing™ IQ-9075 | 105.937 ms | 6 - 9 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.789 ms | 5 - 359 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Snapdragon® 8 Elite Mobile | 38.337 ms | 8 - 358 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Qualcomm® Dragonwing™ Q-8750 | 38.337 ms | 8 - 358 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | float | Qualcomm® Dragonwing™ IQ-X7181 | 65.428 ms | 37 - 37 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® X2 Elite | 10.574 ms | 3 - 3 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® X Elite | 25.981 ms | 22 - 22 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® 8 Gen 3 Mobile | 17.024 ms | 2 - 781 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® 8 Gen 1 Mobile | 40.46 ms | 2 - 803 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 147.638 ms | 2 - 4 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 24.845 ms | 0 - 29 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® QCS8450 | 40.46 ms | 2 - 803 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® 8 Elite Mobile | 12.543 ms | 2 - 497 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® 7 Gen 4 Mobile | 39.151 ms | 2 - 562 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 9.302 ms | 2 - 514 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 28.029 ms | 2 - 4 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 472.259 ms | 2 - 521 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 39.151 ms | 2 - 562 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 12.543 ms | 2 - 497 MB | NPU |
| Real-ESRGAN-x4plus | ONNX | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 25.981 ms | 22 - 22 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® X2 Elite | 34.487 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® X Elite | 65.052 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® 8 Gen 3 Mobile | 49.423 ms | 0 - 706 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® 8 Gen 1 Mobile | 126.189 ms | 0 - 711 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® QCS8275 | 452.078 ms | 1 - 353 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 63.626 ms | 0 - 2 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® SA8775P | 105.53 ms | 1 - 352 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® SA8650P | 105.53 ms | 1 - 352 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® SA8255P | 105.53 ms | 1 - 352 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® QCS8450 | 126.189 ms | 0 - 711 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-9075 | 108.205 ms | 0 - 5 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® 8 Elite Gen 5 Mobile | 25.378 ms | 0 - 335 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® SA7255P | 452.078 ms | 1 - 353 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Snapdragon® 8 Elite Mobile | 37.965 ms | 0 - 333 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® SA8295P | 111.258 ms | 1 - 358 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® Dragonwing™ Q-8750 | 37.965 ms | 0 - 333 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | float | Qualcomm® Dragonwing™ IQ-X7181 | 65.052 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® X2 Elite | 10.57 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® X Elite | 26.013 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® 8 Gen 3 Mobile | 16.737 ms | 0 - 685 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® 8 Gen 1 Mobile | 37.391 ms | 0 - 713 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 146.462 ms | 0 - 2 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® QCS8275 | 69.005 ms | 0 - 485 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 24.437 ms | 0 - 569 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® SA8775P | 22.824 ms | 0 - 486 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® SA8650P | 22.824 ms | 0 - 486 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® SA8255P | 22.824 ms | 0 - 486 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® QCS8450 | 37.391 ms | 0 - 713 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® 8 Elite Mobile | 12.464 ms | 0 - 426 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® 7 Gen 4 Mobile | 39.084 ms | 0 - 485 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 9.206 ms | 0 - 441 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 22.986 ms | 2 - 4 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 478.041 ms | 0 - 460 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® SA7255P | 69.005 ms | 0 - 485 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® SA8295P | 36.431 ms | 0 - 493 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 39.084 ms | 0 - 485 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 12.464 ms | 0 - 426 MB | NPU |
| Real-ESRGAN-x4plus | QNN_DLC | w8a8 | Qualcomm® Dragonwing™ IQ-X7181 | 26.013 ms | 0 - 0 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Snapdragon® 8 Gen 3 Mobile | 50.475 ms | 0 - 744 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Snapdragon® 8 Gen 1 Mobile | 146.666 ms | 4 - 732 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® QCS8275 | 452.685 ms | 3 - 394 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 63.135 ms | 3 - 6 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® SA8775P | 105.911 ms | 3 - 392 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® SA8650P | 105.911 ms | 3 - 392 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® SA8255P | 105.911 ms | 3 - 392 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® QCS8450 | 146.666 ms | 4 - 732 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® Dragonwing™ IQ-9075 | 106.093 ms | 3 - 46 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Snapdragon® 8 Elite Gen 5 Mobile | 26.354 ms | 3 - 377 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® SA7255P | 452.685 ms | 3 - 394 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Snapdragon® 8 Elite Mobile | 37.535 ms | 3 - 368 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® SA8295P | 110.469 ms | 3 - 392 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | float | Qualcomm® Dragonwing™ Q-8750 | 37.535 ms | 3 - 368 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Snapdragon® 8 Gen 3 Mobile | 13.904 ms | 1 - 654 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Snapdragon® 8 Gen 1 Mobile | 35.272 ms | 1 - 660 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS6490 | 116.343 ms | 1 - 26 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® QCS8275 | 64.848 ms | 1 - 449 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ QCS8550 (Proxy) | 18.911 ms | 1 - 4 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® SA8775P | 18.283 ms | 1 - 448 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® SA8650P | 18.283 ms | 1 - 448 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® SA8255P | 18.283 ms | 1 - 448 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® QCS8450 | 35.272 ms | 1 - 660 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Snapdragon® 8 Elite Mobile | 11.842 ms | 1 - 479 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Snapdragon® 7 Gen 4 Mobile | 32.668 ms | 1 - 446 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Snapdragon® 8 Elite Gen 5 Mobile | 7.642 ms | 1 - 507 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ IQ-9075 | 18.271 ms | 0 - 25 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-6690 | 437.123 ms | 1 - 435 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® SA7255P | 64.848 ms | 1 - 449 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® SA8295P | 34.554 ms | 1 - 448 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-7790 | 32.668 ms | 1 - 446 MB | NPU |
| Real-ESRGAN-x4plus | TFLITE | w8a8 | Qualcomm® Dragonwing™ Q-8750 | 11.842 ms | 1 - 479 MB | NPU |
License
- The license for the original implementation of Real-ESRGAN-x4plus can be found here.
References
- Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data
- Source Model Implementation
Community
- Join our AI Hub Slack community to collaborate, post questions and learn more about on-device AI.
- For questions or feedback please reach out to us.
