Interesting and reproducible research works should be conserved. Unfortunately, too many model repositories provide different ways to use. It is an obstacle for people who just want to use them right away, especially for those without luxury to (re)train big deep learning models. This repository aims to wrap a collection of deep neural network models into a simple and consistent API.
pip install git+https://github.com/ariaghora/ezpznet
It depends mainly on pytorch and torchvision.
Each model will download its own pretrained weight (once at the first time) at initialization. I host them in my personal OneDrive storage. Let me know if you have better options.
- SketchGAN, AnimeGAN, SRGAN
Simplify rough outline sketch.
from ezpznet.sketchgan import SketchGAN, load_image
image = load_image(image_path)
net = SketchGAN()
pred = net.predict(image)
plt.imshow(pred.squeeze(), cmap="gray")
(Art by Shinji)
References
- PyTorch implementation is adopted from bobbens
- Paper: Simo-Serra et al., Mastering Sketching: Adversarial Augmentation for Structured Prediction
Apply anime-ish effect to images.
from ezpznet.animegan import AnimeGAN, load_image
net = AnimeGAN(style="facepaint")
image = load_image(image_path)
pred = net.predict(image)
plt.imshow(pred)
When style="facepaint"
:
When style="hayao"
:
There are several styles available: facepaint
(default), webtoon
, shinkai
, hayao
, and paprika
.
References
- PyTorch implementation is adopted from bryandlee
- Paper: Chen et al., AnimeGAN: A Novel Lightweight GAN for Photo Animation
GAN for super-resolution: upscale the resolution of an image and still keeping the detail, minimizing pixellated parts.
from ezpznet.srgan import SRGAN, load_image
srgan = SRGAN()
image = load_image(image_path)
pred = srgan.predict(image)
pred = ((pred + 1) / 2).squeeze().permute(1, 2, 0)
pred = (pred * 255).numpy().astype(np.uint8)
plt.imshow(pred)
References
- PyTorch implementation is adopted from dongheehand
- Paper: Ledig et al., Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network