teddyk251 commited on
Commit
1082f9f
·
1 Parent(s): 485e71e

fix stuck on loading bug

Browse files
Files changed (1) hide show
  1. app.py +20 -12
app.py CHANGED
@@ -53,17 +53,20 @@ def paginate(rows, page, page_size):
53
 
54
  def refresh(dataset_sel, model_sel, query, page, page_size):
55
  rows = filter_rows(dataset_sel, model_sel, query)
 
 
56
  items, total, total_pages, page = paginate(rows, page, page_size)
57
  info = f"Page {page}/{total_pages} — {total} images"
58
  return items, info, page
59
 
 
60
  with gr.Blocks(title="Self‑Imagine — Sample Gallery") as demo:
61
  gr.Markdown("## 🖼️ Self‑Imagine — Sample Gallery")
62
 
63
  with gr.Row():
64
  dataset_dd = gr.Dropdown(DATASETS, value="All", label="Dataset")
65
  model_dd = gr.Dropdown(MODELS, value="All", label="Model")
66
- query_tb = gr.Textbox(label="Search filename")
67
  page_size = gr.Slider(6, 60, value=24, step=6, label="Thumbnails per page")
68
 
69
  with gr.Row():
@@ -74,26 +77,31 @@ with gr.Blocks(title="Self‑Imagine — Sample Gallery") as demo:
74
 
75
  gallery = gr.Gallery(columns=[6], height=700, allow_preview=False, show_label=False)
76
 
77
- # initial
78
- items, info, page = refresh("All", "All", "", 1, 24)
79
- gallery.value, page_info.value, page_num.value = items, info, page
 
80
 
81
  def do_search(dataset_sel, model_sel, query, page_size):
82
- return (*refresh(dataset_sel, model_sel, query, 1, page_size), 1)
 
83
 
84
  dataset_dd.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
85
- model_dd.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
86
- query_tb.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
87
- page_size.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
88
 
89
  def on_prev(dataset_sel, model_sel, query, page, page_size):
90
- return (*refresh(dataset_sel, model_sel, query, max(1, page-1), page_size), max(1, page-1))
 
 
91
 
92
  def on_next(dataset_sel, model_sel, query, page, page_size):
93
  rows = filter_rows(dataset_sel, model_sel, query)
94
- total_pages = max(1, math.ceil(len(rows) / max(1, page_size)))
95
- newp = min(total_pages, page+1)
96
- return (*refresh(dataset_sel, model_sel, query, newp, page_size), newp)
 
97
 
98
  prev_btn.click(on_prev, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])
99
  next_btn.click(on_next, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])
 
53
 
54
  def refresh(dataset_sel, model_sel, query, page, page_size):
55
  rows = filter_rows(dataset_sel, model_sel, query)
56
+ if len(rows) == 0:
57
+ return [], "Page 1/1 — 0 images", 1
58
  items, total, total_pages, page = paginate(rows, page, page_size)
59
  info = f"Page {page}/{total_pages} — {total} images"
60
  return items, info, page
61
 
62
+
63
  with gr.Blocks(title="Self‑Imagine — Sample Gallery") as demo:
64
  gr.Markdown("## 🖼️ Self‑Imagine — Sample Gallery")
65
 
66
  with gr.Row():
67
  dataset_dd = gr.Dropdown(DATASETS, value="All", label="Dataset")
68
  model_dd = gr.Dropdown(MODELS, value="All", label="Model")
69
+ query_tb = gr.Textbox(label="Search filename", placeholder="e.g., 17.jpg or gsm8k")
70
  page_size = gr.Slider(6, 60, value=24, step=6, label="Thumbnails per page")
71
 
72
  with gr.Row():
 
77
 
78
  gallery = gr.Gallery(columns=[6], height=700, allow_preview=False, show_label=False)
79
 
80
+ def _initial():
81
+ items, info, page = refresh("All", "All", "", 1, 24)
82
+ return items, info, page
83
+ demo.load(_initial, inputs=None, outputs=[gallery, page_info, page_num])
84
 
85
  def do_search(dataset_sel, model_sel, query, page_size):
86
+ items, info, page = refresh(dataset_sel, model_sel, query, 1, page_size)
87
+ return items, info, 1
88
 
89
  dataset_dd.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
90
+ model_dd.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
91
+ query_tb.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
92
+ page_size.change(do_search, [dataset_dd, model_dd, query_tb, page_size], [gallery, page_info, page_num])
93
 
94
  def on_prev(dataset_sel, model_sel, query, page, page_size):
95
+ newp = max(1, int(page) - 1)
96
+ items, info, page = refresh(dataset_sel, model_sel, query, newp, page_size)
97
+ return items, info, newp
98
 
99
  def on_next(dataset_sel, model_sel, query, page, page_size):
100
  rows = filter_rows(dataset_sel, model_sel, query)
101
+ total_pages = max(1, math.ceil(len(rows) / max(1, int(page_size))))
102
+ newp = min(total_pages, int(page) + 1)
103
+ items, info, page = refresh(dataset_sel, model_sel, query, newp, page_size)
104
+ return items, info, newp
105
 
106
  prev_btn.click(on_prev, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])
107
  next_btn.click(on_next, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])