diff options
author | AUTOMATIC <16777216c@gmail.com> | 2022-09-03 22:29:43 +0000 |
---|---|---|
committer | AUTOMATIC <16777216c@gmail.com> | 2022-09-03 22:29:43 +0000 |
commit | 7350c712598b748c3cedc2a224887bd839a27d76 (patch) | |
tree | 639298ad44542d1111268082a25ca17d9ef85910 /modules/processing.py | |
parent | af133859f009f03ca123330a9249a4b0a2f69fbb (diff) | |
download | stable-diffusion-webui-gfx803-7350c712598b748c3cedc2a224887bd839a27d76.tar.gz stable-diffusion-webui-gfx803-7350c712598b748c3cedc2a224887bd839a27d76.tar.bz2 stable-diffusion-webui-gfx803-7350c712598b748c3cedc2a224887bd839a27d76.zip |
added poor man's inpainting script
Diffstat (limited to 'modules/processing.py')
-rw-r--r-- | modules/processing.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/modules/processing.py b/modules/processing.py index 2830209e..adc5d851 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -271,7 +271,7 @@ def fill(image, mask): image_masked = image_masked.convert('RGBa')
- for radius, repeats in [(64, 1), (16, 2), (4, 4), (2, 2), (0, 1)]:
+ for radius, repeats in [(256, 1), (64, 1), (16, 2), (4, 4), (2, 2), (0, 1)]:
blurred = image_masked.filter(ImageFilter.GaussianBlur(radius)).convert('RGBA')
for _ in range(repeats):
image_mod.alpha_composite(blurred)
@@ -290,6 +290,8 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): self.denoising_strength: float = denoising_strength
self.init_latent = None
self.image_mask = mask
+ #self.image_unblurred_mask = None
+ self.latent_mask = None
self.mask_for_overlay = None
self.mask_blur = mask_blur
self.inpainting_fill = inpainting_fill
@@ -308,6 +310,8 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): if self.inpainting_mask_invert:
self.image_mask = ImageOps.invert(self.image_mask)
+ #self.image_unblurred_mask = self.image_mask
+
if self.mask_blur > 0:
self.image_mask = self.image_mask.filter(ImageFilter.GaussianBlur(self.mask_blur))
@@ -368,7 +372,8 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): self.init_latent = self.sd_model.get_first_stage_encoding(self.sd_model.encode_first_stage(image))
if self.image_mask is not None:
- latmask = self.image_mask.convert('RGB').resize((self.init_latent.shape[3], self.init_latent.shape[2]))
+ init_mask = self.latent_mask if self.latent_mask is not None else self.image_mask
+ latmask = init_mask.convert('RGB').resize((self.init_latent.shape[3], self.init_latent.shape[2]))
latmask = np.moveaxis(np.array(latmask, dtype=np.float64), 2, 0) / 255
latmask = latmask[0]
latmask = np.tile(latmask[None], (4, 1, 1))
|