mirror of
https://github.com/lllyasviel/Fooocus.git
synced 2026-08-16 13:13:16 +02:00
use state instead of global for default_image (#812)
* use state instead of global for default_image solves issue https://github.com/lllyasviel/Fooocus/issues/716 * fix --------- Co-authored-by: lllyasviel <lyuminzhang@outlook.com>
This commit is contained in:
co-authored by
lllyasviel
parent
759bfadefa
commit
49b94fa26e
+1
-1
@@ -1 +1 @@
|
|||||||
version = '2.1.757'
|
version = '2.1.758'
|
||||||
|
|||||||
@@ -172,31 +172,18 @@ with shared.gradio_root:
|
|||||||
input_image_checkbox.change(lambda x: gr.update(visible=x), inputs=input_image_checkbox, outputs=image_input_panel, queue=False, _js=switch_js)
|
input_image_checkbox.change(lambda x: gr.update(visible=x), inputs=input_image_checkbox, outputs=image_input_panel, queue=False, _js=switch_js)
|
||||||
ip_advanced.change(lambda: None, queue=False, _js=down_js)
|
ip_advanced.change(lambda: None, queue=False, _js=down_js)
|
||||||
|
|
||||||
current_tab = gr.Textbox(value='uov', visible=False)
|
current_tab = gr.State(value='uov')
|
||||||
|
default_image = gr.State(value=None)
|
||||||
|
|
||||||
default_image = None
|
lambda_img = lambda x: x['image'] if isinstance(x, dict) else x
|
||||||
|
uov_input_image.upload(lambda_img, inputs=uov_input_image, outputs=default_image, queue=False)
|
||||||
|
inpaint_input_image.upload(lambda_img, inputs=inpaint_input_image, outputs=default_image, queue=False)
|
||||||
|
|
||||||
def update_default_image(x):
|
uov_input_image.clear(lambda: None, outputs=default_image, queue=False)
|
||||||
global default_image
|
inpaint_input_image.clear(lambda: None, outputs=default_image, queue=False)
|
||||||
if isinstance(x, dict):
|
|
||||||
default_image = x['image']
|
|
||||||
else:
|
|
||||||
default_image = x
|
|
||||||
return
|
|
||||||
|
|
||||||
def clear_default_image():
|
uov_tab.select(lambda x: ['uov', x], inputs=default_image, outputs=[current_tab, uov_input_image], queue=False, _js=down_js)
|
||||||
global default_image
|
inpaint_tab.select(lambda x: ['inpaint', x], inputs=default_image, outputs=[current_tab, inpaint_input_image], queue=False, _js=down_js)
|
||||||
default_image = None
|
|
||||||
return
|
|
||||||
|
|
||||||
uov_input_image.upload(update_default_image, inputs=uov_input_image, queue=False)
|
|
||||||
inpaint_input_image.upload(update_default_image, inputs=inpaint_input_image, queue=False)
|
|
||||||
|
|
||||||
uov_input_image.clear(clear_default_image, queue=False)
|
|
||||||
inpaint_input_image.clear(clear_default_image, queue=False)
|
|
||||||
|
|
||||||
uov_tab.select(lambda: ['uov', default_image], outputs=[current_tab, uov_input_image], queue=False, _js=down_js)
|
|
||||||
inpaint_tab.select(lambda: ['inpaint', default_image], outputs=[current_tab, inpaint_input_image], queue=False, _js=down_js)
|
|
||||||
ip_tab.select(lambda: 'ip', outputs=[current_tab], queue=False, _js=down_js)
|
ip_tab.select(lambda: 'ip', outputs=[current_tab], queue=False, _js=down_js)
|
||||||
|
|
||||||
with gr.Column(scale=1, visible=modules.path.default_advanced_checkbox) as advanced_column:
|
with gr.Column(scale=1, visible=modules.path.default_advanced_checkbox) as advanced_column:
|
||||||
|
|||||||
Reference in New Issue
Block a user