Spaces:
Running
Running
fix(tagger): push lost qwen model, slide-panel UI, SSR off, ensemble wiring
Browse files- app.py +14 -3
- src/ensemble_tagger.py +2 -1
- src/i18n.py +2 -0
app.py
CHANGED
|
@@ -1593,7 +1593,13 @@ with gr.Blocks(**_blocks_kw) as demo:
|
|
| 1593 |
elem_classes=["whyx-tagger-run-btn"],
|
| 1594 |
)
|
| 1595 |
with gr.Column(scale=1):
|
| 1596 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1597 |
choices=[
|
| 1598 |
(t("tagger_mode_ensemble", "en"), "ensemble"),
|
| 1599 |
(t("tagger_mode_eva", "en"), "wd:eva02"),
|
|
@@ -1602,8 +1608,10 @@ with gr.Blocks(**_blocks_kw) as demo:
|
|
| 1602 |
(t("tagger_mode_qwen", "en"), "qwen"),
|
| 1603 |
],
|
| 1604 |
value="ensemble",
|
| 1605 |
-
label=
|
| 1606 |
-
|
|
|
|
|
|
|
| 1607 |
)
|
| 1608 |
tagger_format = gr.Radio(
|
| 1609 |
choices=[
|
|
@@ -2120,4 +2128,7 @@ if __name__ == "__main__":
|
|
| 2120 |
_launch_kw["theme"] = WhyxTheme()
|
| 2121 |
_launch_kw["css"] = WHYX_CSS
|
| 2122 |
_launch_kw["head"] = f"<script>{HOTKEYS_JS}</script>"
|
|
|
|
|
|
|
|
|
|
| 2123 |
demo.launch(**_launch_kw)
|
|
|
|
| 1593 |
elem_classes=["whyx-tagger-run-btn"],
|
| 1594 |
)
|
| 1595 |
with gr.Column(scale=1):
|
| 1596 |
+
# Slide-panel pattern, same as Generate tab.
|
| 1597 |
+
with gr.Row():
|
| 1598 |
+
tagger_mode_trigger = gr.Button(
|
| 1599 |
+
f'▸ {t("tagger_model_label", "en")}',
|
| 1600 |
+
elem_classes=["whyx-slide-trigger"], elem_id="whyx-trig-tagger-mode",
|
| 1601 |
+
)
|
| 1602 |
+
tagger_mode = gr.Radio(
|
| 1603 |
choices=[
|
| 1604 |
(t("tagger_mode_ensemble", "en"), "ensemble"),
|
| 1605 |
(t("tagger_mode_eva", "en"), "wd:eva02"),
|
|
|
|
| 1608 |
(t("tagger_mode_qwen", "en"), "qwen"),
|
| 1609 |
],
|
| 1610 |
value="ensemble",
|
| 1611 |
+
label="",
|
| 1612 |
+
show_label=False,
|
| 1613 |
+
elem_id="whyx-panel-tagger-mode",
|
| 1614 |
+
elem_classes=["whyx-slide-panel", "whyx-slide-closed", "whyx-chip-group"],
|
| 1615 |
)
|
| 1616 |
tagger_format = gr.Radio(
|
| 1617 |
choices=[
|
|
|
|
| 2128 |
_launch_kw["theme"] = WhyxTheme()
|
| 2129 |
_launch_kw["css"] = WHYX_CSS
|
| 2130 |
_launch_kw["head"] = f"<script>{HOTKEYS_JS}</script>"
|
| 2131 |
+
# Gradio 5 SSR on HF Spaces breaks custom JS listeners under `elem_id=` —
|
| 2132 |
+
# disable SSR explicitly while keeping the theme/css/head in launch args.
|
| 2133 |
+
_launch_kw.setdefault("ssr_mode", False)
|
| 2134 |
demo.launch(**_launch_kw)
|
src/ensemble_tagger.py
CHANGED
|
@@ -16,7 +16,8 @@ import numpy as np
|
|
| 16 |
from PIL import Image, ImageOps
|
| 17 |
|
| 18 |
from src.image_tagger import (
|
| 19 |
-
ImageTagger, _TAGGER_DEPS_OK, _ensure_rgb, _pad_square,
|
|
|
|
| 20 |
)
|
| 21 |
from src.pose_tagger import get_pose_tagger
|
| 22 |
|
|
|
|
| 16 |
from PIL import Image, ImageOps
|
| 17 |
|
| 18 |
from src.image_tagger import (
|
| 19 |
+
ImageTagger, _TAGGER_DEPS_OK, _ensure_rgb, _pad_square,
|
| 20 |
+
_tags_to_caption, _to_pil_image,
|
| 21 |
)
|
| 22 |
from src.pose_tagger import get_pose_tagger
|
| 23 |
|
src/i18n.py
CHANGED
|
@@ -320,6 +320,7 @@ L10N = {
|
|
| 320 |
"tagger_format_desc": "Prompt-ready escapes parentheses; Raw keeps booru underscores.",
|
| 321 |
"tagger_format_prompt": "Prompt-ready",
|
| 322 |
"tagger_format_raw": "Raw (booru)",
|
|
|
|
| 323 |
"tagger_mode_label": "Ensemble mode",
|
| 324 |
"tagger_mode_info": "Combine multiple WD14 taggers for broader coverage",
|
| 325 |
"tagger_mode_ensemble": "Ensemble (best)",
|
|
@@ -686,6 +687,7 @@ L10N = {
|
|
| 686 |
"tagger_format_desc": "Prompt-ready экранирует скобки; Raw сохраняет booru-подчёркивания.",
|
| 687 |
"tagger_format_prompt": "Для промпта",
|
| 688 |
"tagger_format_raw": "Исходный (booru)",
|
|
|
|
| 689 |
"tagger_mode_label": "Режим ансамбля",
|
| 690 |
"tagger_mode_info": "Комбинируйте несколько WD14-теггеров для большего покрытия",
|
| 691 |
"tagger_mode_ensemble": "Ансамбль (лучший)",
|
|
|
|
| 320 |
"tagger_format_desc": "Prompt-ready escapes parentheses; Raw keeps booru underscores.",
|
| 321 |
"tagger_format_prompt": "Prompt-ready",
|
| 322 |
"tagger_format_raw": "Raw (booru)",
|
| 323 |
+
"tagger_model_label": "Model",
|
| 324 |
"tagger_mode_label": "Ensemble mode",
|
| 325 |
"tagger_mode_info": "Combine multiple WD14 taggers for broader coverage",
|
| 326 |
"tagger_mode_ensemble": "Ensemble (best)",
|
|
|
|
| 687 |
"tagger_format_desc": "Prompt-ready экранирует скобки; Raw сохраняет booru-подчёркивания.",
|
| 688 |
"tagger_format_prompt": "Для промпта",
|
| 689 |
"tagger_format_raw": "Исходный (booru)",
|
| 690 |
+
"tagger_model_label": "Модель",
|
| 691 |
"tagger_mode_label": "Режим ансамбля",
|
| 692 |
"tagger_mode_info": "Комбинируйте несколько WD14-теггеров для большего покрытия",
|
| 693 |
"tagger_mode_ensemble": "Ансамбль (лучший)",
|