From 37a4599f6198f900f42bf8a5f19d52f8a332ecaa Mon Sep 17 00:00:00 2001 From: Haoming Date: Mon, 25 May 2026 11:43:54 +0800 Subject: [PATCH] crop --- .../sd_forge_controlnet/scripts/controlnet.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py index d2fb099c..e365de73 100644 --- a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py +++ b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py @@ -90,11 +90,11 @@ class ControlNetForForgeOfficial(scripts.Script): return enabled_units @staticmethod - def try_crop_image_with_a1111_mask(p: StableDiffusionProcessing, unit: ControlNetUnit, input_image: np.ndarray, resize_mode: external_code.ResizeMode, preprocessor) -> np.ndarray: + def try_crop_image_with_a1111_mask(p: StableDiffusionProcessing, unit: ControlNetUnit, input_image: np.ndarray, resize_mode: external_code.ResizeMode, preprocessor, *, _is_mask: bool = False) -> np.ndarray: a1111_mask_image: Optional[Image.Image] = getattr(p, "image_mask", None) is_only_masked_inpaint = issubclass(type(p), StableDiffusionProcessingImg2Img) and p.inpaint_full_res and a1111_mask_image is not None if preprocessor.corp_image_with_a1111_mask_when_in_img2img_inpaint_tab and is_only_masked_inpaint: - logger.info("Crop input image based on A1111 mask.") + logger.info(f"Cropping input {'mask' if _is_mask else 'image'} based on WebUI mask") input_image = [input_image[:, :, i] for i in range(input_image.shape[2])] input_image = [Image.fromarray(x) for x in input_image] @@ -206,7 +206,7 @@ class ControlNetForForgeOfficial(scripts.Script): if mask is not None: mask = cv2.resize(HWC3(mask), (image.shape[1], image.shape[0]), interpolation=cv2.INTER_NEAREST) - mask = self.try_crop_image_with_a1111_mask(p, unit, mask, resize_mode, preprocessor) + mask = self.try_crop_image_with_a1111_mask(p, unit, mask, resize_mode, preprocessor, _is_mask=True) image_list = [[image, mask]]