From 8c525a3c214d2225747254bae9c76af48b7b9258 Mon Sep 17 00:00:00 2001 From: Bingsu Date: Thu, 4 May 2023 13:05:39 +0900 Subject: [PATCH] fix: revert ad_model `None`, dtype bool, annotation --- adetailer/__version__.py | 2 +- adetailer/common.py | 2 ++ controlnet_ext/controlnet_ext.py | 2 ++ scripts/!adetailer.py | 25 ++++++++++++++++++++++--- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/adetailer/__version__.py b/adetailer/__version__.py index 778559e..bd9d496 100644 --- a/adetailer/__version__.py +++ b/adetailer/__version__.py @@ -1 +1 @@ -__version__ = "23.5.3.post1" +__version__ = "23.5.3.post2" diff --git a/adetailer/common.py b/adetailer/common.py index db8e5b2..46bd20d 100644 --- a/adetailer/common.py +++ b/adetailer/common.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from collections import OrderedDict from dataclasses import dataclass from pathlib import Path diff --git a/controlnet_ext/controlnet_ext.py b/controlnet_ext/controlnet_ext.py index 7101450..3bb4d63 100644 --- a/controlnet_ext/controlnet_ext.py +++ b/controlnet_ext/controlnet_ext.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import importlib from functools import lru_cache from pathlib import Path diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 330c14d..d05009f 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -1,7 +1,10 @@ +from __future__ import annotations + import platform import sys from copy import copy from pathlib import Path +from typing import Any import gradio as gr import torch @@ -19,6 +22,14 @@ from modules.processing import ( ) from modules.shared import cmd_opts, opts +try: + from rich import print + from rich.traceback import install + + install(show_locals=True) +except Exception: + pass + AFTER_DETAILER = "After Detailer" adetailer_dir = Path(models_path, "adetailer") model_mapping = get_models(adetailer_dir) @@ -85,12 +96,20 @@ class ADetailerArgs: for i, (attr, _, dtype) in enumerate(ALL_ARGS): if not isinstance(args[i], dtype): try: - args[i] = dtype(args[i]) + if dtype is bool: + args[i] = self.is_true(args[i]) + else: + args[i] = dtype(args[i]) except ValueError as e: msg = f"Error converting {args[i]!r}({attr}) to {dtype}: {e}" raise ValueError(msg) from e return args + def is_true(self, value: Any): + if isinstance(value, bool): + return value + return str(value).lower() == "true" + class Widgets: def tolist(self): @@ -123,7 +142,7 @@ class AfterDetailerScript(scripts.Script): return scripts.AlwaysVisible def ui(self, is_img2img): - model_list = list(model_mapping.keys()) + model_list = ["None"] + list(model_mapping.keys()) w = Widgets() @@ -303,7 +322,7 @@ class AfterDetailerScript(scripts.Script): print("[-] ADetailer: ControlNetExt init failed.", file=sys.stderr) def is_ad_enabled(self, args: ADetailerArgs): - return args.ad_enable and args.ad_model != "None" + return args.ad_enable is True and args.ad_model != "None" def extra_params(self, args: ADetailerArgs): params = {name: getattr(args, attr) for attr, name, *_ in ALL_ARGS[1:]}