aboutsummaryrefslogtreecommitdiffstats
path: root/modules/infotext_versions.py
diff options
context:
space:
mode:
authorwangshuai09 <391746016@qq.com>2024-01-30 11:15:41 +0000
committerGitHub <noreply@github.com>2024-01-30 11:15:41 +0000
commit74ff85a1a1ee4cce432b1c7d33c1eda831f68d48 (patch)
tree99b70e0fef8422c8f603bf7faa1a393091cb2a8b /modules/infotext_versions.py
parentec124607f47371a6cfd61a795f86a7f1cbd44651 (diff)
parentce168ab5dbc8b54b7245f352a2eaa55a37019b91 (diff)
downloadstable-diffusion-webui-gfx803-74ff85a1a1ee4cce432b1c7d33c1eda831f68d48.tar.gz
stable-diffusion-webui-gfx803-74ff85a1a1ee4cce432b1c7d33c1eda831f68d48.tar.bz2
stable-diffusion-webui-gfx803-74ff85a1a1ee4cce432b1c7d33c1eda831f68d48.zip
Merge branch 'dev' into npu_support
Diffstat (limited to 'modules/infotext_versions.py')
-rw-r--r--modules/infotext_versions.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/modules/infotext_versions.py b/modules/infotext_versions.py
new file mode 100644
index 00000000..23b45c3f
--- /dev/null
+++ b/modules/infotext_versions.py
@@ -0,0 +1,42 @@
+from modules import shared
+from packaging import version
+import re
+
+
+v160 = version.parse("1.6.0")
+v170_tsnr = version.parse("v1.7.0-225")
+
+
+def parse_version(text):
+ if text is None:
+ return None
+
+ m = re.match(r'([^-]+-[^-]+)-.*', text)
+ if m:
+ text = m.group(1)
+
+ try:
+ return version.parse(text)
+ except Exception:
+ return None
+
+
+def backcompat(d):
+ """Checks infotext Version field, and enables backwards compatibility options according to it."""
+
+ if not shared.opts.auto_backcompat:
+ return
+
+ ver = parse_version(d.get("Version"))
+ if ver is None:
+ return
+
+ if ver < v160 and '[' in d.get('Prompt', ''):
+ d["Old prompt editing timelines"] = True
+
+ if ver < v160 and d.get('Sampler', '') in ('DDIM', 'PLMS'):
+ d["Pad conds v0"] = True
+
+ if ver < v170_tsnr:
+ d["Downcast alphas_cumprod"] = True
+