mirror of
https://github.com/lllyasviel/Fooocus.git
synced 2026-08-16 13:13:16 +02:00
feat: optimize gradio element visibility changes and data provisioning
This commit is contained in:
@@ -201,11 +201,10 @@ with shared.gradio_root:
|
|||||||
|
|
||||||
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',
|
||||||
height=500, visible=False)
|
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)
|
||||||
visible=False)
|
|
||||||
inpaint_mask_cloth_category = gr.Dropdown(label='Cloth category',
|
inpaint_mask_cloth_category = gr.Dropdown(label='Cloth category',
|
||||||
choices=flags.inpaint_mask_cloth_category,
|
choices=flags.inpaint_mask_cloth_category,
|
||||||
value=modules.config.default_inpaint_mask_cloth_category,
|
value=modules.config.default_inpaint_mask_cloth_category,
|
||||||
@@ -216,14 +215,23 @@ with shared.gradio_root:
|
|||||||
inpaint_mask_sam_quant = gr.Checkbox(label='Quantization', value=False)
|
inpaint_mask_sam_quant = gr.Checkbox(label='Quantization', value=False)
|
||||||
inpaint_mask_box_threshold = gr.Slider(label="Box Threshold", minimum=0.0, maximum=1.0, value=0.3, step=0.05)
|
inpaint_mask_box_threshold = gr.Slider(label="Box Threshold", minimum=0.0, maximum=1.0, value=0.3, step=0.05)
|
||||||
inpaint_mask_text_threshold = gr.Slider(label="Text Threshold", minimum=0.0, maximum=1.0, value=0.25, step=0.05)
|
inpaint_mask_text_threshold = gr.Slider(label="Text Threshold", minimum=0.0, maximum=1.0, value=0.25, step=0.05)
|
||||||
generate_mask_button = gr.Button(value='Generate mask from image', visible=False)
|
generate_mask_button = gr.Button(value='Generate mask from image')
|
||||||
|
|
||||||
|
|
||||||
def generate_mask(image, mask_model, cloth_category, sam_prompt_text, sam_model, sam_quant, box_threshold, text_threshold):
|
def generate_mask(image, mask_model, cloth_category, sam_prompt_text, sam_model, sam_quant, box_threshold, text_threshold):
|
||||||
from extras.inpaint_mask import generate_mask_from_image
|
from extras.inpaint_mask import generate_mask_from_image
|
||||||
return generate_mask_from_image(image, mask_model,
|
|
||||||
{"cloth_category": cloth_category, "sam_prompt_text": sam_prompt_text, "sam_model": sam_model, "sam_quant": sam_quant, "box_threshold": box_threshold, "text_threshold": text_threshold})
|
|
||||||
|
|
||||||
|
extras = {}
|
||||||
|
if mask_model == 'u2net_cloth_seg':
|
||||||
|
extras['cloth_category'] = cloth_category
|
||||||
|
elif mask_model == 'sam':
|
||||||
|
extras['sam_prompt_text'] = sam_prompt_text
|
||||||
|
extras['sam_model'] = sam_model
|
||||||
|
extras['sam_quant'] = sam_quant
|
||||||
|
extras['box_threshold'] = box_threshold
|
||||||
|
extras['text_threshold'] = text_threshold
|
||||||
|
|
||||||
|
return generate_mask_from_image(image, mask_model, extras)
|
||||||
|
|
||||||
generate_mask_button.click(fn=generate_mask,
|
generate_mask_button.click(fn=generate_mask,
|
||||||
inputs=[
|
inputs=[
|
||||||
@@ -235,7 +243,7 @@ with shared.gradio_root:
|
|||||||
inpaint_mask_box_threshold,
|
inpaint_mask_box_threshold,
|
||||||
inpaint_mask_text_threshold
|
inpaint_mask_text_threshold
|
||||||
],
|
],
|
||||||
outputs=inpaint_mask_image)
|
outputs=inpaint_mask_image, show_progress=True, queue=True)
|
||||||
|
|
||||||
inpaint_mask_model.change(lambda x: [gr.update(visible=x == 'u2net_cloth_seg'), gr.update(visible=x == 'sam'), gr.update(visible=x == 'sam')],
|
inpaint_mask_model.change(lambda x: [gr.update(visible=x == 'u2net_cloth_seg'), gr.update(visible=x == 'sam'), gr.update(visible=x == 'sam')],
|
||||||
inputs=inpaint_mask_model,
|
inputs=inpaint_mask_model,
|
||||||
@@ -478,10 +486,9 @@ with shared.gradio_root:
|
|||||||
inpaint_strength, inpaint_respective_field,
|
inpaint_strength, inpaint_respective_field,
|
||||||
inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate]
|
inpaint_mask_upload_checkbox, invert_mask_checkbox, inpaint_erode_or_dilate]
|
||||||
|
|
||||||
inpaint_mask_upload_checkbox.change(lambda x: [gr.update(visible=x)] * 4,
|
inpaint_mask_upload_checkbox.change(lambda x: [gr.update(visible=x)] * 2,
|
||||||
inputs=inpaint_mask_upload_checkbox,
|
inputs=inpaint_mask_upload_checkbox,
|
||||||
outputs=[inpaint_mask_image, generate_mask_button,
|
outputs=[inpaint_mask_image, inpaint_mask_generation_col],
|
||||||
inpaint_mask_model, inpaint_mask_generation_col],
|
|
||||||
queue=False, show_progress=False)
|
queue=False, show_progress=False)
|
||||||
|
|
||||||
with gr.Tab(label='FreeU'):
|
with gr.Tab(label='FreeU'):
|
||||||
|
|||||||
Reference in New Issue
Block a user