common.py 874 B

123456789101112131415161718192021222324
  1. import os
  2. import numpy as np
  3. from abc import abstractmethod
  4. from ..utils import InfererModule, ModelWrapper
  5. class CommonInpainter(InfererModule):
  6. async def inpaint(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray:
  7. return await self._inpaint(image, mask, inpainting_size, verbose)
  8. @abstractmethod
  9. async def _inpaint(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray:
  10. pass
  11. class OfflineInpainter(CommonInpainter, ModelWrapper):
  12. _MODEL_SUB_DIR = 'inpainting'
  13. async def _inpaint(self, *args, **kwargs):
  14. return await self.infer(*args, **kwargs)
  15. @abstractmethod
  16. async def _infer(self, image: np.ndarray, mask: np.ndarray, inpainting_size: int = 1024, verbose: bool = False) -> np.ndarray:
  17. pass