| from typing import Dict, Any
|
| import torch
|
| import base64
|
| from io import BytesIO
|
| from model import Model
|
| from PIL import Image
|
|
|
| device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
|
|
| if device.type != 'cuda':
|
| raise ValueError("need to run on GPU")
|
|
|
| class EndpointHandler():
|
| def __init__(self, path=""):
|
|
|
| self.model = Model()
|
|
|
|
|
| def __call__(self, data: Any) -> Any:
|
| """
|
| Args:
|
| data (:obj:):
|
| includes the input data and the parameters for the inference.
|
| Return:
|
| A :obj:`dict`:. base64 encoded image
|
| """
|
| inputs = data.pop("image", data)
|
|
|
| image = Image.open(BytesIO(base64.b64decode(inputs)))
|
|
|
|
|
| _, res = self.model.process_lineart(image = image)
|
|
|
|
|
|
|
| return res
|
|
|