Youngsun Lim commited on
Commit
ae854f2
ยท
1 Parent(s): 509b1bc

2nd page fail error

Browse files
Files changed (1) hide show
  1. app.py +42 -18
app.py CHANGED
@@ -10,41 +10,63 @@ import secrets, time, string
10
 
11
  from functools import lru_cache
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  @lru_cache(maxsize=2048)
14
  def get_local_video_path(hf_url_or_relpath: str) -> str:
15
  """
16
- hf_url_or_relpath:
17
- - ๋งŒ์•ฝ ์ด๋ฏธ ๋กœ์ปฌ ๊ฒฝ๋กœ(/tmp/...mp4 ๋“ฑ)์ด๋ฉด ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ด
18
- - ๋งŒ์•ฝ 'videos/...mp4' ๊ฐ™์€ repo ๋‚ด๋ถ€ ๊ฒฝ๋กœ๋ฉด hf_hub_download๋กœ ๋ฐ›์•„์„œ ๋กœ์ปฌ ๊ฒฝ๋กœ ๋ฆฌํ„ด
19
- - ๋งŒ์•ฝ https://huggingface.co/... ํ˜•ํƒœ๋ฉด ํŒŒ์ผ๋ช…๋งŒ ๋–ผ์™€์„œ ๋ฐ›์•„์„œ ๋กœ์ปฌ ๋ฆฌํ„ด
20
  """
21
- # 1) ์ด๋ฏธ ๋กœ์ปฌ ํŒŒ์ผ์ด๋ฉด ๊ทธ๋Œ€๋กœ
22
  if os.path.exists(hf_url_or_relpath):
23
  return ensure_muted_copy(hf_url_or_relpath)
24
 
25
- # 2) ํ—ˆ๊น…ํŽ˜์ด์Šค ํ”„๋ผ์ด๋น— URL์ผ ๊ฐ€๋Šฅ์„ฑ -> ํŒŒ์ผ basename ๋ฝ‘๊ธฐ
26
- basename = os.path.basename(hf_url_or_relpath)
27
 
28
- # ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ dataset repo์— ์˜ฌ๋ ค๋‘” mp4๊ฐ€ ์˜ˆ๋ฅผ ๋“ค๋ฉด "videos/Wan2.2_...mp4" ์ด๋Ÿฐ ๊ตฌ์กฐ๋ผ๊ณ  ๊ฐ€์ •
29
- # videos.json์ด url ๋Œ€์‹  repo ๋‚ด๋ถ€ ์ƒ๋Œ€๊ฒฝ๋กœ๋ฅผ ๋‹ด๋„๋ก ๋˜์–ด ์žˆ์œผ๋ฉด ์ œ์ผ ๊น”๋”ํ•จ.
30
- # ๋งŒ์•ฝ ์ง„์งœ๋กœ "videos/....mp4" ์ด๋Ÿฐ ์ƒ๋Œ€๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ์“ฐ๊ณ :
31
- possible_rel = hf_url_or_relpath
32
- # ํ˜น์‹œ ์ „์ฒด URL์ด์—ˆ๋‹ค๋ฉด basename๋งŒ ์“ฐ๋Š” ์‹์œผ๋กœ ๋‹จ์ˆœํ™”:
33
- if possible_rel.startswith("http"):
34
- possible_rel = f"videos/{basename}"
35
 
36
  local_path = hf_hub_download(
37
  repo_id=REPO_ID,
38
- filename=possible_rel,
39
- repo_type="dataset",
40
  token=HF_TOKEN,
41
  local_dir="/tmp",
42
  local_dir_use_symlinks=False,
43
  )
44
- # ์Œ์†Œ๊ฑฐ๋ณธ๊นŒ์ง€ ๋งŒ๋“ค๊ธฐ(๋„ค๊ฐ€ ์ด๋ฏธ ensure_muted_copy() ์ค€๋น„ํ•ด๋‘ )
 
45
  return ensure_muted_copy(local_path)
46
 
47
 
 
48
  # ์‚ฌ์šฉ์ž๊ฐ€ '์„ ํƒ'์„ ์™„๋ฃŒํ•œ ๊ฐ’ (์ดˆ๊ธฐ์—” None)
49
  selected_action = gr.State(None)
50
  selected_phys = gr.State(None)
@@ -191,7 +213,9 @@ def push_final_feedback(participant_id: str, comment: str):
191
 
192
 
193
  # -------------------- Config --------------------
194
- REPO_ID = os.getenv("RESULTS_REPO", "dghadiya/video_eval") # ์—…๋กœ๋“œํ•œ ๋ฆฌํฌ์™€ ์ผ์น˜
 
 
195
  HF_TOKEN = os.getenv("HF_TOKEN")
196
  RESULTS_FILE = "results.csv"
197
  TOTAL_PER_PARTICIPANT = 30 # ๋ชฉํ‘œ ํ‰๊ฐ€ ๊ฐœ์ˆ˜(์„ธ์…˜ ๊ธฐ์ค€)
 
10
 
11
  from functools import lru_cache
12
 
13
+ def _infer_relpath_from_filename(url_or_name: str) -> str:
14
+ """
15
+ url_or_name: videos.json์— ๋“ค์–ด์žˆ๋Š” v["url"] (์ „์ฒด URL์ด๋“  ํŒŒ์ผ๋ช…๋งŒ์ด๋“ )
16
+ return: HF dataset ๋‚ด๋ถ€์—์„œ์˜ ์ƒ๋Œ€๊ฒฝ๋กœ
17
+ ex) "video_examples/Wan2.2/Wan2.2/Wan2.2_BodyWeightSquats_01_g01_c01.mp4"
18
+ ๊ทœ์น™:
19
+ 1) basename๋งŒ ๋ฝ‘๋Š”๋‹ค.
20
+ 2) prefix = basename.split('_')[0] (์˜ˆ: "Wan2.2", "Hunyuan_videos", "wan21_videos", "RunwayGen4")
21
+ 3) relpath = f"video_examples/{prefix}/{prefix}/{basename}"
22
+ """
23
+ # 1) ํ˜น์‹œ ์ „์ฒด URL์ด๋ฉด ๋งจ ๋งˆ์ง€๋ง‰ ํŒŒ์ผ๋ช…๋งŒ ์ถ”์ถœ
24
+ base = os.path.basename(url_or_name)
25
+
26
+ # 2) prefix ๋Š” ์ฒซ '_' ์ด์ „๊นŒ์ง€
27
+ # ์˜ˆ: "Wan2.2_BodyWeightSquats_01_g01_c01.mp4" -> "Wan2.2"
28
+ # "Hunyuan_videos_BodyWeightSquats_01_08d40ea1.mp4" -> "Hunyuan_videos"
29
+ # ๋งŒ์•ฝ '_'๊ฐ€ ์—†๋‹ค๋ฉด ์ „์ฒด ์ด๋ฆ„ ์ž์ฒด๋ฅผ prefix๋กœ ์“ด๋‹ค.
30
+ if "_" in base:
31
+ prefix = base.split("_")[0]
32
+ else:
33
+ prefix = os.path.splitext(base)[0]
34
+
35
+ # 3) ์ตœ์ข… ์ƒ๋Œ€๊ฒฝ๋กœ
36
+ rel = f"video_examples/{prefix}/{prefix}/{base}"
37
+ return rel
38
+
39
+
40
  @lru_cache(maxsize=2048)
41
  def get_local_video_path(hf_url_or_relpath: str) -> str:
42
  """
43
+ 1) ์ด๋ฏธ ๋กœ์ปฌ์ด๋ฉด ๊ทธ๋Œ€๋กœ ์“ด๋‹ค.
44
+ 2) ์•„๋‹ˆ๋ฉด repo์—์„œ hf_hub_download๋กœ ๋ฐ›์•„์„œ /tmp์— ์ €์žฅํ•˜๊ณ  ์Œ์†Œ๊ฑฐ๋ณธ ๊ฒฝ๋กœ ๋ฆฌํ„ด.
 
 
45
  """
46
+ # ๋กœ์ปฌ ๊ฒฝ๋กœ๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉ
47
  if os.path.exists(hf_url_or_relpath):
48
  return ensure_muted_copy(hf_url_or_relpath)
49
 
50
+ if not HF_TOKEN:
51
+ raise RuntimeError("HF_TOKEN is not set or empty in this Space. Please add it as a secret.")
52
 
53
+ # ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง„ ๋ฌธ์ž์—ด๋กœ๋ถ€ํ„ฐ HF repo ๋‚ด๋ถ€ ๊ฒฝ๋กœ๋ฅผ ์ถ”๋ก 
54
+ rel = _infer_relpath_from_filename(hf_url_or_relpath)
 
 
 
 
 
55
 
56
  local_path = hf_hub_download(
57
  repo_id=REPO_ID,
58
+ filename=rel,
59
+ repo_type=REPO_TYPE,
60
  token=HF_TOKEN,
61
  local_dir="/tmp",
62
  local_dir_use_symlinks=False,
63
  )
64
+
65
+ # ๋ฌด์Œ ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋ฆฌํ„ด
66
  return ensure_muted_copy(local_path)
67
 
68
 
69
+
70
  # ์‚ฌ์šฉ์ž๊ฐ€ '์„ ํƒ'์„ ์™„๋ฃŒํ•œ ๊ฐ’ (์ดˆ๊ธฐ์—” None)
71
  selected_action = gr.State(None)
72
  selected_phys = gr.State(None)
 
213
 
214
 
215
  # -------------------- Config --------------------
216
+ # REPO_ID = os.getenv("RESULTS_REPO", "dghadiya/video_eval") # ์—…๋กœ๋“œํ•œ ๋ฆฌํฌ์™€ ์ผ์น˜
217
+ REPO_ID = os.getenv("RESULTS_REPO", "dghadiya/video_examples")
218
+
219
  HF_TOKEN = os.getenv("HF_TOKEN")
220
  RESULTS_FILE = "results.csv"
221
  TOTAL_PER_PARTICIPANT = 30 # ๋ชฉํ‘œ ํ‰๊ฐ€ ๊ฐœ์ˆ˜(์„ธ์…˜ ๊ธฐ์ค€)