aboutsummaryrefslogtreecommitdiffstats
path: root/modules/ui.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ui.py')
-rw-r--r--modules/ui.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/modules/ui.py b/modules/ui.py
index 3f92efc6..1cbff1fd 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -831,7 +831,11 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
components = []
def run_settings(*args):
- up = []
+ changed = 0
+
+ for key, value, comp in zip(opts.data_labels.keys(), args, components):
+ if not opts.same_type(value, opts.data_labels[key].default):
+ return f"Bad value for setting {key}: {value}; expecting {type(opts.data_labels[key].default).__name__}"
for key, value, comp in zip(opts.data_labels.keys(), args, components):
comp_args = opts.data_labels[key].component_args
@@ -841,14 +845,15 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
oldval = opts.data.get(key, None)
opts.data[key] = value
- if oldval != value and opts.data_labels[key].onchange is not None:
- opts.data_labels[key].onchange()
+ if oldval != value:
+ if opts.data_labels[key].onchange is not None:
+ opts.data_labels[key].onchange()
- up.append(comp.update(value=value))
+ changed += 1
opts.save(shared.config_filename)
- return 'Settings applied.'
+ return f'{changed} settings changed.'
with gr.Blocks(analytics_enabled=False) as settings_interface:
settings_submit = gr.Button(value="Apply settings", variant='primary')