Download handler.py from power2/TestModal: direct link, hf CLI and curl.
- Browser
- Download file 1.27 kB
-
https://huggingface.co/power2/TestModal/resolve/main/handler.py
- Command line
-
hf download hf://power2/TestModal/handler.py
-
curl -L -o handler.py https://huggingface.co/power2/TestModal/resolve/main/handler.py
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 | |