123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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
|