diff --git a/extensions-builtin/stable-diffusion-webui-rembg b/extensions-builtin/stable-diffusion-webui-rembg index 56a44f552..76dd8f0c8 160000 --- a/extensions-builtin/stable-diffusion-webui-rembg +++ b/extensions-builtin/stable-diffusion-webui-rembg @@ -1 +1 @@ -Subproject commit 56a44f552e6adc9cf335929c16d9dfd7acd6c5bd +Subproject commit 76dd8f0c8aab4fad43bc96249918b3d3559d51d8 diff --git a/modules/control/run.py b/modules/control/run.py index 3c7b56e17..7d4e66446 100644 --- a/modules/control/run.py +++ b/modules/control/run.py @@ -366,10 +366,10 @@ def control_run(units: List[unit.Unit], inputs, inits, mask, unit_type: str, is_ p.image = [] debug(f'Control: process=None image={p.image} mask={mask}') elif len(active_process) == 0: - p.image = [masking.run_mask(input_image=input_image, input_mask=mask, return_type='masked') if mask is not None else input_image] + p.image = [masking.run_mask(input_image=input_image, input_mask=mask, return_type='Masked') if mask is not None else input_image] elif len(active_process) > 0: p.image = [] - masked_image = masking.run_mask(input_image=input_image, input_mask=mask, return_type='masked') if mask is not None else input_image + masked_image = masking.run_mask(input_image=input_image, input_mask=mask, return_type='Masked') if mask is not None else input_image for i, process in enumerate(active_process): # list[image] image_mode = 'L' if unit_type == 'adapter' and len(active_model) > i and ('Canny' in active_model[i].model_id or 'Sketch' in active_model[i].model_id) else 'RGB' # t2iadapter canny and sketch work in grayscale only debug(f'Control: process={[process.processor_id for p in active_process]} i={i} image={p.image}') diff --git a/modules/masking.py b/modules/masking.py index 442b6538e..ca372cc03 100644 --- a/modules/masking.py +++ b/modules/masking.py @@ -387,6 +387,8 @@ def run_mask(input_image: gr.Image, input_mask: gr.Image = None, return_type: st orig = np.array(input_image) combined_image = cv2.addWeighted(orig, opts.weight_original, colored_mask, opts.weight_mask, 0) return Image.fromarray(combined_image) + else: + shared.log.error(f'Segment unknown return type: {return_type}') return input_mask diff --git a/modules/processing.py b/modules/processing.py index 1219d95b7..4c8b26fee 100644 --- a/modules/processing.py +++ b/modules/processing.py @@ -1301,7 +1301,7 @@ class StableDiffusionProcessingImg2Img(StableDiffusionProcessing): self.image_mask = Image.fromarray(np_mask) else: if hasattr(self, 'init_images'): - self.image_mask = modules.masking.run_mask(input_image=self.init_images, input_mask=self.image_mask, return_type='grayscale', mask_blur=self.mask_blur, mask_padding=self.inpaint_full_res_padding, segment_enable=False) + self.image_mask = modules.masking.run_mask(input_image=self.init_images, input_mask=self.image_mask, return_type='Grayscale', mask_blur=self.mask_blur, mask_padding=self.inpaint_full_res_padding, segment_enable=False) if self.inpaint_full_res: self.mask_for_overlay = self.image_mask mask = self.image_mask.convert('L') diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index 5e63b7511..d92f06f95 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -169,9 +169,9 @@ def process_diffusers(p: StableDiffusionProcessing): p.ops.append('inpaint') if p.task_args.get('mask_image', None) is not None: # provided as override by a module # p.mask = shared.sd_model.mask_processor.blur(p.task_args['mask_image'], blur_factor=p.mask_blur) if p.mask_blur > 0 else p.task_args['mask_image'] - p.mask = run_mask(input_image=p.init_images, input_mask=p.task_args['mask_image'], return_type='grayscale') + p.mask = run_mask(input_image=p.init_images, input_mask=p.task_args['mask_image'], return_type='Grayscale') elif getattr(p, 'image_mask', None) is not None: # standard - p.mask = run_mask(input_image=p.init_images, input_mask=p.image_mask, return_type='grayscale') + p.mask = run_mask(input_image=p.init_images, input_mask=p.image_mask, return_type='Grayscale') elif getattr(p, 'mask', None) is not None: # backward compatibility pass else: # fallback diff --git a/modules/ui_control.py b/modules/ui_control.py index 2b29c137a..a76c05edf 100644 --- a/modules/ui_control.py +++ b/modules/ui_control.py @@ -145,13 +145,13 @@ def select_input(input_mode, input_image, selected_init, init_type, input_resize # control inputs if isinstance(selected_input, Image.Image): # image via upload -> image if input_mode == 'Outpaint': - input_mask = masking.run_mask(input_image=selected_input, input_mask=None, return_type='grayscale') + input_mask = masking.run_mask(input_image=selected_input, input_mask=None, return_type='Grayscale') input_source = [selected_input] input_type = 'PIL.Image' status = f'Control input | Image | Size {selected_input.width}x{selected_input.height} | Mode {selected_input.mode}' res = [gr.Tabs.update(selected='out-gallery'), status] elif isinstance(selected_input, dict): # inpaint -> dict image+mask - input_mask = masking.run_mask(input_image=selected_input['image'], input_mask=selected_input['mask'], return_type='grayscale') + input_mask = masking.run_mask(input_image=selected_input['image'], input_mask=selected_input['mask'], return_type='Grayscale') selected_input = selected_input['image'] input_source = [selected_input] input_type = 'PIL.Image' @@ -186,14 +186,14 @@ def select_input(input_mode, input_image, selected_init, init_type, input_resize elif init_type == 2: # Separate init image if isinstance(selected_init, Image.Image): # image via upload -> image if input_mode == 'Outpaint': - input_mask = masking.run_mask(input_image=selected_init, input_mask=None, return_type='grayscale') + input_mask = masking.run_mask(input_image=selected_init, input_mask=None, return_type='Grayscale') input_source = [selected_init] input_init = [selected_init] input_type = 'PIL.Image' status = f'Control input | Image | Size {selected_init.width}x{selected_init.height} | Mode {selected_init.mode}' res = [gr.Tabs.update(selected='out-gallery'), status] elif isinstance(selected_init, dict): # inpaint -> dict image+mask - input_mask = masking.run_mask(input_image=selected_init['image'], input_mask=selected_init['mask'], return_type='grayscale') + input_mask = masking.run_mask(input_image=selected_init['image'], input_mask=selected_init['mask'], return_type='Grayscale') input_init = selected_init['image'] input_source = [selected_init] input_type = 'PIL.Image'