Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -170,8 +170,9 @@ MOVIE_CRITERIA: List[Tuple[str, str, str]] = [
|
|
| 170 |
]
|
| 171 |
|
| 172 |
BASE_METRIC_KEYS = [k for k, _, _ in MOVIE_CRITERIA]
|
| 173 |
-
# 左侧 A 固定
|
| 174 |
FIXED_A_METHOD = "MemDirector"
|
|
|
|
| 175 |
SAVE_LOCK = threading.Lock()
|
| 176 |
|
| 177 |
CUSTOM_CSS = """
|
|
@@ -379,7 +380,7 @@ def sync_results_from_hub_to_local() -> None:
|
|
| 379 |
|
| 380 |
|
| 381 |
def build_pending_samples() -> List[Dict[str, Any]]:
|
| 382 |
-
"""构建对比样本池:同一 story 下 A 固定为 MemDirector,B 为
|
| 383 |
all_samples = load_dataset_index()
|
| 384 |
by_story: Dict[str, List[Dict[str, Any]]] = defaultdict(list)
|
| 385 |
for sample in all_samples:
|
|
@@ -389,32 +390,28 @@ def build_pending_samples() -> List[Dict[str, Any]]:
|
|
| 389 |
for story_name, story_samples in by_story.items():
|
| 390 |
by_method = {s["method"]: s for s in story_samples}
|
| 391 |
a_sample = by_method.get(FIXED_A_METHOD)
|
| 392 |
-
|
|
|
|
| 393 |
continue
|
| 394 |
-
|
| 395 |
-
|
| 396 |
-
|
| 397 |
-
|
| 398 |
-
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
"
|
| 402 |
-
"
|
| 403 |
-
"
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
-
|
| 410 |
-
|
| 411 |
-
|
| 412 |
-
|
| 413 |
-
"video_path": b_sample["video_path"],
|
| 414 |
-
"sample_id": b_sample["sample_id"],
|
| 415 |
-
},
|
| 416 |
-
}
|
| 417 |
-
)
|
| 418 |
|
| 419 |
random.shuffle(pending)
|
| 420 |
for i, sample in enumerate(pending, start=1):
|
|
|
|
| 170 |
]
|
| 171 |
|
| 172 |
BASE_METRIC_KEYS = [k for k, _, _ in MOVIE_CRITERIA]
|
| 173 |
+
# 左侧 A 固定 MemDirector;右侧 B 固定 Seedance2.0;展示顺序仍由末尾 shuffle 随机
|
| 174 |
FIXED_A_METHOD = "MemDirector"
|
| 175 |
+
FIXED_B_METHOD = "Seedance2.0"
|
| 176 |
SAVE_LOCK = threading.Lock()
|
| 177 |
|
| 178 |
CUSTOM_CSS = """
|
|
|
|
| 380 |
|
| 381 |
|
| 382 |
def build_pending_samples() -> List[Dict[str, Any]]:
|
| 383 |
+
"""构建对比样本池:同一 story 下 A 固定为 MemDirector,B 固定为 Seedance2.0。"""
|
| 384 |
all_samples = load_dataset_index()
|
| 385 |
by_story: Dict[str, List[Dict[str, Any]]] = defaultdict(list)
|
| 386 |
for sample in all_samples:
|
|
|
|
| 390 |
for story_name, story_samples in by_story.items():
|
| 391 |
by_method = {s["method"]: s for s in story_samples}
|
| 392 |
a_sample = by_method.get(FIXED_A_METHOD)
|
| 393 |
+
b_sample = by_method.get(FIXED_B_METHOD)
|
| 394 |
+
if not a_sample or not b_sample:
|
| 395 |
continue
|
| 396 |
+
pending.append(
|
| 397 |
+
{
|
| 398 |
+
"pair_id": f"{story_name}__{FIXED_A_METHOD}_vs_{FIXED_B_METHOD}",
|
| 399 |
+
"story_name": story_name,
|
| 400 |
+
"story_text": a_sample.get("story_text", "") or b_sample.get("story_text", ""),
|
| 401 |
+
"A": {
|
| 402 |
+
"method": a_sample["method"],
|
| 403 |
+
"video_name": a_sample["video_name"],
|
| 404 |
+
"video_path": a_sample["video_path"],
|
| 405 |
+
"sample_id": a_sample["sample_id"],
|
| 406 |
+
},
|
| 407 |
+
"B": {
|
| 408 |
+
"method": b_sample["method"],
|
| 409 |
+
"video_name": b_sample["video_name"],
|
| 410 |
+
"video_path": b_sample["video_path"],
|
| 411 |
+
"sample_id": b_sample["sample_id"],
|
| 412 |
+
},
|
| 413 |
+
}
|
| 414 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 415 |
|
| 416 |
random.shuffle(pending)
|
| 417 |
for i, sample in enumerate(pending, start=1):
|