feat(scripts): enable each tap

This commit is contained in:
Dowon
2024-05-19 16:25:06 +09:00
parent af3418728d
commit 2ace2759b8
5 changed files with 59 additions and 20 deletions

View File

@@ -12,6 +12,7 @@ from rich.table import Table
from rich.traceback import Traceback
from adetailer.__version__ import __version__
from adetailer.args import ADetailerArgs
def processing(*args: Any) -> dict[str, Any]:
@@ -66,23 +67,30 @@ def sd_models() -> dict[str, str]:
def ad_args(*args: Any) -> dict[str, Any]:
ad_args = [
arg
for arg in args
if isinstance(arg, dict) and arg.get("ad_model", "None") != "None"
]
ad_args = []
for arg in args:
if not isinstance(arg, dict):
continue
try:
a = ADetailerArgs(**arg)
except ValueError:
continue
if not a.need_skip():
ad_args.append(a)
if not ad_args:
return {}
arg0 = ad_args[0]
is_api = arg0.get("is_api", True)
return {
"version": __version__,
"ad_model": arg0["ad_model"],
"ad_prompt": arg0.get("ad_prompt", ""),
"ad_negative_prompt": arg0.get("ad_negative_prompt", ""),
"ad_controlnet_model": arg0.get("ad_controlnet_model", "None"),
"is_api": type(is_api) is not tuple,
"ad_model": arg0.ad_model,
"ad_prompt": arg0.ad_prompt,
"ad_negative_prompt": arg0.ad_negative_prompt,
"ad_controlnet_model": arg0.ad_controlnet_model,
"is_api": arg0.is_api,
}

View File

@@ -162,7 +162,7 @@ def adui(
states.append(state)
infotext_fields.extend(infofields)
# components: [bool, dict, dict, ...]
# components: [bool, bool, dict, dict, ...]
components = [ad_enable, ad_skip_img2img, *states]
return components, infotext_fields
@@ -171,14 +171,22 @@ def one_ui_group(n: int, is_img2img: bool, webui_info: WebuiInfo):
w = Widgets()
eid = partial(elem_id, n=n, is_img2img=is_img2img)
model_choices = (
[*webui_info.ad_model_list, "None"]
if n == 0
else ["None", *webui_info.ad_model_list]
)
with gr.Group():
with gr.Row():
model_choices = (
[*webui_info.ad_model_list, "None"]
if n == 0
else ["None", *webui_info.ad_model_list]
with gr.Row(variant="compact"):
w.ad_tap_enable = gr.Checkbox(
label=f"Enable this tap ({ordinal(n + 1)})",
value=True,
visible=True,
elem_id=eid("ad_tap_enable"),
)
with gr.Row():
w.ad_model = gr.Dropdown(
label="ADetailer detector" + suffix(n),
choices=model_choices,