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