teddyk251 commited on
Commit
485e71e
·
1 Parent(s): 193a4d0
Files changed (2) hide show
  1. app.py +20 -3
  2. requirements.txt +2 -0
app.py CHANGED
@@ -2,6 +2,7 @@ import math
2
  import os
3
 
4
  import gradio as gr
 
5
  from datasets import load_dataset
6
 
7
  REPO_ID = "teddyk251/self-imagine-sample" # change me
@@ -9,6 +10,15 @@ TOKEN = os.environ.get("HF_TOKEN")
9
 
10
  ds = load_dataset(REPO_ID, split="train", token=TOKEN)
11
 
 
 
 
 
 
 
 
 
 
12
  DATASETS = ["All"] + sorted(set(ds["dataset"]))
13
  MODELS = ["All"] + sorted(set(ds["model"]))
14
 
@@ -30,8 +40,15 @@ def paginate(rows, page, page_size):
30
  start = (page - 1) * page_size
31
  end = min(start + page_size, total)
32
  sub = rows.select(range(start, end))
33
- gallery_items = [(sub[i]["image"], f'{sub[i]["dataset"]} / {sub[i]["model"]} — {sub[i]["filename"]}')
34
- for i in range(len(sub))]
 
 
 
 
 
 
 
35
  return gallery_items, total, total_pages, page
36
 
37
  def refresh(dataset_sel, model_sel, query, page, page_size):
@@ -82,4 +99,4 @@ with gr.Blocks(title="Self‑Imagine — Sample Gallery") as demo:
82
  next_btn.click(on_next, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])
83
 
84
  if __name__ == "__main__":
85
- demo.launch()
 
2
  import os
3
 
4
  import gradio as gr
5
+ from datasets import Image as HFImage
6
  from datasets import load_dataset
7
 
8
  REPO_ID = "teddyk251/self-imagine-sample" # change me
 
10
 
11
  ds = load_dataset(REPO_ID, split="train", token=TOKEN)
12
 
13
+ ds = ds.cast_column("image", HFImage(decode=False))
14
+
15
+ def img_src(img):
16
+ # HF Datasets gives either a dict with 'path' (local cache) or 'url'
17
+ if isinstance(img, dict):
18
+ return img.get("path") or img.get("url")
19
+ return img # already a string
20
+
21
+
22
  DATASETS = ["All"] + sorted(set(ds["dataset"]))
23
  MODELS = ["All"] + sorted(set(ds["model"]))
24
 
 
40
  start = (page - 1) * page_size
41
  end = min(start + page_size, total)
42
  sub = rows.select(range(start, end))
43
+ # gallery_items = [(sub[i]["image"], f'{sub[i]["dataset"]} / {sub[i]["model"]} — {sub[i]["filename"]}')
44
+ # for i in range(len(sub))]\
45
+ gallery_items = []
46
+ for i in range(len(sub)):
47
+ src = img_src(sub[i]["image"])
48
+ if not src:
49
+ continue # skip records without a resolvable path/url
50
+ label = f'{sub[i]["dataset"]} / {sub[i]["model"]} — {sub[i].get("filename","")}'
51
+ gallery_items.append((src, label))
52
  return gallery_items, total, total_pages, page
53
 
54
  def refresh(dataset_sel, model_sel, query, page, page_size):
 
99
  next_btn.click(on_next, [dataset_dd, model_dd, query_tb, page_num, page_size], [gallery, page_info, page_num])
100
 
101
  if __name__ == "__main__":
102
+ demo.launch(ssr_mode=False)
requirements.txt CHANGED
@@ -1,2 +1,4 @@
1
  gradio>=4.30
2
  datasets>=2.19
 
 
 
1
  gradio>=4.30
2
  datasets>=2.19
3
+ pillow
4
+ pandas