mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-07-21 21:01:24 +08:00
crop
This commit is contained in:
parent
52c21579b0
commit
37a4599f61
@ -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]]
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user