diff options
author | Robin Fernandes <robin@soal.org> | 2022-09-08 05:59:42 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-08 05:59:42 +0000 |
commit | 21a375e6b2a1738b6e9b58ca40e92487809e6654 (patch) | |
tree | 2fa1251b9dbe014e8c83c6c8a066864e4f5d3fde | |
parent | bc12eddb408c3503717b234e1a8bb635049f4a91 (diff) | |
parent | 0959fa2d027e7a093adb3cfab9be2343ec7348e2 (diff) | |
download | stable-diffusion-webui-gfx803-21a375e6b2a1738b6e9b58ca40e92487809e6654.tar.gz stable-diffusion-webui-gfx803-21a375e6b2a1738b6e9b58ca40e92487809e6654.tar.bz2 stable-diffusion-webui-gfx803-21a375e6b2a1738b6e9b58ca40e92487809e6654.zip |
Merge branch 'master' into img2img2-color-correction
-rw-r--r-- | modules/img2img.py | 6 | ||||
-rw-r--r-- | modules/ui.py | 2 | ||||
-rw-r--r-- | script.js | 16 | ||||
-rw-r--r-- | webui.bat | 2 |
4 files changed, 22 insertions, 4 deletions
diff --git a/modules/img2img.py b/modules/img2img.py index 52971785..c2392305 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -1,7 +1,7 @@ import math
import cv2
import numpy as np
-from PIL import Image
+from PIL import Image, ImageOps, ImageChops
from modules.processing import Processed, StableDiffusionProcessingImg2Img, process_images
from modules.shared import opts, state
@@ -18,7 +18,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
diff --git a/modules/ui.py b/modules/ui.py index f5564d0e..b1a8c776 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -323,7 +323,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): with gr.Group():
switch_mode = gr.Radio(label='Mode', elem_id="img2img_mode", choices=['Redraw whole image', 'Inpaint a part of image', 'Loopback', 'SD upscale'], value='Redraw whole image', type="index", show_label=False)
init_img = gr.Image(label="Image for img2img", source="upload", interactive=True, type="pil")
- init_img_with_mask = gr.Image(label="Image for inpainting with mask", elem_id="img2maskimg", source="upload", interactive=True, type="pil", tool="sketch", visible=False)
+ init_img_with_mask = gr.Image(label="Image for inpainting with mask", elem_id="img2maskimg", source="upload", interactive=True, type="pil", tool="sketch", visible=False, image_mode="RGBA")
resize_mode = gr.Radio(label="Resize mode", show_label=False, choices=["Just resize", "Crop and resize", "Resize and fill"], type="index", value="Just resize")
steps = gr.Slider(minimum=1, maximum=150, step=1, label="Sampling Steps", value=20)
@@ -172,3 +172,19 @@ function submit(){ } return res } + +window.addEventListener('paste', e => { + const files = e.clipboardData.files; + if (!files || files.length !== 1) { + return; + } + if (!['image/png', 'image/gif', 'image/jpeg'].includes(files[0].type)) { + return; + } + [...gradioApp().querySelectorAll('input[type=file][accept="image/x-png,image/gif,image/jpeg"]')] + .filter(input => !input.matches('.\\!hidden input[type=file]')) + .forEach(input => { + input.files = files; + input.dispatchEvent(new Event('change')) + }); +}); @@ -35,7 +35,7 @@ echo Unable to create venv in directory %VENV_DIR% goto :show_stdout_stderr
:activate_venv
-set PYTHON=%~dp0%VENV_DIR%\Scripts\Python.exe
+set PYTHON="%~dp0%VENV_DIR%\Scripts\Python.exe"
%PYTHON% --version
echo venv %PYTHON%
goto :install_torch
|