diff options
author | fuzzytent <fuzzy.tent6960@fastmail.com> | 2022-09-07 20:37:54 +0000 |
---|---|---|
committer | fuzzytent <fuzzy.tent6960@fastmail.com> | 2022-09-07 20:37:54 +0000 |
commit | 7045c846435cf5c9547729c60e85c386e78c90ed (patch) | |
tree | d0f53a53cc1b9572e10d7accb6a94a52985d4451 /modules/img2img.py | |
parent | 296d012423f8d1862a63680443bb88b7d904ba4e (diff) | |
download | stable-diffusion-webui-gfx803-7045c846435cf5c9547729c60e85c386e78c90ed.tar.gz stable-diffusion-webui-gfx803-7045c846435cf5c9547729c60e85c386e78c90ed.tar.bz2 stable-diffusion-webui-gfx803-7045c846435cf5c9547729c60e85c386e78c90ed.zip |
Also use alpha channel from img2img input image as mask
Diffstat (limited to 'modules/img2img.py')
-rw-r--r-- | modules/img2img.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/img2img.py b/modules/img2img.py index 3129798d..1e734ac8 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -1,5 +1,5 @@ import math
-from PIL import Image
+from PIL import Image, ImageOps, ImageChops
from modules.processing import Processed, StableDiffusionProcessingImg2Img, process_images
from modules.shared import opts, state
@@ -16,7 +16,9 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index if is_inpaint:
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, init_img_with_mask['mask'].convert('L')).convert('RGBA')
+ image = image.convert('RGB')
else:
image = init_img
mask = None
|