GithubHelp home page GithubHelp logo

lucchetto / superimage Goto Github PK

View Code? Open in Web Editor NEW
1.4K 19.0 79.0 81.18 MB

Sharpen your low-resolution pictures with the power of AI upscaling

License: GNU General Public License v3.0

Kotlin 88.95% CMake 1.18% C++ 9.12% C 0.75%
android mnn real-esrgan super-resolution upscaling image-processing compose

superimage's Introduction

SuperImage

Sharpen your low-resolution pictures with the power of AI upscaling

SuperImage is a neural network based image upscaling application for Android built with the MNN deep learning framework and Real-ESRGAN.

The input image is processed in tiles on the device GPU, using a pre-trained Real-ESRGAN model. The tiles are then merged into the final high-resolution image. This application requires Vulkan or OpenCL support and Android 7 or above

Get it on Google Play Get it on F-Droid

Or get the latest APK from the Releases Section.

πŸ–Ό Samples

πŸ“Š Benchmarks

Results on Qualcomm Snapdragon 855 (Vulkan)

Mode Input resolution Output resolution Execution time
4x (generic) 1920x1080 3840x2160 3 minutes
16x (generic) 1920x1080 7680x4320 11 minutes
16x (drawing) 1920x1080 7680x4320 3 mins 42 seconds

πŸ“± Screenshots

Β  Β Β  Β 

πŸ’¬ Community

You can join the Telegram group for support, discussions about AI image processing, and off-topic stuff

協 Contribute

You can submit feedbacks or bug reports by opening an issue. Pull requests are welcome !

πŸ“š TODO

  • Support images with transparency
  • Batch processing
  • Web and desktop versions

πŸ“ Credits

βš–οΈ License

SuperImage is licensed under the GNU General Public License v3.0

superimage's People

Contributors

giovix92 avatar herobuxx avatar lucchetto avatar poussinou avatar sergo1217 avatar t8rin avatar timothyrusso avatar vasiliskos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

superimage's Issues

Notification info request

Is it possible to add to the notification the remaining time of the upscale process? That would be very handy.

Windows app?

This app is sooo great. Any chance to having Windows version?

App crashes while upscaling

The app crashes while upscaling. I tried to reinstall it from different sources i.e.play store, f-droid, GitHub but the issue persists.

Device Info -
Device: RED8BEL1
Model: realme RMX3561
Android: 13

Logs - logcat_03-01-2023_16-35-57.txt

Screenshots of Logs - Screenshot_2023-03-01-16-50-43-76

Add ultra sharp model

Yes add ultra sharp model, it's on stable Diffusion but it also works using Vulcan, Do it

Ultrasharp is the best in many terms

App font issue

Would it be possible to use a more "universal" font for the app? Because the currently used one has an issue in the Greek translation that's been recently added. The Greek letter "ΞΌ" appears like of another font. Check below.

Screenshot_20230223-133544

Batch processing

Would be nice if the user could select multiple images for batch processing (the model type should probably stay the same for all the images)

Edit: there's batch processing in the TODO, I'm blind πŸ€¦β€β™€οΈ

The images have a white background

I am updating png images with transparent backgrounds, specifically anime images, but when you get them you have a white and non-transparent background

error when building with cmake

[CXX1405] error when building with cmake using E:\SuperImage-master\realesrgan\core\CMakeLists.txt: -- Android: Targeting API '24' with architecture 'arm64', ABI 'arm64-v8a', and processor 'aarch64'
-- Android: Selected unified Clang toolchain

Optional: Can I know minimal which file is working for generating upscaled images from the mnn model? or for simple integration to new project which files i need?

Need to know about upscaling file

Can I know minimal which file is working for generating upscaled images from the mnn model? or for simple integration for upscaling image with mnn to new project , which files i need?

Upscaled image orientation bug

When upscaling portrait photos, the upscaled image is turned counterclockwise to landscape. The orientation data of the original image should be preserved.

Stored app data issue

I've noticed that, everytime an image is opened in the app, the app's size is increased by the data size of the image. Thus, the app's size is increased more and more by time! The bad thing is that these data are stored in the app's data, not its cache. So:

  1. Is it necessary that these data are stored? I think after an upscale is over or cancelled, the data should be deleted after exiting the app.
  2. If the data are necessary, they should be stored in the app's cache.

P.S. Can't wait for the desktop (Linux) version! πŸ˜„

Upscaling adds background to the image

I tried upscaling the image (IMAGE1, PNG), with all of the upscaling options (x4, x16) but it returns the upscaled image (IMAGE2) with a black background. IMAGE1 has transparent background. Also, tried with Real-ESRGAN vulcan (model realesr-animevideov3) which returns the image (IMAGE3) without the background. Is this expected or a bug?

IMAGE1

E7MeMgW

IMAGE2

E7MeMgW_x4

IMAGE3

E7MeMgW_realesr

multithreaded computing

now the program uses only one core of my processor on the phone, so the calculations are very slow. multithreaded computing will be able to improve the speed. please add the parameter how many cores to use in the processor.

2.0.0 Release on GitHub

In Google Play is a 2.0.0 release oft this app but not here on GitHub. Neither the source of the gplay 2.0.0 as it seems.

  • Is a OSS release of 2.0.0 planed?
  • Is the 1.x.y serie still maintained?

Desktop version out?

I've been looking recently for the desktop version, and I came across a website that does have it, but I'm not sure if it is the official one (seeing that there's no package of it in the repository here)

https://superimage.io/

That's all. App works good on phones, one pf the best utility apps I got installed. Keep up the good work!

What is the license in case I want to use only the image-scaling "engine", and how do I do it?

Hello,

I've searched for a nice library that uses neural-network to enhance/enlarge images of low resolution for quite some time, to be able to use it on an Android app.
I've only found one of Google, but it was very restricted and was more of a POC than a library:
https://ai.googleblog.com/2021/07/high-fidelity-image-generation-using.html?m=1
https://youtu.be/WCAF3PNEc_c
https://github.com/Janspiry/Image-Super-Resolution-via-Iterative-Refinement

Is it ok that I use what's available here to do it?
What is the license of just using the "engine" that does it? Is it ok that I make a closed sourced app that uses it without any issue? I don't intend to change the code of the original "engine" except for maybe if I'm forced to, to adjust it to make it work, if that's an issue.
And, how can I do it? Which files/folders should I check out?

Parallel image processing

Can you add an option to upscale multiple images at once. Because i think my device is capble of handling multiple heavy processes.

Also if you can add option to select multiple images once and then process them in serial manner.

I appreciate your work in this project.

Windows 11 – Consistent Crashing Upon 'Upscale'

%Appreciation for an incredible app on Android. Having some difficulties with the Windows version, though. I was wondering if someone could be of assistance, or maybe this has to do with my hardware and is not known yet.

Every time I try to upscale an image the APP CRASHES on Windows 11. Sometimes 16x (generic) will work but rarely does 16x (drawing).

Update: 4x (generic) is not working either. I actually can barely get the app to function at all on Windows 11.


System Information

  Time of this report: 10/13/2023, 09:36:04
         Machine name: CB0C2BCFDAAB9C9
           Machine Id: {E52D7407-3212-4294-8B31-1ADD11E3EDD6}
     Operating System: Windows 11 Home 64-bit (10.0, Build 22621) (22621.ni_release.220506-1250)
             Language: English (Regional Setting: English)
  System Manufacturer: ASUSTeK COMPUTER INC.
         System Model: ROG Zephyrus G14 GA402RJ_GA402RJ
                 BIOS: GA402RJ.319 (type: UEFI)
            Processor: AMD Ryzen 9 6900HS with Radeon Graphics         (16 CPUs), ~3.3GHz
               Memory: 16384MB RAM
  Available OS Memory: 15596MB RAM
            Page File: 16656MB used, 5339MB available
          Windows Dir: C:\WINDOWS
      DirectX Version: DirectX 12

Batch processing

I've just noticed that in your todo's list you've added "Batch processing". Since the app's process is really heavy enough for the vast majority of mobile phones, batch processing would probably takes ages to be completed, drain the battery, and most likely freeze the phone. I think this is a feature suitable only for the upcoming desktop version. Better not include it in the mobile version. It'd be only extra, useless code, that would increase the app's size.

more settings to improve

there are no settings for changing the image enhancement right now. the default settings are used. Because of this, artifacts appear in places, I am sure that they can be removed if you add the ability to change the power of image enhancement.

The images have a white background

I am updating png images with transparent backgrounds, specifically anime images, but when you get them you have a white and non-transparent background

Basic UI

The app is great, but how did you decide on the UI? The app is simple so it doesn't require a lot of things, but wouldn't it have been easier to conform to the Material 3 standard?

Cmake Error while builing

CMake Error at CMakeLists.txt:43 (add_subdirectory):
The source directory

E:/Android Project/SuperImage-master/realesrgan/core/MNN

does not contain a CMakeLists.txt file.

Import image bug

Tapping the "Select image" button opens the default Android image picker. If you choose the option it has to select an image through one of the available apps on the top (see the red arrow in the attached screenshot), doesn't work. The respective app opens, but selecting an image doesn't import it.
Using a Nokia 6.2 with Android 11.

Screenshot_20230221-175325_1

add algorithm GFPGAN

I have studied the issue of image enhancement. this algorithm is the best way to deal with bad images. Can you add to this algorithm?
https://github.com/TencentARC/GFPGAN

the current algorithms that they are worse in the program, I did a comparison. if you strive, then you need to add the best algorithm to the program

improvements without increasing the image size

Please add the ability to improve the picture without increasing the size of this picture. I have large pictures after the scanner and I only need to improve them without increasing the size

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.