fix: enable checker validation

This commit is contained in:
Bingsu
2023-05-16 19:26:37 +09:00
parent 588eb2f6fa
commit 6d1c3da0da
2 changed files with 11 additions and 9 deletions

View File

@@ -110,13 +110,13 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid):
class EnableChecker(BaseModel):
a0: Union[bool, dict]
a1: Optional[dict]
a1: Any
def is_enabled(self) -> bool:
ad_model = ALL_ARGS[0].attr
if isinstance(self.a0, dict):
return self.a0.get(ad_model, "None") != "None"
if self.a1 is None:
if not isinstance(self.a1, dict):
return False
return self.a0 and self.a1.get(ad_model, "None") != "None"

View File

@@ -141,7 +141,11 @@ class AfterDetailerScript(scripts.Script):
"""
`args_` is at least 1 in length by `is_ad_enabled` immediately above
"""
args = args_[1:] if isinstance(args_[0], bool) else args_
args = [arg for arg in args_ if isinstance(arg, dict)]
if not args:
message = f"[-] ADetailer: Invalid arguments passed to ADetailer: {args_!r}"
raise ValueError(message)
all_inputs = []
@@ -149,18 +153,15 @@ class AfterDetailerScript(scripts.Script):
try:
inp = ADetailerArgs(**arg_dict)
except ValueError as e:
message = [
msgs = [
f"[-] ADetailer: ValidationError when validating {ordinal(n)} arguments: {e}\n"
]
for attr in ALL_ARGS.attrs:
arg = arg_dict.get(attr)
dtype = type(arg)
arg = "DEFAULT" if arg is None else repr(arg)
message.append(f" {attr}: {arg} ({dtype})")
raise ValueError("\n".join(message)) from e
except TypeError as e:
message = f"[-] ADetailer: {ordinal(n)} - Non-mapping arguments are sent: {arg_dict!r}\n{e}"
raise TypeError(message) from e
msgs.append(f" {attr}: {arg} ({dtype})")
raise ValueError("\n".join(msgs)) from e
all_inputs.append(inp)
@@ -281,6 +282,7 @@ class AfterDetailerScript(scripts.Script):
for script_name in ad_script_names.split(",")
for name in (script_name, script_name.strip())
}
if args.ad_controlnet_model != "None":
self.disable_controlnet_units(script_args)
script_names_set.add("controlnet")