From ec86e52dedc546e796a975e150e745d524f3696b Mon Sep 17 00:00:00 2001 From: awsr <43862868+awsr@users.noreply.github.com> Date: Tue, 13 Jan 2026 02:11:58 -0800 Subject: [PATCH] Correct type enforcement --- modules/json_helpers.py | 3 ++- modules/options_handler.py | 2 +- modules/ui_loadsave.py | 9 +++++---- modules/ui_models.py | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/modules/json_helpers.py b/modules/json_helpers.py index 44fee21b6..7d28b3e01 100644 --- a/modules/json_helpers.py +++ b/modules/json_helpers.py @@ -124,7 +124,8 @@ def writefile(data, filename, mode='w', silent=False, atomic=False): file.write(output) t1 = time.time() if not silent: - log.debug(f'Save: file="{filename}" json={len(data)} bytes={len(output)} time={t1-t0:.3f}') + datalength = len(data) if isinstance(data, (dict, list)) else (len(data.__dict__)) + log.debug(f'Save: file="{filename}" json={datalength} bytes={len(output)} time={t1-t0:.3f}') except Exception as err: log.error(f'Save failed: file="{filename}" {err}') try: diff --git a/modules/options_handler.py b/modules/options_handler.py index 2b89f9d9f..646ccd874 100644 --- a/modules/options_handler.py +++ b/modules/options_handler.py @@ -169,7 +169,7 @@ class Options(): return self.data = readfile(filename, lock=True, as_type="dict") if self.data.get('quicksettings') is not None and self.data.get('quicksettings_list') is None: - self.data['quicksettings_list'] = [i.strip() for i in self.data.get('quicksettings').split(',')] + self.data['quicksettings_list'] = [i.strip() for i in self.data.get('quicksettings', '').split(',')] unknown_settings = [] for k, v in self.data.items(): info: OptionInfo | None = self.data_labels.get(k, None) diff --git a/modules/ui_loadsave.py b/modules/ui_loadsave.py index fbb1cbeba..e8f1b050f 100644 --- a/modules/ui_loadsave.py +++ b/modules/ui_loadsave.py @@ -290,11 +290,12 @@ class UiLoadsave: self.ui_defaults_review = gr.HTML("", elem_id="ui_defaults_review") def setup_ui(self): + review = [self.ui_defaults_review] if self.ui_defaults_review is not None else None if self.ui_defaults_view: - self.ui_defaults_view.click(fn=self.ui_view, inputs=list(self.component_mapping.values()), outputs=[self.ui_defaults_review]) + self.ui_defaults_view.click(fn=self.ui_view, inputs=list(self.component_mapping.values()), outputs=review) if self.ui_defaults_apply: - self.ui_defaults_apply.click(fn=self.ui_apply, inputs=list(self.component_mapping.values()), outputs=[self.ui_defaults_review]) + self.ui_defaults_apply.click(fn=self.ui_apply, inputs=list(self.component_mapping.values()), outputs=review) if self.ui_defaults_restore: - self.ui_defaults_restore.click(fn=self.ui_restore, inputs=[], outputs=[self.ui_defaults_review]) + self.ui_defaults_restore.click(fn=self.ui_restore, inputs=[], outputs=review) if self.ui_defaults_submenu: - self.ui_defaults_submenu.click(fn=self.ui_submenu_apply, _js='uiOpenSubmenus', inputs=[self.ui_defaults_review], outputs=[self.ui_defaults_review]) + self.ui_defaults_submenu.click(fn=self.ui_submenu_apply, _js='uiOpenSubmenus', inputs=review, outputs=review) diff --git a/modules/ui_models.py b/modules/ui_models.py index df0fa0e25..3a5a29c3b 100644 --- a/modules/ui_models.py +++ b/modules/ui_models.py @@ -179,7 +179,7 @@ def create_ui(): custom_name = gr.Textbox(label="New model name") with gr.Row(): merge_mode = gr.Dropdown(choices=merge_methods.__all__, value="weighted_sum", label="Interpolation Method") - merge_mode_docs = gr.HTML(value=getattr(merge_methods, "weighted_sum", "").__doc__.replace("\n", "
")) + merge_mode_docs = gr.HTML(value=(getattr(merge_methods, "weighted_sum", "").__doc__ or 'Error: Documentation missing').replace("\n", "
")) with gr.Row(): primary_model_name = gr.Dropdown(sd_model_choices(), label="Primary model", value="None") create_refresh_button(primary_model_name, sd_models.list_models, lambda: {"choices": sd_model_choices()}, "checkpoint_A_refresh")