TestModal / handler.py
power2's picture
Upload handler.py
c4d374b
raw
history blame contribute delete
No virus
1.27 kB
from typing import Dict, List, Any
from gfpgan import GFPGANer
import cv2
from imageio import imread
from basicsr.utils import imwrite
import io
import os
import numpy as np
import base64
class EndpointHandler():
def __init__(self, path=""):
self.restorer = GFPGANer(
model_path="./GFPGANv1.4.pth",
upscale=2,
arch="clean",
channel_multiplier=2,
bg_upsampler=None)
def __call__(self, data: Dict[str, Any]) -> List[Dict[str, Any]]:
"""
data args:
inputs (:obj: `str`)
date (:obj: `str`)
Return:
A :obj:`list` | `dict`: will be serialized and returned
"""
# get inputs
inputs = data.pop("inputs",data)
img = imread(io.BytesIO(base64.b64decode(inputs)))
cropped_faces, restored_faces, restored_img = self.restorer.enhance(
img,
has_aligned=False,
only_center_face=False,
paste_back=True,
weight=0.5)
for idx, (cropped_face, restored_face) in enumerate(zip(cropped_faces, restored_faces)):
retval, buffer = cv2.imencode('.png', restored_face)
jpg_as_text = base64.b64encode(buffer)
return jpg_as_text