mirror of
https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
synced 2024-12-29 19:05:05 +08:00
Split Outpainting MK2 mask blur into X and Y components
Fixes unexpected noise in non-outpainted borders when using MK2 script.
This commit is contained in:
parent
1503af60b0
commit
72815c0211
@ -145,7 +145,6 @@ class Script(scripts.Script):
|
||||
process_width = p.width
|
||||
process_height = p.height
|
||||
|
||||
p.mask_blur = mask_blur*4
|
||||
p.inpaint_full_res = False
|
||||
p.inpainting_fill = 1
|
||||
p.do_not_save_samples = True
|
||||
@ -156,6 +155,19 @@ class Script(scripts.Script):
|
||||
up = pixels if "up" in direction else 0
|
||||
down = pixels if "down" in direction else 0
|
||||
|
||||
if left > 0 or right > 0:
|
||||
mask_blur_x = mask_blur
|
||||
else:
|
||||
mask_blur_x = 0
|
||||
|
||||
if up > 0 or down > 0:
|
||||
mask_blur_y = mask_blur
|
||||
else:
|
||||
mask_blur_y = 0
|
||||
|
||||
p.mask_blur_x = mask_blur_x*4
|
||||
p.mask_blur_y = mask_blur_y*4
|
||||
|
||||
init_img = p.init_images[0]
|
||||
target_w = math.ceil((init_img.width + left + right) / 64) * 64
|
||||
target_h = math.ceil((init_img.height + up + down) / 64) * 64
|
||||
@ -191,10 +203,10 @@ class Script(scripts.Script):
|
||||
mask = Image.new("RGB", (process_res_w, process_res_h), "white")
|
||||
draw = ImageDraw.Draw(mask)
|
||||
draw.rectangle((
|
||||
expand_pixels + mask_blur if is_left else 0,
|
||||
expand_pixels + mask_blur if is_top else 0,
|
||||
mask.width - expand_pixels - mask_blur if is_right else res_w,
|
||||
mask.height - expand_pixels - mask_blur if is_bottom else res_h,
|
||||
expand_pixels + mask_blur_x if is_left else 0,
|
||||
expand_pixels + mask_blur_y if is_top else 0,
|
||||
mask.width - expand_pixels - mask_blur_x if is_right else res_w,
|
||||
mask.height - expand_pixels - mask_blur_y if is_bottom else res_h,
|
||||
), fill="black")
|
||||
|
||||
np_image = (np.asarray(img) / 255.0).astype(np.float64)
|
||||
@ -224,10 +236,10 @@ class Script(scripts.Script):
|
||||
latent_mask = Image.new("RGB", (p.width, p.height), "white")
|
||||
draw = ImageDraw.Draw(latent_mask)
|
||||
draw.rectangle((
|
||||
expand_pixels + mask_blur * 2 if is_left else 0,
|
||||
expand_pixels + mask_blur * 2 if is_top else 0,
|
||||
mask.width - expand_pixels - mask_blur * 2 if is_right else res_w,
|
||||
mask.height - expand_pixels - mask_blur * 2 if is_bottom else res_h,
|
||||
expand_pixels + mask_blur_x * 2 if is_left else 0,
|
||||
expand_pixels + mask_blur_y * 2 if is_top else 0,
|
||||
mask.width - expand_pixels - mask_blur_x * 2 if is_right else res_w,
|
||||
mask.height - expand_pixels - mask_blur_y * 2 if is_bottom else res_h,
|
||||
), fill="black")
|
||||
p.latent_mask = latent_mask
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user