File size: 2,182 Bytes
7e51154 455bb17 103e730 d658d2a be01a58 469f5eb 12f4e43 e91ac97 12f4e43 b6679b7 2928955 103e730 12f4e43 416c8ad ccfbba4 7e51154 4054722 f77392c 4054722 e29e9b5 2928955 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import os
import gradio as gr
from PIL import Image
os.system('pip install dlib')
os.system("wget https://www.dropbox.com/s/fgupbov77x4rrru/blendgan.pt")
os.system("wget https://www.dropbox.com/s/v8q0dd3r4u20659/psp_encoder.pt")
os.system("wget https://github.com/kim-ninh/align_face_ffhq/raw/main/shape_predictor_68_face_landmarks.dat -P /home/user/app/ffhq_dataset/")
from ffhq_dataset.gen_aligned_image import FaceAlign
fa = FaceAlign()
import cv2
def inference(content, style, index):
content.save('content.png')
style.save('style.png')
imgc = cv2.imread('content.png')
img_cropc = fa.get_crop_image(imgc)
cv2.imwrite('contentcrop.png', img_cropc)
os.system("""python style_transfer_folder.py --size 1024 --add_weight_index """+str(int(index))+""" --ckpt ./blendgan.pt --psp_encoder_ckpt ./psp_encoder.pt --style_img_path style.png --input_img_path contentcrop.png""")
return "out.jpg"
title = "BlendGAN"
description = "Gradio Demo for BlendGAN: Implicitly GAN Blending for Arbitrary Stylized Face Generation. To use it, simply upload your images, or click one of the examples to load them. Read more at the links below. Please use a cropped portrait picture for best results similar to the examples below."
article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2110.11728' target='_blank'>BlendGAN: Implicitly GAN Blending for Arbitrary Stylized Face Generation</a> | <a href='https://github.com/onion-liu/BlendGAN' target='_blank'>Github Repo</a></p><p style='text-align: center'>samples from repo: <img src='https://user-images.githubusercontent.com/6346064/142623312-3e6f09aa-ce88-465c-b956-a8b4db95b4da.gif' alt='animation'/> <img src='https://user-images.githubusercontent.com/6346064/142621044-086cde48-8604-467b-8c43-8768b6670ec2.gif' alt='animation'/></p>"
examples=[['000000.png','100001.png',6]]
gr.Interface(inference, [gr.inputs.Image(type="pil"),gr.inputs.Image(type="pil"),gr.inputs.Slider(minimum=1, maximum=30, step=1, default=6, label="Weight Index")
], gr.outputs.Image(type="file"),title=title,description=description,article=article,enable_queue=True,examples=examples,allow_flagging=False).launch() |