From 72647e5bfa00327eedc5fa97772f98cfdc84b69f Mon Sep 17 00:00:00 2001 From: Dowon Date: Mon, 27 May 2024 23:43:38 +0900 Subject: [PATCH] fix: version requirements --- aaaaaa/conditional.py | 15 +++++---------- aaaaaa/traceback.py | 10 ++++++++-- controlnet_ext/controlnet_ext.py | 12 +----------- pyproject.toml | 6 +++--- scripts/!adetailer.py | 5 +---- 5 files changed, 18 insertions(+), 30 deletions(-) diff --git a/aaaaaa/conditional.py b/aaaaaa/conditional.py index 91ab59c..8e228fc 100644 --- a/aaaaaa/conditional.py +++ b/aaaaaa/conditional.py @@ -1,19 +1,14 @@ from __future__ import annotations -from PIL import Image -from rich import print - try: - from modules.processing import create_binary_mask -except ImportError: - msg = "[-] ADetailer: Support for webui versions below 1.6.0 will be discontinued." - print(msg) - - def create_binary_mask(image: Image.Image): - return image.convert("L") + from modules.processing import create_binary_mask # noqa: F401 +except ImportError as e: + msg = "[-] ADetailer: WebUI versions below 1.6.0 are not supported." + raise RuntimeError(msg) from e try: from modules.sd_schedulers import schedulers except ImportError: + # webui < 1.9.0 schedulers = [] diff --git a/aaaaaa/traceback.py b/aaaaaa/traceback.py index f4f653d..3f7e44a 100644 --- a/aaaaaa/traceback.py +++ b/aaaaaa/traceback.py @@ -3,13 +3,15 @@ from __future__ import annotations import io import platform import sys +from collections.abc import Callable from importlib.metadata import version -from typing import Any, Callable +from typing import Any, TypeVar from rich.console import Console, Group from rich.panel import Panel from rich.table import Table from rich.traceback import Traceback +from typing_extensions import ParamSpec from adetailer.__version__ import __version__ from adetailer.args import ADetailerArgs @@ -137,7 +139,11 @@ def get_table(title: str, data: dict[str, Any]) -> Table: return table -def rich_traceback(func: Callable) -> Callable: +P = ParamSpec("P") +T = TypeVar("T") + + +def rich_traceback(func: Callable[P, T]) -> Callable[P, T]: def wrapper(*args, **kwargs): string = io.StringIO() width = Console().width diff --git a/controlnet_ext/controlnet_ext.py b/controlnet_ext/controlnet_ext.py index 134a7a4..9af1238 100644 --- a/controlnet_ext/controlnet_ext.py +++ b/controlnet_ext/controlnet_ext.py @@ -4,22 +4,12 @@ import importlib import sys from functools import lru_cache from pathlib import Path -from textwrap import dedent from modules import extensions, sd_models, shared +from modules.paths import extensions_builtin_dir, extensions_dir, models_path from .common import cn_model_module, cn_model_regex -try: - from modules.paths import extensions_builtin_dir, extensions_dir, models_path -except ImportError as e: - msg = """ - [-] ADetailer: `stable-diffusion-webui < 1.1.0` is no longer supported. - Please upgrade to stable-diffusion-webui >= 1.1.0. - or you can use ADetailer v23.10.1 (https://github.com/Bing-su/adetailer/archive/refs/tags/v23.10.1.zip) - """ - raise RuntimeError(dedent(msg)) from e - ext_path = Path(extensions_dir) ext_builtin_path = Path(extensions_builtin_dir) controlnet_exists = False diff --git a/pyproject.toml b/pyproject.toml index 3c55fed..87f609f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,12 +2,12 @@ name = "adetailer" description = "An object detection and auto-mask extension for stable diffusion webui." authors = [{ name = "dowon", email = "ks2515@naver.com" }] -requires-python = ">=3.8" +requires-python = ">=3.9" readme = "README.md" license = { text = "AGPL-3.0" } dependencies = [ "ultralytics>=8.2", - "mediapipe>=0.10", + "mediapipe>=0.10.13", "pydantic<3", "rich>=13", "huggingface_hub", @@ -39,7 +39,7 @@ profile = "black" known_first_party = ["launch", "modules"] [tool.ruff] -target-version = "py38" +target-version = "py39" [tool.ruff.lint] select = [ diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 68d9522..99b06f8 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -121,10 +121,7 @@ class AfterDetailerScript(scripts.Script): sampler_names = [sampler.name for sampler in all_samplers] scheduler_names = [x.label for x in schedulers] - try: - checkpoint_list = modules.sd_models.checkpoint_tiles(use_shorts=True) - except TypeError: - checkpoint_list = modules.sd_models.checkpoint_tiles() + checkpoint_list = modules.sd_models.checkpoint_tiles(use_shorts=True) vae_list = modules.shared_items.sd_vae_items() webui_info = WebuiInfo(