mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
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.
This commit is contained in:
+10
-2
@@ -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}')
|
||||
|
||||
Reference in New Issue
Block a user