Path: blob/master/modules/infotext_versions.py
3058 views
from modules import shared1from packaging import version2import re345v160 = version.parse("1.6.0")6v170_tsnr = version.parse("v1.7.0-225")7v180 = version.parse("1.8.0")8v180_hr_styles = version.parse("1.8.0-139")91011def parse_version(text):12if text is None:13return None1415m = re.match(r'([^-]+-[^-]+)-.*', text)16if m:17text = m.group(1)1819try:20return version.parse(text)21except Exception:22return None232425def backcompat(d):26"""Checks infotext Version field, and enables backwards compatibility options according to it."""2728if not shared.opts.auto_backcompat:29return3031ver = parse_version(d.get("Version"))32if ver is None:33return3435if ver < v160 and '[' in d.get('Prompt', ''):36d["Old prompt editing timelines"] = True3738if ver < v160 and d.get('Sampler', '') in ('DDIM', 'PLMS'):39d["Pad conds v0"] = True4041if ver < v170_tsnr:42d["Downcast alphas_cumprod"] = True4344if ver < v180 and d.get('Refiner'):45d["Refiner switch by sampling steps"] = True464748