mirror of
https://github.com/Bing-su/adetailer.git
synced 2026-04-30 19:21:33 +00:00
fix: enable checker validation
This commit is contained in:
@@ -110,13 +110,13 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid):
|
|||||||
|
|
||||||
class EnableChecker(BaseModel):
|
class EnableChecker(BaseModel):
|
||||||
a0: Union[bool, dict]
|
a0: Union[bool, dict]
|
||||||
a1: Optional[dict]
|
a1: Any
|
||||||
|
|
||||||
def is_enabled(self) -> bool:
|
def is_enabled(self) -> bool:
|
||||||
ad_model = ALL_ARGS[0].attr
|
ad_model = ALL_ARGS[0].attr
|
||||||
if isinstance(self.a0, dict):
|
if isinstance(self.a0, dict):
|
||||||
return self.a0.get(ad_model, "None") != "None"
|
return self.a0.get(ad_model, "None") != "None"
|
||||||
if self.a1 is None:
|
if not isinstance(self.a1, dict):
|
||||||
return False
|
return False
|
||||||
return self.a0 and self.a1.get(ad_model, "None") != "None"
|
return self.a0 and self.a1.get(ad_model, "None") != "None"
|
||||||
|
|
||||||
|
|||||||
@@ -141,7 +141,11 @@ class AfterDetailerScript(scripts.Script):
|
|||||||
"""
|
"""
|
||||||
`args_` is at least 1 in length by `is_ad_enabled` immediately above
|
`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 = []
|
all_inputs = []
|
||||||
|
|
||||||
@@ -149,18 +153,15 @@ class AfterDetailerScript(scripts.Script):
|
|||||||
try:
|
try:
|
||||||
inp = ADetailerArgs(**arg_dict)
|
inp = ADetailerArgs(**arg_dict)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
message = [
|
msgs = [
|
||||||
f"[-] ADetailer: ValidationError when validating {ordinal(n)} arguments: {e}\n"
|
f"[-] ADetailer: ValidationError when validating {ordinal(n)} arguments: {e}\n"
|
||||||
]
|
]
|
||||||
for attr in ALL_ARGS.attrs:
|
for attr in ALL_ARGS.attrs:
|
||||||
arg = arg_dict.get(attr)
|
arg = arg_dict.get(attr)
|
||||||
dtype = type(arg)
|
dtype = type(arg)
|
||||||
arg = "DEFAULT" if arg is None else repr(arg)
|
arg = "DEFAULT" if arg is None else repr(arg)
|
||||||
message.append(f" {attr}: {arg} ({dtype})")
|
msgs.append(f" {attr}: {arg} ({dtype})")
|
||||||
raise ValueError("\n".join(message)) from e
|
raise ValueError("\n".join(msgs)) 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
|
|
||||||
|
|
||||||
all_inputs.append(inp)
|
all_inputs.append(inp)
|
||||||
|
|
||||||
@@ -281,6 +282,7 @@ class AfterDetailerScript(scripts.Script):
|
|||||||
for script_name in ad_script_names.split(",")
|
for script_name in ad_script_names.split(",")
|
||||||
for name in (script_name, script_name.strip())
|
for name in (script_name, script_name.strip())
|
||||||
}
|
}
|
||||||
|
|
||||||
if args.ad_controlnet_model != "None":
|
if args.ad_controlnet_model != "None":
|
||||||
self.disable_controlnet_units(script_args)
|
self.disable_controlnet_units(script_args)
|
||||||
script_names_set.add("controlnet")
|
script_names_set.add("controlnet")
|
||||||
|
|||||||
Reference in New Issue
Block a user