feat: add inpaint functionality for mask upload

allows to quickly adjust the mask after automated generation
This commit is contained in:
Manuel Schmid
2024-03-03 14:50:07 +01:00
parent 9b31ff4e7f
commit 83c24ff2e5
2 changed files with 12 additions and 9 deletions
+6 -2
View File
@@ -320,8 +320,12 @@ def worker():
inpaint_mask = inpaint_input_image['mask'][:, :, 0] inpaint_mask = inpaint_input_image['mask'][:, :, 0]
if inpaint_mask_upload_checkbox: if inpaint_mask_upload_checkbox:
if isinstance(inpaint_mask_image_upload, np.ndarray): if isinstance(inpaint_mask_image_upload, dict):
if inpaint_mask_image_upload.ndim == 3: if (isinstance(inpaint_mask_image_upload['image'], np.ndarray)
and isinstance(inpaint_mask_image_upload['mask'], np.ndarray)
and inpaint_mask_image_upload['image'].ndim == 3):
inpaint_mask_image_upload = np.maximum(inpaint_mask_image_upload['image'], inpaint_mask_image_upload['mask'][:, :, 0])
if isinstance(inpaint_mask_image_upload, np.ndarray) and inpaint_mask_image_upload.ndim == 3:
H, W, C = inpaint_image.shape H, W, C = inpaint_image.shape
inpaint_mask_image_upload = resample_image(inpaint_mask_image_upload, width=W, height=H) inpaint_mask_image_upload = resample_image(inpaint_mask_image_upload, width=W, height=H)
inpaint_mask_image_upload = np.mean(inpaint_mask_image_upload, axis=2) inpaint_mask_image_upload = np.mean(inpaint_mask_image_upload, axis=2)
+1 -2
View File
@@ -209,8 +209,7 @@ with shared.gradio_root:
example_inpaint_prompts.click(lambda x: x[0], inputs=example_inpaint_prompts, outputs=inpaint_additional_prompt, show_progress=False, queue=False) example_inpaint_prompts.click(lambda x: x[0], inputs=example_inpaint_prompts, outputs=inpaint_additional_prompt, show_progress=False, queue=False)
with gr.Column(visible=False) as inpaint_mask_generation_col: with gr.Column(visible=False) as inpaint_mask_generation_col:
inpaint_mask_image = grh.Image(label='Mask Upload', source='upload', type='numpy', inpaint_mask_image = grh.Image(label='Mask Upload', source='upload', type='numpy', tool='sketch', height=500, brush_color="#FFFFFF", mask_opacity=1)
height=500)
inpaint_mask_model = gr.Dropdown(label='Mask generation model', inpaint_mask_model = gr.Dropdown(label='Mask generation model',
choices=flags.inpaint_mask_models, choices=flags.inpaint_mask_models,
value=modules.config.default_inpaint_mask_model) value=modules.config.default_inpaint_mask_model)