From 6cb0e7d9fc64d1ee28e738c786d0a933ab48a4c6 Mon Sep 17 00:00:00 2001 From: Abdullah Alfaraj Date: Fri, 13 Jan 2023 22:36:15 +0300 Subject: [PATCH] add support to blurry mask and a sharp mask --- html_manip.js | 29 ++++++++++++++++++++++++++++- index.html | 5 ++++- index.js | 5 ++++- server/python_server/img2imgapi.py | 5 ++++- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/html_manip.js b/html_manip.js index 64881c5..745e656 100644 --- a/html_manip.js +++ b/html_manip.js @@ -345,6 +345,31 @@ document.getElementById('tiSeed').value = String(defaultSettings['seed']) } ////// End Reset Settings Button ////////// + +function getMaskBlur(){ + const isDisabled = document.getElementById('slMaskBlur').hasAttribute('disabled') + let mask_blur = 0 + if(isDisabled){ + mask_blur = 0 + }else{ + mask_blur = document.getElementById('slMaskBlur').value + + } + return mask_blur +} +function getUseSharpMask(){ + const isChecked = document.getElementById('chUseSharpMask').checked + return isChecked +} +document.getElementById('chUseSharpMask').addEventListener('change',(ev)=>{ + const isChecked = ev.target.checked + if(isChecked){ + document.getElementById('slMaskBlur').setAttribute('disabled') + }else{ + document.getElementById('slMaskBlur').removeAttribute('disabled') + + } +}) module.exports = { getPrompt, autoFillInPrompt, @@ -371,5 +396,7 @@ module.exports = { setAutomaticStatus, setProxyServerStatus, defaultSettings, - autoFillDefaultSettings + autoFillDefaultSettings, + getMaskBlur, + getUseSharpMask } \ No newline at end of file diff --git a/index.html b/index.html index 53f4cc8..43accde 100644 --- a/index.html +++ b/index.html @@ -361,6 +361,8 @@ SD Url: + use sharp mask +
@@ -526,7 +528,8 @@ 0.7 - + + Mask Blur: diff --git a/index.js b/index.js index f86e634..9da4cf4 100644 --- a/index.js +++ b/index.js @@ -1379,7 +1379,9 @@ async function getSettings(){ const cfg_scale = document.querySelector('#slCfgScale').value // const model_index = document.querySelector("#") const seed = document.querySelector('#tiSeed').value - const mask_blur = document.querySelector('#slMaskBlur').value + // const mask_blur = document.querySelector('#slMaskBlur').value + const use_sharp_mask = html_manip.getUseSharpMask() + const mask_blur = html_manip.getMaskBlur() const inpaint_full_res_padding = document.querySelector('#slInpaintPadding').value console.dir(numberOfImages) @@ -1472,6 +1474,7 @@ async function getSettings(){ cfg_scale: cfg_scale, seed: seed, mask_blur: mask_blur, + use_sharp_mask: use_sharp_mask, use_prompt_shortcut: bUsePromptShortcut, prompt_shortcut_ui_dict: prompt_shortcut_ui_dict, uniqueDocumentId: uniqueDocumentId, diff --git a/server/python_server/img2imgapi.py b/server/python_server/img2imgapi.py index 80eda4c..87c6888 100644 --- a/server/python_server/img2imgapi.py +++ b/server/python_server/img2imgapi.py @@ -59,7 +59,10 @@ async def img2ImgRequest(sd_url,payload): #only if image exist then try to open it if(len(init_img_mask_name) > 0): init_img_mask = Image.open(f"{init_img_dir}/{init_img_mask_name}") - init_img_mask = applyDilation(init_img_mask) + + if(payload['use_sharp_mask']): + init_img_mask = applyDilation(init_img_mask) + init_img_mask_str = img_2_b64(init_img_mask) payload['mask'] = init_img_mask_str #there is only one mask, unlike 'init_images' which is of type array