diff options
author | Artem Kotov <breengles@gmail.com> | 2023-05-29 16:39:24 +0000 |
---|---|---|
committer | Artem Kotov <breengles@gmail.com> | 2023-05-29 16:39:24 +0000 |
commit | c8e67b67320f5d090b758303e675c1e5586575a5 (patch) | |
tree | 2e0bf144cc215c82a56f97b4999ad2994880986e | |
parent | 20ae71faa8ef035c31aa3a410b707d792c8203a3 (diff) | |
download | stable-diffusion-webui-gfx803-c8e67b67320f5d090b758303e675c1e5586575a5.tar.gz stable-diffusion-webui-gfx803-c8e67b67320f5d090b758303e675c1e5586575a5.tar.bz2 stable-diffusion-webui-gfx803-c8e67b67320f5d090b758303e675c1e5586575a5.zip |
improve filename matching for mask
we should not rely that mask filename will be of the same extension
as the image filename so better pattern matching is added
-rw-r--r-- | modules/img2img.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/img2img.py b/modules/img2img.py index d704bf90..bc79ea1f 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -1,4 +1,5 @@ import os
+from pathlib import Path
import numpy as np
from PIL import Image, ImageOps, ImageFilter, ImageEnhance, ImageChops, UnidentifiedImageError
@@ -53,7 +54,11 @@ def process_batch(p, input_dir, output_dir, inpaint_mask_dir, args): if is_inpaint_batch:
# try to find corresponding mask for an image using simple filename matching
- mask_image_path = os.path.join(inpaint_mask_dir, os.path.basename(image))
+ path = Path(os.path.join(inpaint_mask_dir, os.path.basename(image)))
+ mask_image_path = list(path.parent.glob(f"**/{path.stem}*"))
+ if len(mask_image_path) > 0:
+ mask_image_path = str(mask_image_path[0])
+
# if not found use first one ("same mask for all images" use-case)
if mask_image_path not in inpaint_masks:
mask_image_path = inpaint_masks[0]
|