aboutsummaryrefslogtreecommitdiff
path: root/modules/img2img.py
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-09-09 19:43:16 +0300
committerAUTOMATIC <16777216c@gmail.com>2022-09-09 19:43:16 +0300
commitd714ea4c41e4e7c0dc4730d9ea137d134691c0a2 (patch)
treedf135850003abb5ebe9aae8da857dc634d71dd42 /modules/img2img.py
parent5b6a585ae58b9fff1c07f3b811c8373e21249887 (diff)
ability to upload mask for inpainting
Diffstat (limited to 'modules/img2img.py')
-rw-r--r--modules/img2img.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/modules/img2img.py b/modules/img2img.py
index 54023df5..008e8688 100644
--- a/modules/img2img.py
+++ b/modules/img2img.py
@@ -11,16 +11,21 @@ from modules.ui import plaintext_to_html
import modules.images as images
import modules.scripts
-def img2img(prompt: str, negative_prompt: str, init_img, init_img_with_mask, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, denoising_strength_change_factor: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args):
+def img2img(prompt: str, negative_prompt: str, init_img, init_img_with_mask, init_mask, mask_mode, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, denoising_strength_change_factor: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args):
is_inpaint = mode == 1
is_loopback = mode == 2
is_upscale = mode == 3
if is_inpaint:
- image = init_img_with_mask['image']
- alpha_mask = ImageOps.invert(image.split()[-1]).convert('L').point(lambda x: 255 if x > 0 else 0, mode='1')
- mask = ImageChops.lighter(alpha_mask, init_img_with_mask['mask'].convert('L')).convert('RGBA')
- image = image.convert('RGB')
+ if mask_mode == 0:
+ image = init_img_with_mask['image']
+ mask = init_img_with_mask['mask']
+ alpha_mask = ImageOps.invert(image.split()[-1]).convert('L').point(lambda x: 255 if x > 0 else 0, mode='1')
+ mask = ImageChops.lighter(alpha_mask, mask.convert('L')).convert('L')
+ image = image.convert('RGB')
+ else:
+ image = init_img
+ mask = init_mask
else:
image = init_img
mask = None