From 426b16c1f3e201fb7ace82122ca5d72604341b2e Mon Sep 17 00:00:00 2001 From: Bingsu Date: Mon, 1 May 2023 17:24:14 +0900 Subject: [PATCH] feat: protobuf install, params, misc --- adetailer/__version__.py | 2 +- install.py | 18 ++++++++++++------ pyproject.toml | 2 +- scripts/!adetailer.py | 13 ++++++++++++- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/adetailer/__version__.py b/adetailer/__version__.py index a0e1947..d0064a2 100644 --- a/adetailer/__version__.py +++ b/adetailer/__version__.py @@ -1 +1 @@ -__version__ = "23.5.2.post1" +__version__ = "23.5.2.post2" diff --git a/install.py b/install.py index 545747d..85aad5d 100644 --- a/install.py +++ b/install.py @@ -22,13 +22,16 @@ def is_installed( if not min_version and not max_version: return True - pkg_version = version(package) if not min_version: min_version = "0.0.0" if not max_version: max_version = "99999999.99999999.99999999" + if package == "google.protobuf": + package = "protobuf" + try: + pkg_version = version(package) return parse(min_version) <= parse(pkg_version) <= parse(max_version) except Exception: return False @@ -48,16 +51,19 @@ def install(): ("protobuf", "3.20.0", "3.20.9999"), ] - for name, low, high in deps: + for pkg, low, high in deps: + # https://github.com/protocolbuffers/protobuf/tree/main/python + name = "google.protobuf" if pkg == "protobuf" else pkg + if not is_installed(name, low, high): if low and high: - cmd = f"{name}>={low},<={high}" + cmd = f"{pkg}>={low},<={high}" elif low: - cmd = f"{name}>={low}" + cmd = f"{pkg}>={low}" elif high: - cmd = f"{name}<={high}" + cmd = f"{pkg}<={high}" else: - cmd = name + cmd = pkg run_pip("-U", cmd) diff --git a/pyproject.toml b/pyproject.toml index 84ac568..e574a62 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,7 @@ known_first_party = ["launch", "modules"] [tool.ruff] select = ["A", "B", "C4", "E", "F", "I001", "ISC", "N", "PIE", "PT", "RET", "SIM", "UP", "W"] -ignore = ["B008", "B905", "E501", "UP007", "F401"] +ignore = ["B008", "B905", "E501", "F401", "UP007"] [tool.ruff.isort] known-first-party = ["launch", "modules"] diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 44fe262..2b793e9 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -304,6 +304,11 @@ class AfterDetailerScript(scripts.Script): params.pop("ADetailer prompt") if not params["ADetailer negative prompt"]: params.pop("ADetailer negative prompt") + + if not params["ADetailer use inpaint width/height"]: + params.pop("ADetailer inpaint width") + params.pop("ADetailer inpaint height") + if params["ADetailer ControlNet model"] == "None": params.pop("ADetailer ControlNet model") params.pop("ADetailer ControlNet weight") @@ -444,6 +449,12 @@ class AfterDetailerScript(scripts.Script): self.update_controlnet_args(i2i, args) return i2i + def get_ad_model(self, name: str): + if name not in model_mapping: + msg = f"[-] ADetailer: Model {name!r} not found. Available models: {list(model_mapping.keys())}" + raise ValueError(msg) + return model_mapping[name] + def update_controlnet_args(self, p, args: ADetailerArgs): if ( self.controlnet_ext is not None @@ -483,7 +494,7 @@ class AfterDetailerScript(scripts.Script): ad_model = args.ad_model else: predictor = ultralytics_predict - ad_model = model_mapping[args.ad_model] + ad_model = self.get_ad_model(args.ad_model) kwargs["device"] = self.ultralytics_device with ChangeTorchLoad():