From 0fd53ce2f31db601d964314d3d40d1d4b631b47c Mon Sep 17 00:00:00 2001 From: Dowon Date: Wed, 22 May 2024 00:16:53 +0900 Subject: [PATCH 01/12] fix(setting): max taps, needs_reload_ui --- adetailer/__version__.py | 2 +- scripts/!adetailer.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/adetailer/__version__.py b/adetailer/__version__.py index 67b0a4b..7b84e1b 100644 --- a/adetailer/__version__.py +++ b/adetailer/__version__.py @@ -1 +1 @@ -__version__ = "24.5.1" +__version__ = "24.5.2-dev.0" diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 0a02eb5..e0b9cf5 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -854,11 +854,11 @@ def on_ui_settings(): "ad_max_models", shared.OptionInfo( default=4, - label="Max models", + label="Max taps", component=gr.Slider, component_args={"minimum": 1, "maximum": 15, "step": 1}, section=section, - ), + ).needs_reload_ui(), ) shared.opts.add_option( From ba039cbbae879a50a1bb1756c22b4503d3133eed Mon Sep 17 00:00:00 2001 From: Dowon Date: Wed, 22 May 2024 00:34:22 +0900 Subject: [PATCH 02/12] feat: check hf mirror, use local cache --- adetailer/common.py | 57 ++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 21 deletions(-) diff --git a/adetailer/common.py b/adetailer/common.py index 470bb2f..f9e42fc 100644 --- a/adetailer/common.py +++ b/adetailer/common.py @@ -3,6 +3,7 @@ import os from collections import OrderedDict from concurrent.futures import ThreadPoolExecutor +from contextlib import suppress from dataclasses import dataclass, field from pathlib import Path from typing import Any, Generic, Optional, TypeVar @@ -24,14 +25,22 @@ class PredictOutput(Generic[T]): preview: Optional[Image.Image] = None -def hf_download(file: str, repo_id: str = REPO_ID) -> str: - try: - path = hf_hub_download(repo_id, file) - except Exception: - msg = f"[-] ADetailer: Failed to load model {file!r} from huggingface" - print(msg) - path = "INVALID" - return path +def hf_download(file: str, repo_id: str = REPO_ID, check_remote: bool = True) -> str: + if check_remote: + with suppress(Exception): + return hf_hub_download(repo_id, file, etag_timeout=1) + + with suppress(Exception): + return hf_hub_download( + repo_id, file, etag_timeout=1, endpoint="https://hf-mirror.com" + ) + + with suppress(Exception): + return hf_hub_download(repo_id, file, local_files_only=True) + + msg = f"[-] ADetailer: Failed to load model {file!r} from huggingface" + print(msg) + return "INVALID" def safe_mkdir(path: str | os.PathLike[str]) -> None: @@ -46,16 +55,23 @@ def scan_model_dir(path: Path) -> list[Path]: return [p for p in path.rglob("*") if p.is_file() and p.suffix == ".pt"] -def download_models(*names: str) -> dict[str, str]: +def download_models(*names: str, check_remote: bool = True) -> dict[str, str]: models = OrderedDict() with ThreadPoolExecutor() as executor: for name in names: if "-world" in name: models[name] = executor.submit( - hf_download, name, repo_id="Bingsu/yolo-world-mirror" + hf_download, + name, + repo_id="Bingsu/yolo-world-mirror", + check_remote=check_remote, ) else: - models[name] = executor.submit(hf_download, name) + models[name] = executor.submit( + hf_download, + name, + check_remote=check_remote, + ) return {name: future.result() for name, future in models.items()} @@ -70,16 +86,15 @@ def get_models( model_paths.extend(scan_model_dir(Path(dir_))) models = OrderedDict() - if huggingface: - to_download = [ - "face_yolov8n.pt", - "face_yolov8s.pt", - "hand_yolov8n.pt", - "person_yolov8n-seg.pt", - "person_yolov8s-seg.pt", - "yolov8x-worldv2.pt", - ] - models.update(download_models(*to_download)) + to_download = [ + "face_yolov8n.pt", + "face_yolov8s.pt", + "hand_yolov8n.pt", + "person_yolov8n-seg.pt", + "person_yolov8s-seg.pt", + "yolov8x-worldv2.pt", + ] + models.update(download_models(*to_download, check_remote=huggingface)) models.update( { From 479f5f4a2e88f6b5db0b323668a2cfaf464ded41 Mon Sep 17 00:00:00 2001 From: Dowon Date: Mon, 27 May 2024 23:24:20 +0900 Subject: [PATCH 03/12] fix: hard english --- aaaaaa/ui.py | 10 +++++----- adetailer/args.py | 8 ++++---- scripts/!adetailer.py | 12 ++++++------ tests/test_args.py | 6 +++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/aaaaaa/ui.py b/aaaaaa/ui.py index 7bc923d..6ba6d00 100644 --- a/aaaaaa/ui.py +++ b/aaaaaa/ui.py @@ -105,9 +105,9 @@ def on_cn_model_update(cn_model_name: str): def elem_id(item_id: str, n: int, is_img2img: bool) -> str: - tap = "img2img" if is_img2img else "txt2img" + tab = "img2img" if is_img2img else "txt2img" suf = suffix(n, "_") - return f"script_{tap}_adetailer_{item_id}{suf}" + return f"script_{tab}_adetailer_{item_id}{suf}" def state_init(w: Widgets) -> dict[str, Any]: @@ -179,11 +179,11 @@ def one_ui_group(n: int, is_img2img: bool, webui_info: WebuiInfo): with gr.Group(): with gr.Row(variant="compact"): - w.ad_tap_enable = gr.Checkbox( - label=f"Enable this tap ({ordinal(n + 1)})", + w.ad_tab_enable = gr.Checkbox( + label=f"Enable this tab ({ordinal(n + 1)})", value=True, visible=True, - elem_id=eid("ad_tap_enable"), + elem_id=eid("ad_tab_enable"), ) with gr.Row(): diff --git a/adetailer/args.py b/adetailer/args.py index ba0808c..ebfd2c0 100644 --- a/adetailer/args.py +++ b/adetailer/args.py @@ -55,7 +55,7 @@ def names(self) -> tuple[str, ...]: class ADetailerArgs(BaseModel, extra=Extra.forbid): ad_model: str = "None" ad_model_classes: str = "" - ad_tap_enable: bool = True + ad_tab_enable: bool = True ad_prompt: str = "" ad_negative_prompt: str = "" ad_confidence: confloat(ge=0.0, le=1.0) = 0.3 @@ -129,7 +129,7 @@ def extra_params(self, suffix: str = "") -> dict[str, Any]: ppop("ADetailer model classes") ppop("ADetailer prompt") ppop("ADetailer negative prompt") - p.pop("ADetailer tap enable", None) # always pop + p.pop("ADetailer tab enable", None) # always pop ppop("ADetailer mask only top k largest", cond=0) ppop("ADetailer mask min ratio", cond=0.0) ppop("ADetailer mask max ratio", cond=1.0) @@ -206,13 +206,13 @@ def is_mediapipe(self) -> bool: return self.ad_model.lower().startswith("mediapipe") def need_skip(self) -> bool: - return self.ad_model == "None" or self.ad_tap_enable is False + return self.ad_model == "None" or self.ad_tab_enable is False _all_args = [ ("ad_model", "ADetailer model"), ("ad_model_classes", "ADetailer model classes"), - ("ad_tap_enable", "ADetailer tap enable"), + ("ad_tab_enable", "ADetailer tab enable"), ("ad_prompt", "ADetailer prompt"), ("ad_negative_prompt", "ADetailer negative prompt"), ("ad_confidence", "ADetailer confidence"), diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index e0b9cf5..68d9522 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -644,8 +644,8 @@ def get_i2i_init_image(p, pp): return pp.image @staticmethod - def get_each_tap_seed(seed: int, i: int): - use_same_seed = shared.opts.data.get("ad_same_seed_for_each_tap", False) + def get_each_tab_seed(seed: int, i: int): + use_same_seed = shared.opts.data.get("ad_same_seed_for_each_tab", False) return seed if use_same_seed else seed + i @staticmethod @@ -773,8 +773,8 @@ def _postprocess_image_inner( if re.match(r"^\s*\[SKIP\]\s*$", p2.prompt): continue - p2.seed = self.get_each_tap_seed(seed, j) - p2.subseed = self.get_each_tap_seed(subseed, j) + p2.seed = self.get_each_tab_seed(seed, j) + p2.subseed = self.get_each_tab_seed(subseed, j) p2.cached_c = [None, None] p2.cached_uc = [None, None] @@ -854,7 +854,7 @@ def on_ui_settings(): "ad_max_models", shared.OptionInfo( default=4, - label="Max taps", + label="Max tabs", component=gr.Slider, component_args={"minimum": 1, "maximum": 15, "step": 1}, section=section, @@ -918,7 +918,7 @@ def on_ui_settings(): ) shared.opts.add_option( - "ad_same_seed_for_each_tap", + "ad_same_seed_for_each_tab", shared.OptionInfo( False, "Use same seed for each tab in adetailer", section=section ), diff --git a/tests/test_args.py b/tests/test_args.py index 19db115..e427162 100644 --- a/tests/test_args.py +++ b/tests/test_args.py @@ -35,7 +35,7 @@ def test_need_skip(ad_model: str, expect: bool) -> None: @pytest.mark.parametrize( - ("ad_model", "ad_tap_enable", "expect"), + ("ad_model", "ad_tab_enable", "expect"), [ ("face_yolov8n.pt", False, True), ("mediapipe_face_full", False, True), @@ -43,6 +43,6 @@ def test_need_skip(ad_model: str, expect: bool) -> None: ("ace_yolov8s.pt", True, False), ], ) -def test_need_skip_tap_enable(ad_model: str, ad_tap_enable: bool, expect: bool) -> None: - args = ADetailerArgs(ad_model=ad_model, ad_tap_enable=ad_tap_enable) +def test_need_skip_tab_enable(ad_model: str, ad_tab_enable: bool, expect: bool) -> None: + args = ADetailerArgs(ad_model=ad_model, ad_tab_enable=ad_tab_enable) assert args.need_skip() is expect From 72647e5bfa00327eedc5fa97772f98cfdc84b69f Mon Sep 17 00:00:00 2001 From: Dowon Date: Mon, 27 May 2024 23:43:38 +0900 Subject: [PATCH 04/12] 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 @@ 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 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 @@ def ui(self, is_img2img): 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( From 6dd603d2cdb80df87c35ce49a4fc24adcbd39961 Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 2 Jun 2024 12:44:54 +0900 Subject: [PATCH 05/12] fix: open-clip-torch version --- install.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install.py b/install.py index 87fff5d..d1bfe3c 100644 --- a/install.py +++ b/install.py @@ -49,6 +49,8 @@ def install(): ("rich", "13.0.0", None), # mediapipe ("protobuf", "4.25.3", "4.9999"), + # protobuf + ("open-clip-torch", "2.23.0", "2.9999"), ] pkgs = [] From a79a472c6b1be3d7193be2f66189933ec9d6d6b7 Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 2 Jun 2024 12:47:42 +0900 Subject: [PATCH 06/12] fix: typeerror typo --- scripts/!adetailer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 99b06f8..d8bda32 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -121,7 +121,7 @@ def ui(self, is_img2img): sampler_names = [sampler.name for sampler in all_samplers] scheduler_names = [x.label for x in schedulers] - checkpoint_list = modules.sd_models.checkpoint_tiles(use_shorts=True) + checkpoint_list = modules.sd_models.checkpoint_tiles(use_short=True) vae_list = modules.shared_items.sd_vae_items() webui_info = WebuiInfo( From a479f60f405481a37c98c1b08534610de9e9e05b Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 2 Jun 2024 13:00:19 +0900 Subject: [PATCH 07/12] feat(ui): use InputAccodian --- aaaaaa/conditional.py | 9 ++++++++- aaaaaa/ui.py | 20 +++++++++----------- adetailer/__init__.py | 4 ++-- adetailer/__version__.py | 2 +- scripts/!adetailer.py | 6 +++--- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/aaaaaa/conditional.py b/aaaaaa/conditional.py index 8e228fc..22afb10 100644 --- a/aaaaaa/conditional.py +++ b/aaaaaa/conditional.py @@ -1,9 +1,16 @@ from __future__ import annotations +msg = "[-] ADetailer: WebUI versions below 1.6.0 are not supported." + try: 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.ui_components import InputAccordion # noqa: F401 +except ImportError as e: raise RuntimeError(msg) from e diff --git a/aaaaaa/ui.py b/aaaaaa/ui.py index 6ba6d00..a678d82 100644 --- a/aaaaaa/ui.py +++ b/aaaaaa/ui.py @@ -7,7 +7,8 @@ import gradio as gr -from adetailer import AFTER_DETAILER, __version__ +from aaaaaa.conditional import InputAccordion +from adetailer import ADETAILER, __version__ from adetailer.args import ALL_ARGS, MASK_MERGE_INVERT from controlnet_ext import controlnet_exists, controlnet_type, get_cn_models @@ -123,17 +124,14 @@ def adui( infotext_fields = [] eid = partial(elem_id, n=0, is_img2img=is_img2img) - with gr.Accordion(AFTER_DETAILER, open=False, elem_id=eid("ad_main_accordion")): + with InputAccordion( + value=False, + elem_id=eid("ad_main_accordion"), + label=ADETAILER, + visible=True, + ) as ad_enable: with gr.Row(): - with gr.Column(scale=6): - ad_enable = gr.Checkbox( - label="Enable ADetailer", - value=False, - visible=True, - elem_id=eid("ad_enable"), - ) - - with gr.Column(scale=6): + with gr.Column(scale=8): ad_skip_img2img = gr.Checkbox( label="Skip img2img", value=False, diff --git a/adetailer/__init__.py b/adetailer/__init__.py index ce38959..6e6721e 100644 --- a/adetailer/__init__.py +++ b/adetailer/__init__.py @@ -4,12 +4,12 @@ from .mediapipe import mediapipe_predict from .ultralytics import ultralytics_predict -AFTER_DETAILER = "ADetailer" +ADETAILER = "ADetailer" __all__ = [ "__version__", "ADetailerArgs", - "AFTER_DETAILER", + "ADETAILER", "ALL_ARGS", "PredictOutput", "get_models", diff --git a/adetailer/__version__.py b/adetailer/__version__.py index 7b84e1b..7042fe0 100644 --- a/adetailer/__version__.py +++ b/adetailer/__version__.py @@ -1 +1 @@ -__version__ = "24.5.2-dev.0" +__version__ = "24.6.0-dev.0" diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index d8bda32..d4bbfc6 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -33,7 +33,7 @@ from aaaaaa.traceback import rich_traceback from aaaaaa.ui import WebuiInfo, adui, ordinal, suffix from adetailer import ( - AFTER_DETAILER, + ADETAILER, __version__, get_models, mediapipe_predict, @@ -110,7 +110,7 @@ def __repr__(self): return f"{self.__class__.__name__}(version={__version__})" def title(self): - return AFTER_DETAILER + return ADETAILER def show(self, is_img2img): return scripts.AlwaysVisible @@ -846,7 +846,7 @@ def on_after_component(component, **_kwargs): def on_ui_settings(): - section = ("ADetailer", AFTER_DETAILER) + section = ("ADetailer", ADETAILER) shared.opts.add_option( "ad_max_models", shared.OptionInfo( From 60853a0c8201c6f457d49ee4112653428e91d171 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Jun 2024 13:01:05 +0900 Subject: [PATCH 08/12] [pre-commit.ci] pre-commit autoupdate (#628) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.4 → v0.4.5](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.4...v0.4.5) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 765a14f..0a4d91b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -22,7 +22,7 @@ repos: - id: prettier - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.4 + rev: v0.4.5 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] From 872f55a15ae22906675ccdfe2c5956931e2fd4b4 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 19:50:58 +0900 Subject: [PATCH 09/12] [pre-commit.ci] pre-commit autoupdate (#632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/rbubley/mirrors-prettier: v3.2.5 → v3.3.1](https://github.com/rbubley/mirrors-prettier/compare/v3.2.5...v3.3.1) - [github.com/astral-sh/ruff-pre-commit: v0.4.5 → v0.4.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.5...v0.4.8) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0a4d91b..d66face 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,12 +17,12 @@ repos: - id: mixed-line-ending - repo: https://github.com/rbubley/mirrors-prettier - rev: v3.2.5 + rev: v3.3.1 hooks: - id: prettier - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.5 + rev: v0.4.8 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] From 9f52c852c2b4a09110d498bd0b60f2f6192a1f7c Mon Sep 17 00:00:00 2001 From: Dowon Date: Thu, 13 Jun 2024 20:00:34 +0900 Subject: [PATCH 10/12] fix(install): protobuf==3 available --- install.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/install.py b/install.py index d1bfe3c..6afd916 100644 --- a/install.py +++ b/install.py @@ -47,10 +47,6 @@ def install(): ("ultralytics", "8.2.0", None), ("mediapipe", "0.10.13", None), ("rich", "13.0.0", None), - # mediapipe - ("protobuf", "4.25.3", "4.9999"), - # protobuf - ("open-clip-torch", "2.23.0", "2.9999"), ] pkgs = [] From 45e13bb46c5471cdfc60235664f97c6972335a6d Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 16 Jun 2024 09:30:58 +0900 Subject: [PATCH 11/12] chore: v24.6.0 --- CHANGELOG.md | 8 ++++++++ adetailer/__version__.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7b54c3..c542be7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2024-06-16 + +- v24.6.0 +- webui 1.6.0 미만 버전을 위한 기능들을 제거하고, 최소 버전을 1.6.0으로 올림 +- 허깅페이스 연결을 체크하는데 1초만 소요되도록 함 + - 허깅페이스 미러 (hf-mirror.com)도 체크함 (합쳐서 2초) +- InputAccordion을 적용함 + ## 2024-05-20 - v24.5.1 diff --git a/adetailer/__version__.py b/adetailer/__version__.py index 7042fe0..a7f5098 100644 --- a/adetailer/__version__.py +++ b/adetailer/__version__.py @@ -1 +1 @@ -__version__ = "24.6.0-dev.0" +__version__ = "24.6.0" From d8aaaa8265084e9f85b70905bf1070fa80187f11 Mon Sep 17 00:00:00 2001 From: Dowon Date: Sun, 16 Jun 2024 09:31:31 +0900 Subject: [PATCH 12/12] chore: update pre-commit --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d66face..4a9d22c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,12 +17,12 @@ repos: - id: mixed-line-ending - repo: https://github.com/rbubley/mirrors-prettier - rev: v3.3.1 + rev: v3.3.2 hooks: - id: prettier - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.8 + rev: v0.4.9 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix]