|
import os |
|
import numpy as np |
|
from abc import abstractmethod |
|
|
|
from ..utils import InfererModule, ModelWrapper |
|
|
|
class CommonInpainter(InfererModule): |
|
|
|
async def inpaint(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray: |
|
return await self._inpaint(image, mask, inpainting_size, verbose) |
|
|
|
@abstractmethod |
|
async def _inpaint(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray: |
|
pass |
|
|
|
class OfflineInpainter(CommonInpainter, ModelWrapper): |
|
_MODEL_SUB_DIR = 'inpainting' |
|
|
|
async def _inpaint(self, *args, **kwargs): |
|
return await self.infer(*args, **kwargs) |
|
|
|
@abstractmethod |
|
async def _infer(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray: |
|
pass |
|
|