diff --git a/lama_cleaner/model/base.py b/lama_cleaner/model/base.py index d74f4e9..b61ba8f 100644 --- a/lama_cleaner/model/base.py +++ b/lama_cleaner/model/base.py @@ -390,3 +390,12 @@ class DiffusionInpaintModel(InpaintModel): sd_sampler = SDSampler.lcm scheduler = get_scheduler(sd_sampler, scheduler_config) self.model.scheduler = scheduler + + def forward_post_process(self, result, image, mask, config): + if config.sd_match_histograms: + result = self._match_histograms(result, image[:, :, ::-1], mask) + + if config.sd_mask_blur != 0: + k = 2 * config.sd_mask_blur + 1 + mask = cv2.GaussianBlur(mask, (k, k), 0) + return result, image, mask diff --git a/lama_cleaner/model/kandinsky.py b/lama_cleaner/model/kandinsky.py index ea9d9c9..769e805 100644 --- a/lama_cleaner/model/kandinsky.py +++ b/lama_cleaner/model/kandinsky.py @@ -66,15 +66,6 @@ class Kandinsky(DiffusionInpaintModel): output = cv2.cvtColor(output, cv2.COLOR_RGB2BGR) return output - def forward_post_process(self, result, image, mask, config): - if config.sd_match_histograms: - result = self._match_histograms(result, image[:, :, ::-1], mask) - - if config.sd_mask_blur != 0: - k = 2 * config.sd_mask_blur + 1 - mask = cv2.GaussianBlur(mask, (k, k), 0) - return result, image, mask - @staticmethod def is_downloaded() -> bool: # model will be downloaded when app start, and can't switch in frontend settings diff --git a/lama_cleaner/model/sd.py b/lama_cleaner/model/sd.py index 9aa1b54..d56139a 100644 --- a/lama_cleaner/model/sd.py +++ b/lama_cleaner/model/sd.py @@ -157,15 +157,6 @@ class SD(DiffusionInpaintModel): output = cv2.cvtColor(output, cv2.COLOR_RGB2BGR) return output - def forward_post_process(self, result, image, mask, config): - if config.sd_match_histograms: - result = self._match_histograms(result, image[:, :, ::-1], mask) - - if config.sd_mask_blur != 0: - k = 2 * config.sd_mask_blur + 1 - mask = cv2.GaussianBlur(mask, (k, k), 0) - return result, image, mask - @staticmethod def is_downloaded() -> bool: # model will be downloaded when app start, and can't switch in frontend settings diff --git a/lama_cleaner/model/sdxl.py b/lama_cleaner/model/sdxl.py index 197ab77..7615795 100644 --- a/lama_cleaner/model/sdxl.py +++ b/lama_cleaner/model/sdxl.py @@ -85,14 +85,6 @@ class SDXL(DiffusionInpaintModel): output = cv2.cvtColor(output, cv2.COLOR_RGB2BGR) return output - def forward_post_process(self, result, image, mask, config): - if config.sd_match_histograms: - result = self._match_histograms(result, image[:, :, ::-1], mask) - - if config.sd_mask_blur != 0: - k = 2 * config.sd_mask_blur + 1 - mask = cv2.GaussianBlur(mask, (k, k), 0) - return result, image, mask @staticmethod def is_downloaded() -> bool: