Also use alpha channel from img2img input image as mask

This commit is contained in:
fuzzytent
2022-09-07 22:37:54 +02:00
parent 296d012423
commit 7045c84643
2 changed files with 5 additions and 3 deletions

View File

@@ -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