ArtShumov commited on
Commit
3f8b2f9
·
1 Parent(s): fa6338f

fix(tagger): push lost qwen model, slide-panel UI, SSR off, ensemble wiring

Browse files
Files changed (3) hide show
  1. app.py +14 -3
  2. src/ensemble_tagger.py +2 -1
  3. 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
- tagger_mode = gr.Dropdown(
 
 
 
 
 
 
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=t("tagger_mode_label", "en"),
1606
- info=t("tagger_mode_info", "en"),
 
 
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, _tags_to_caption,
 
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": "Ансамбль (лучший)",