|
import os |
|
os.system("git clone https://github.com/bryandlee/animegan2-pytorch") |
|
os.system("gdown https://drive.google.com/uc?id=1WK5Mdt6mwlcsqCZMHkCUSDJxN1UyFi0-") |
|
os.system("gdown https://drive.google.com/uc?id=18H3iK09_d54qEDoWIc82SyWB2xun4gjU") |
|
import sys |
|
sys.path.append("animegan2-pytorch") |
|
|
|
import torch |
|
torch.set_grad_enabled(False) |
|
|
|
from model import Generator |
|
|
|
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") |
|
|
|
model = Generator().eval().to(device) |
|
model.load_state_dict(torch.load("face_paint_512_v2_0.pt")) |
|
|
|
from PIL import Image |
|
from torchvision.transforms.functional import to_tensor, to_pil_image |
|
import gradio as gr |
|
|
|
def face2paint( |
|
img: Image.Image, |
|
size: int, |
|
side_by_side: bool = False, |
|
) -> Image.Image: |
|
|
|
|
|
input = to_tensor(img).unsqueeze(0) * 2 - 1 |
|
output = model(input.to(device)).cpu()[0] |
|
|
|
if side_by_side: |
|
output = torch.cat([input[0], output], dim=2) |
|
|
|
output = (output * 0.5 + 0.5).clip(0, 1) |
|
|
|
return to_pil_image(output) |
|
|
|
|
|
|
|
|
|
import os |
|
import collections |
|
from typing import Union, List |
|
import numpy as np |
|
from PIL import Image |
|
|
|
|
|
import PIL.Image |
|
import PIL.ImageFile |
|
import numpy as np |
|
import scipy.ndimage |
|
|
|
|
|
import requests |
|
|
|
def inference(img): |
|
out = face2paint(img, 512) |
|
return out |
|
|
|
|
|
title = "Animeganv2" |
|
description = "Gradio demo for AnimeGanv2 Face Portrait v2. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below." |
|
article = "<p style='text-align: center'><a href='https://github.com/bryandlee/animegan2-pytorch' target='_blank'>Github Repo</a></p>" |
|
|
|
examples=[['groot.jpeg'],['bill.png'],['tony.png'],['elon.png']] |
|
gr.Interface(inference, gr.inputs.Image(type="pil",shape=(512,512)), gr.outputs.Image(type="pil"),title=title,description=description,article=article,examples=examples,enable_queue=True).launch() |
|
|