The genius of Waifu2x

Yes, it’s an ungainly name. It has a gigantic file size of 3.5GB. It’s user interface is a big mess. But Waifu2x, developed by Aaron Feng, is just genius—it uses artificial intelligence to “upscale” images. This idea isn’t the first of its kind, but it is easily the very best. And, it’s open-source! Take a look:

A before-after comparison.

Sample Image—Nature

A before-after comparison.

Isn’t that amazing? Just to note:

Waifu2x also scores excellently with 2D images, such as this Tom and Jerry photo. The lines are crisp, contour is accurate, and there are hardly any visual artifacts present!

A before-after comparison.

Sample Image—Anime

A before-after comparison.

A side note though—Waifu2x does not score terribly well when it comes to us earthlings. After shoving a 150px×150px Hide the Pain Harold picture into the app (sorry), this is what I got:

A before-after comparison.

Sample Image—Human

A before-after comparison.

A bit unflattering, right? (Not that he was in the first place.) Just look at those eyes! Surprisingly, the “fast” preset (second frame) looks better than the “highest quality” preset (third frame). My hunch is that the presets were trained based on different datasets which led to such a big difference in output. However, there is still too much denoising present in both images. In fact, I would even argue that the original image looks even better despite being scaled up 5 times.

Either way, Waifu2x still manages to impress. It’s main advantages are:

I’ve just discovered it, and can’t wait to try it out in real-world settings. I haven’t even touched on its video upscaling abilities yet! In the future, I imagine a day when artificial intelligence gets so advanced that such upscaling software could be built into video conferencing apps on our everyday devices (though it will probably kill the entire webcam industry). Waifu2x is also built in C++, so it would be interesting to see if similar software could be written in a different language. Maybe even a web app that upscales without server uploading with Rust and WASM?