fix: controlnet ext if

This commit is contained in:
Bingsu
2023-05-06 15:05:28 +09:00
parent b909b28ef3
commit f6bbf35298

View File

@@ -260,8 +260,11 @@ class AfterDetailerScript(scripts.Script):
return w.tolist()
def init_controlnet_ext(self) -> None:
if self.controlnet_ext is None:
self.controlnet_ext = ControlNetExt()
if self.controlnet_ext is not None:
return
self.controlnet_ext = ControlNetExt()
if controlnet_exists:
try:
self.controlnet_ext.init_controlnet()
except ImportError:
@@ -271,6 +274,16 @@ class AfterDetailerScript(scripts.Script):
file=sys.stderr,
)
def update_controlnet_args(self, p, args: ADetailerArgs) -> None:
if (
self.controlnet_ext is not None
and self.controlnet_ext.cn_available
and args.ad_controlnet_model != "None"
):
self.controlnet_ext.update_scripts_args(
p, args.ad_controlnet_model, args.ad_controlnet_weight
)
def is_ad_enabled(self, *args_) -> bool:
if len(args_) < 2:
message = f"""[-] ADetailer: Not enough arguments passed to adetailer.
@@ -393,8 +406,6 @@ class AfterDetailerScript(scripts.Script):
if sampler_name in ["PLMS", "UniPC"]:
sampler_name = "Euler"
self.init_controlnet_ext()
i2i = StableDiffusionProcessingImg2Img(
init_images=[image],
resize_mode=0,
@@ -433,6 +444,7 @@ class AfterDetailerScript(scripts.Script):
i2i.script_args = deepcopy(p.script_args)
i2i._disable_adetailer = True
self.init_controlnet_ext()
self.update_controlnet_args(i2i, args)
return i2i
@@ -457,16 +469,6 @@ class AfterDetailerScript(scripts.Script):
raise ValueError(msg)
return model_mapping[name]
def update_controlnet_args(self, p, args: ADetailerArgs) -> None:
if (
self.controlnet_ext is not None
and self.controlnet_ext.cn_available
and args.ad_controlnet_model != "None"
):
self.controlnet_ext.update_scripts_args(
p, args.ad_controlnet_model, args.ad_controlnet_weight
)
def process(self, p, *args_):
if getattr(p, "_disable_adetailer", False):
return