From 641e1e52b3ffc5384ae21e1d82c271d719e4c5c4 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Wed, 23 Apr 2025 09:10:27 -0400 Subject: [PATCH] fix config save Signed-off-by: Vladimir Mandic --- CHANGELOG.md | 3 ++- installer.py | 6 ++++-- modules/shared.py | 25 ++++++++++++++++++------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72084e08f..45438111c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Update for 2025-04-22 +## Update for 2025-04-23 - **Features** - [Nunchaku](https://github.com/mit-han-lab/nunchaku) inference engine with custom **SVDQuant** 4-bit execution @@ -65,6 +65,7 @@ - HiDream live preview - SD35 InstantX IP-adapter - xyz grid restore settings + - config save unnecessary keys - extension installer handling of PYTHONPATH - trace logging - api logging diff --git a/installer.py b/installer.py index 99555a9f2..1e74996df 100644 --- a/installer.py +++ b/installer.py @@ -538,7 +538,7 @@ def check_diffusers(): t_start = time.time() if args.skip_all or args.skip_git or args.experimental: return - sha = 'e30d3bf5442fbdbee899e8a5da0b11b621d54f1b' # diffusers commit hash + sha = '026507c06cdabfb0c13ddeb1ac33f5d8e244361f' # diffusers commit hash pkg = pkg_resources.working_set.by_key.get('diffusers', None) minor = int(pkg.version.split('.')[1] if pkg is not None else 0) cur = opts.get('diffusers_version', '') if minor > 0 else '' @@ -1401,7 +1401,9 @@ def check_version(offline=False, reset=True): # pylint: disable=unused-argument git_reset() check_version(offline=offline, reset=False) else: - log.info(f'Repository latest available {commits["commit"]["sha"]} {commits["commit"]["commit"]["author"]["date"]}') + dt = commits["commit"]["commit"]["author"]["date"] + commit = commits["commit"]["sha"][:8] + log.info(f'Version: check latest available hash={commit} updated={dt}') except Exception as e: log.error(f'Repository failed to check version: {e} {commits}') ts('latest', t_start) diff --git a/modules/shared.py b/modules/shared.py index df0d5fcea..8a120c30d 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -1112,25 +1112,36 @@ class Options: diff = {} unused_settings = [] + # if self.debug: + # log.debug('Settings: user') + # for k, v in self.data.items(): + # log.trace(f' Config: item={k} value={v} default={self.data_labels[k].default if k in self.data_labels else None}') + if self.debug: - log.debug('Settings: user') - for k, v in self.data.items(): - log.trace(f' Config: item={k} value={v} default={self.data_labels[k].default if k in self.data_labels else None}') + log.debug(f'Settings: total={len(self.data.keys())} known={len(self.data_labels.keys())}') for k, v in self.data.items(): if k in self.data_labels: - if type(v) is list: - diff[k] = v - if self.data_labels[k].default != v: + default = self.data_labels[k].default + if isinstance(v, list): + if (len(default) != len(v) or set(default) != set(v)): # list order is non-deterministic + diff[k] = v + if self.debug: + log.trace(f'Settings changed: {k}={v} default={default}') + elif self.data_labels[k].default != v: diff[k] = v + if self.debug: + log.trace(f'Settings changed: {k}={v} default={default}') else: if k not in compatibility_opts: diff[k] = v if not k.startswith('uiux_'): unused_settings.append(k) + if self.debug: + log.trace(f'Settings unknown: {k}={v}') writefile(diff, filename, silent=silent) if self.debug: - log.trace(f'Settings save: {diff}') + log.trace(f'Settings save: count={len(diff.keys())} {diff}') if len(unused_settings) > 0: log.debug(f"Settings: unused={unused_settings}") except Exception as err: