[HN Gopher] Upscayl - Free and Open Source AI Image Upscaler for...
       ___________________________________________________________________
        
       Upscayl - Free and Open Source AI Image Upscaler for Linux, macOS
       and Windows
        
       Author : stoicjumbotron
       Score  : 151 points
       Date   : 2022-08-28 14:42 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | Kukumber wrote:
        
         | mmastrac wrote:
         | Show HN comment guidelines:
         | 
         | Be respectful. Anyone sharing work is making a contribution,
         | however modest.
         | 
         | Ask questions out of curiosity. Don't cross-examine.
         | 
         | Instead of "you're doing it wrong", suggest alternatives. When
         | someone is learning, help them learn more.
         | 
         | When something isn't good, you needn't pretend that it is, but
         | don't be gratuitously negative.
        
         | NayamAmarshe wrote:
         | The binaries themselves result in 10-25 megabytes. Along with
         | that we ship multiple models currently.
         | 
         | I'm not sure if around 300mb would be considered 'bloat' for an
         | AI Image Upscaler. People who have low end hardware
         | unfortunately cannot use the application anyway.
        
           | simonw wrote:
           | Just had a look in the installed app on macOS:
           | % du -h /Applications/Upscayl.app/Contents/Resources/models
           | 76M /Applications/Upscayl.app/Contents/Resources/models
           | 
           | 76MB of models                   / % ls -lah
           | /Applications/Upscayl.app/Contents/Resources/models
           | total 155920         drwxr-xr-x@ 14 simon  admin   448B Aug
           | 27 04:44 .         drwxr-xr-x@ 62 simon  admin   1.9K Aug 27
           | 04:44 ..         -rw-r--r--@  1 simon  admin    32M Aug 27
           | 04:44 df2k.bin         -rw-r--r--@  1 simon  admin   113K Aug
           | 27 04:44 df2k.param         -rw-r--r--@  1 simon  admin
           | 1.2M Aug 27 04:44 realesr-animevideov3-x2.bin         -rw-r--
           | r--@  1 simon  admin   3.1K Aug 27 04:44 realesr-
           | animevideov3-x2.param         -rw-r--r--@  1 simon  admin
           | 1.2M Aug 27 04:44 realesr-animevideov3-x3.bin         -rw-r--
           | r--@  1 simon  admin   3.1K Aug 27 04:44 realesr-
           | animevideov3-x3.param         -rw-r--r--@  1 simon  admin
           | 1.2M Aug 27 04:44 realesr-animevideov3-x4.bin         -rw-r--
           | r--@  1 simon  admin   3.0K Aug 27 04:44 realesr-
           | animevideov3-x4.param         -rw-r--r--@  1 simon  admin
           | 8.5M Aug 27 04:44 realesrgan-x4plus-anime.bin         -rw-r--
           | r--@  1 simon  admin    30K Aug 27 04:44 realesrgan-x4plus-
           | anime.param         -rw-r--r--@  1 simon  admin    32M Aug 27
           | 04:44 realesrgan-x4plus.bin         -rw-r--r--@  1 simon
           | admin   113K Aug 27 04:44 realesrgan-x4plus.param
        
             | NayamAmarshe wrote:
             | I could probably save some size by removing the models that
             | we aren't using but we eventually are going to use them in
             | the next build so that's one of the stupid reasons I didn't
             | remove it (probably should have).
             | 
             | Electron is definitely heavy but it's also the only
             | framework that ships with node runtime, so it was the best
             | option for us at the moment.
        
           | copperx wrote:
           | Thanks. I just sent this to my graphic designer friend and
           | was very excited. This is a though crowd.
        
         | MitPitt wrote:
         | It's obviously the trained model that's heavy. It can't
         | possibly be even close to 1mb.
        
           | Kukumber wrote:
           | It's the electron envelop
        
       | simonw wrote:
       | Nice to see one of these that can use the GPU on my Mac laptop
       | out of the box - I just tried it after installing from the .dmg,
       | it worked great.
        
         | NayamAmarshe wrote:
         | It's honestly a relief. I do not have MacOS so I had to compile
         | the software with a MacOS VM without hardware passthrough, it
         | took me a whole day to set that up. I wasn't able to test it on
         | the VM (because of lacking hardware acceleration) but some nice
         | people from the community helped us test it and find bugs and
         | issues for the Mac builds :)
        
           | jacooper wrote:
           | Don't GitHub Actions offer MacOS builds?
        
             | NayamAmarshe wrote:
             | They do? Wow, I didn't know. I'll try setting up a
             | workflow.
        
               | simonw wrote:
               | I have an Electron app on GitHub which uses their macOS
               | runners to run tests and even package and sign the
               | application: https://github.com/simonw/datasette-
               | app/blob/84903f2ab171fb2...
               | 
               | Wrote up a bit about how that works here:
               | 
               | - https://til.simonwillison.net/electron/sign-notarize-
               | electro...
               | 
               | - https://til.simonwillison.net/electron/testing-
               | electron-play...
        
       | aaaaaaaaaaab wrote:
        
       | a1371 wrote:
       | Why all the negativity in the comments here? Yes, sometimes it is
       | extremely valuable to make a nice thin wrapper on existing tech.
       | As a community, we can't always complain about the user interface
       | of FOSS tools, and then when someone makes a UI, again complain
       | that they haven't done anything or the size is large. Pick a
       | side!
        
         | knaik94 wrote:
         | More feature rich UIs already exist as thin wrappers for this
         | tech. Some linked from the Real-ESRGAN github repo. More
         | importantly, Google Colab notebooks exist already as well, so
         | you don't even need a graphics card.
         | 
         | People are allowed to question what aspect of this project this
         | is novel. I believe it's a fair critique when many tools
         | already exist. A criticism doesn't imply a negative
         | connotation.
         | 
         | I personally appreciate the before/after comparison demo aspect
         | of this tool. However, I value the ability to modify parameters
         | and models more than a before and after comparison tool.
         | 
         | I see parameters/models are on the road map but I personally
         | believe it should be part of a 1.0 release.
         | 
         | I personally am a fan of
         | https://github.com/AaronFeng753/Waifu2x-Extension-GUI
        
           | NayamAmarshe wrote:
           | The only reason why I built Upscayl was because there were no
           | GUI solutions for Linux. Everywhere you see, Windows Windows
           | Windows. Which is great for Windows people, but you already
           | have Topaz Gigapixel, arguably the best piece of paid
           | software I've ever seen.
           | 
           | I wanted something similar for Linux. After receiving "No, I
           | don't think so" as a reply for my question about Image
           | upscaler GUIs for Linux on r/opensource, I decided to build
           | one of my own. I hope the GUI can benefit other people.
        
             | mmastrac wrote:
             | Don't get turned off by the negativity - pretty nice cross-
             | platform work you have here.
        
               | NayamAmarshe wrote:
               | Thanks a lot! The appreciation really motivates me to
               | keep making my projects better :)
        
           | [deleted]
        
         | rvz wrote:
         | It's Electron. That is why.
        
           | fortyseven wrote:
        
           | tfsh wrote:
           | Maybe ask yourself why people chose to use Electron. The
           | cross platform alternatives (Tauri[1] pops to mind) generally
           | offer a more complex development experience. As long as web
           | languages remain the lowest entrypoint they will remain the
           | dominent force, even if they're less performant.
           | 
           | 1: https://github.com/tauri-apps/tauri
        
             | NayamAmarshe wrote:
             | You're absolutely right. I tried building Upscayl with
             | Tauri initially, but after a few days I had to give up
             | because I was trading my time for bundle size. Then I tried
             | Neutralino only to discover that it does not support node
             | runtime. With Electron, we were able to focus on the core
             | features and ship Upscayl very fast.
             | 
             | Since electron is also the only framework that supports
             | node modules, it was pretty much the best low-resistance
             | path for us at the moment.
             | 
             | I do wanna learn Rust eventually but that is an adventure
             | for another day :)
        
             | lapinot wrote:
             | ?? how is tauri a response to electron criticism? Imho the
             | main criticism of electron is a criticism of using a
             | webview for a desktop application where you could've used
             | something far more simple. An alternative which would make
             | electron critics be happy would be more like imgui or
             | bindings to plateform native ui toolkits, but definitely
             | not some other html ui framework.
        
               | tfsh wrote:
               | Oh you're right. I was thinking Tauri was a cross-
               | platform native UI kit. Imgui seems interesting but given
               | it requires C++ knowledge that introduces all sorts of
               | lifecycle issues regarding memory safety, etc, which
               | makes it even more intimidating to newer SWEs.
        
       | stavros wrote:
       | I tried Real-ESRGAN but it seems to dream up slightly _too_ much?
       | Has anyone else had this problem? It tends to generate details
       | where there shouldn 't be any.
       | 
       | Maybe I need to add some setting?
        
       | liuliu wrote:
       | NCNN does work with just CPU. Just need a little bit more
       | packaging.
        
       | can16358p wrote:
       | Anyone compared it against Topaz Labs' Sharpen AI/Gigapixel AI?
       | 
       | Which is better (putting paid vs open-source debate aside) in
       | terms of result image quality?
        
       | behnamoh wrote:
       | Would it be too difficult to add video upscaling feature to this?
       | It'd really help with old videos.
       | 
       | I have videos I took on my Sony Ericsson w810i in the 2000s. The
       | joy of being able to capture something animated on a small
       | screen... I remember it used to show what song is playing at the
       | top and I thought "cool, it shows banners similar to what we see
       | at the bottom of news channels"! Would be great to elevate those
       | videos to today's standards.
        
         | lijogdfljk wrote:
         | re: Videos, that's the first item on the roadmap on the linked
         | page
        
         | social_quotient wrote:
         | It's not what you asked for exactly but I've had good success
         | with this product
         | 
         | https://www.topazlabs.com/video-enhance-ai
         | 
         | Sometimes it drops the audio channel but it's not too bad
         | getting it added back in.
        
           | behnamoh wrote:
           | "Buy for $199.99"
        
             | Terretta wrote:
             | Too much to pay to both fix up old memories and compensate
             | skilled engineering?
        
       | Dwedit wrote:
       | It's just relabeled Real-ESRGAN. Real-ESRGAN is still a very good
       | solution, but I don't know if this project is contributing
       | anything new.
        
         | NayamAmarshe wrote:
         | We're making sure Real-ESRGAN reaches people who cannot use
         | CLIs (so that pretty much includes 99% of the population).
         | Also, I have a PR in the making for their ncnn-conversion
         | script, it ain't much but it's honestly the best I can
         | contribute when it comes to Python and AI.
         | 
         | Real-ESRGAN creator also encourages others to use their tech in
         | their projects, as mentioned in their readme.
         | 
         | I know we're not really enhancing Real-ESRGAN's code at the
         | moment, but we don't want to disrespect or disregard their
         | hardwork either.
        
         | solarkraft wrote:
         | It sure does for me. The other projects linked here are I find
         | overwhelming, Upscayl I find approachable.
         | 
         | The alternative I see to Upscayl would be some online service
         | that's similarly approachable for "I just want to upscale this
         | right now".
        
       | rixrax wrote:
       | Another interesting feature might be image sharpener while
       | maintaining the resolution?
        
         | willnonya wrote:
         | Zoom and enchance!
        
           | wiz21c wrote:
           | Blade Runner stuff !
        
         | NayamAmarshe wrote:
         | That is planned :)
        
       | IceWreck wrote:
       | How does Real-ESRGAN used here compare to waifu2x ? I've had
       | great success using waifu2x, especially for blurry artwork.
        
       | akerr wrote:
       | Was Upscail taken?
        
       | willnonya wrote:
       | "Make the whole world use FOSS"
       | 
       | At least they have realistic goals...
        
       | LaputanMachine wrote:
       | The app contacts Github's CDN every 45 seconds. Is there a
       | particular reason / need for this behavior?
       | 
       | Tested on macOS with the following command:                 sudo
       | tcpdump -k -i en0 | grep Upscayl
        
         | samstave wrote:
         | Just an aside as we all get Old Fat and Ugly, its actually a
         | good thing to have such a simple reminder to grep for shit out
         | of your egress just so you stay close to whats happening on the
         | wire.
         | 
         | I haven't thought about TCPDUMP in a long time, and I
         | appreciate this man page.
        
         | NayamAmarshe wrote:
         | It must be because of the auto-update checker. It's a useful
         | feature that lets us notify users about new versions and also
         | let them download and install without opening the Github
         | repository.
        
           | gonzus wrote:
           | But you check for updates every 45 seconds? Why?
        
             | NayamAmarshe wrote:
             | It's the electron-builder that's doing it, must be its
             | default configuration. I'll see if I can fix the continuous
             | checks and limit it to only at launch.
        
               | LaputanMachine wrote:
               | Thanks for taking a look at this!
               | 
               | Maybe the update check is not completing in time and
               | hitting a 45 second timeout similar to [1]?
               | 
               | [1]: https://github.com/electron-userland/electron-
               | builder/issues...
        
       | knaik94 wrote:
       | This UI wrapper doesn't have any way to set options for upsample
       | or tile size parameters. I also don't see any way for it to set
       | the model yourself.
       | 
       | https://github.com/xinntao/Real-ESRGAN
       | 
       | The Real-ESRGAN page has links to additional uis to try out.
        
         | NayamAmarshe wrote:
         | Scaling is broken on Real-ESRGAN. That's why I had to remove
         | the option for 2x and 3x and tiling can sometimes yield totally
         | unexpected results. These 2 are the primary reasons why Upscayl
         | doesn't show them.
        
       | rahimnathwani wrote:
       | Why not use Real-ESRGAN directly?
       | 
       | https://github.com/xinntao/Real-ESRGAN
        
         | creativenolo wrote:
         | Visual feedback. Visual interface. The GUI fad is still around.
        
           | rahimnathwani wrote:
           | Right, but if a GUI is the only requirement, it might be
           | simpler to use gradio.
           | 
           | It only takes a few lines (pasted from
           | https://huggingface.co/spaces/akhaliq/Real-ESRGAN):
           | gr.Interface(           inference,
           | [gr.inputs.Image(type="pil",
           | label="Input"),gr.inputs.Radio(["base","anime"],
           | type="value", default="base", label="model type")],
           | gr.outputs.Image(type="file", label="Output"),
           | title=title,         description=description,
           | article=article,         examples=[
           | ['bear.jpg','base'],         ['anime.png','anime']
           | ]).launch()
        
         | GrayShade wrote:
         | I actually tried, couldn't do it. Some version of numpy in
         | their requirements.txt doesn't build with the Python on the my
         | system.
         | 
         | Sure, I could probably install another Python with conda, but
         | it's not my idea of fun. The app here actually worked fine from
         | the first try, without taking gigabytes of disk space.
        
           | rahimnathwani wrote:
           | OK. That makes some sense. I tend to assume everyone with a
           | CUDA-capable GPU is already using conda. But of course that's
           | not true.
        
             | GrayShade wrote:
             | I followed the instructions in their README, they suggest
             | conda, but don't tell you to use it.
             | 
             | My GPU isn't even CUDA-capable, but the previous version of
             | Upscayl worked fine, possibly on the CPU. That might have
             | changed, I don't know.
             | 
             | In any case, even with conda installing everything would
             | have been a pain to someone not really accustomed to the
             | Python ecosystem. I don't care too much about the GUI, but
             | a working AppImage is really nice.
        
               | rahimnathwani wrote:
               | What GPU do you have? The Upscayl README says in big
               | letters:
               | 
               | "NOTE: Upscayl does not work without a GPU, sorry. You'll
               | need a Vulkan compatible GPU to upscale images. CPU or
               | iGPU won't work."
               | 
               | Sure, perhaps a previous version may have worked without
               | a GPU, but this seems surprising given that it uses a
               | GPU-only library for all the heavy lifting.
        
       ___________________________________________________________________
       (page generated 2022-08-28 23:00 UTC)