[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)