Skip to content

confirmation when overwriting an existing custom settings file #944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: automatic1111-webui
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 47 additions & 1 deletion scripts/deforum_helpers/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,4 +178,50 @@ def load_video_settings(*args, **kwargs):
else:
ret.append(data[key])

return ret
return ret

def check_file_exists(*args, **kwargs):
import gradio as gr
filepath = args[0];
#print(filepath)

filepath = filepath.strip()
filepath = clean_gradio_path_strings(filepath)
filepath = os.path.realpath(filepath)

#print(f"path: {filepath}")

save_btn_vis = True
overwrite_btn_vis = False
cancel_btn_vis = False
html_msg_vis = False
html_msg_text = ""

file_exists = os.path.isfile(filepath)
if(file_exists):
#print("file exists")
save_btn_vis = False
overwrite_btn_vis = True
cancel_btn_vis = True
html_msg_vis = True
html_msg_text = f"File already exists at location. You can overwrite or cancel the save."
else:
gr.Info('File Saved')
#print("saving file")
save_settings(*args)

return gr.update(visible = save_btn_vis), gr.update(visible = overwrite_btn_vis), gr.update(visible = cancel_btn_vis), gr.update(visible = html_msg_vis), html_msg_text

def overwrite_settings(*args, **kwargs):
import gradio as gr
save_btn_vis = True
overwrite_btn_vis = False
cancel_btn_vis = False
html_msg_vis = False
html_msg_text = ""
gr.Info('File Saved')
#print("saving file")
save_settings(*args)

return gr.update(visible = save_btn_vis), gr.update(visible = overwrite_btn_vis), gr.update(visible = cancel_btn_vis), gr.update(visible = html_msg_vis), html_msg_text

22 changes: 19 additions & 3 deletions scripts/deforum_helpers/ui_right.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from modules.ui import create_output_panel, wrap_gradio_call
from modules.call_queue import wrap_gradio_gpu_call
from .run_deforum import run_deforum
from .settings import save_settings, load_all_settings, load_video_settings
from .settings import save_settings, load_all_settings, load_video_settings, check_file_exists, overwrite_settings
from .general_utils import get_deforum_version
from .ui_left import setup_deforum_left_side_ui
from scripts.deforum_extend_paths import deforum_sys_extend
Expand Down Expand Up @@ -93,7 +93,11 @@ def close_vid(): # Close video button related func

with gr.Row(variant='compact'):
settings_path = gr.Textbox("deforum_settings.txt", elem_id='deforum_settings_path', label="Settings File", info="settings file path can be relative to webui folder OR full - absolute")
with gr.Row(variant="compact"):
html_msg = gr.HTML('html component', visible=False)
with gr.Row(variant='compact'):
overwrite_settings_btn = gr.Button('Overwrite', visible=False, variant="secondary", elem_id='deforum_overwrite_settings_btn')
cancel_save_btn = gr.Button('Cancel Save', visible=False, variant="stop", elem_id='deforum_cancel_save_btn')
save_settings_btn = gr.Button('Save Settings', elem_id='deforum_save_settings_btn')
load_settings_btn = gr.Button('Load All Settings', elem_id='deforum_load_settings_btn')
load_video_settings_btn = gr.Button('Load Video Settings', elem_id='deforum_load_video_settings_btn')
Expand All @@ -116,9 +120,21 @@ def close_vid(): # Close video button related func
video_settings_component_list = [components[name] for name in list(DeforumOutputArgs().keys())]

save_settings_btn.click(
fn=wrap_gradio_call(save_settings),
fn=wrap_gradio_call(check_file_exists),
inputs=[settings_path] + settings_component_list + video_settings_component_list,
outputs=[],
outputs=[save_settings_btn, overwrite_settings_btn, cancel_save_btn, html_msg, html_msg]
)

overwrite_settings_btn.click(
fn=wrap_gradio_call(overwrite_settings),
inputs=[settings_path] + settings_component_list + video_settings_component_list,
outputs=[save_settings_btn, overwrite_settings_btn, cancel_save_btn, html_msg, html_msg]
)

cancel_save_btn.click(
lambda :[gr.update(visible=True), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)],
None,
[save_settings_btn, overwrite_settings_btn, cancel_save_btn, html_msg]
)

load_settings_btn.click(
Expand Down