From 573f99dc8795d6ab7219b9770b5c8a43aea4b3c7 Mon Sep 17 00:00:00 2001 From: CalamitousFelicitousness Date: Sun, 5 Jul 2026 14:26:43 +0100 Subject: [PATCH] fix(installer): read installed git commit from package metadata check_transformers and check_diffusers compared the target commit against a marker stored in server options, which is only persisted after full webui startup. An upgrade restart fires before that point, so the marker stayed stale and the next launch reinstalled the same pin again. Read the installed commit from the package dist-info direct_url.json instead; the options values remain as informational display. --- installer.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/installer.py b/installer.py index bf392d178..726ecb16b 100644 --- a/installer.py +++ b/installer.py @@ -151,6 +151,14 @@ def package_spec(package): return None +def package_commit(spec): + try: + direct_url = json.loads(spec.read_text('direct_url.json')) + return direct_url.get('vcs_info', {}).get('commit_id', '') + except Exception: + return '' + + # check if package is installed def installed(package, friendly: str | None = None, quiet = False): # pylint: disable=redefined-outer-name t_start = time.time() @@ -544,7 +552,7 @@ def check_diffusers(): pkg = package_spec('diffusers') parts = pkg.version.split('.') if pkg is not None else [] minor = int(parts[1]) if len(parts) > 1 else -1 - current = opts.get('diffusers_version', '') if minor > -1 else '' + current = package_commit(pkg) if minor > -1 else '' if (minor == -1) or ((current != target_commit) and (not args.experimental)): if minor == -1: log.info(f'Install: package="diffusers" commit={target_commit}') @@ -588,7 +596,7 @@ def check_transformers(): pip(f'install --upgrade transformers=={target_transformers}', ignore=False, quiet=True) else: # Git commit-pinned version - current = opts.get('transformers_version', '') + current = package_commit(pkg_transformers) if args.reinstall or (pkg_transformers is None) or (pkg_transformers.version.startswith('4')) or (current != target_commit): if pkg_transformers is None: log.info(f'Install: package="transformers" commit={target_commit}')