File size: 1,360 Bytes
c162d1f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from typing import List
from .data_loader import METRIC_CHOICES, DIMENSION_METRICS

def get_metric_choices() -> List[str]:
    """获取带标记的指标选项"""
    # 获取基础指标(排除维度指标和EWMScore)
    basic_metrics = [m for m in METRIC_CHOICES if m not in DIMENSION_METRICS and m != "EWMScore"]
    
    # 对维度指标加特殊标记,并按特定顺序排序
    # 定义维度指标的顺序
    dimension_order = ["Visual Quality", "Motion Quality", "Content Consistency", 
                      "Physics Adherence", "3D Accuracy", "Controllability"]
    
    # 确保维度指标按照指定顺序排列
    ordered_dimensions = []
    for dim in dimension_order:
        if dim in DIMENSION_METRICS:
            ordered_dimensions.append(dim)
    
    # 添加可能遗漏的维度指标
    for dim in DIMENSION_METRICS:
        if dim not in ordered_dimensions:
            ordered_dimensions.append(dim)
    
    dimension_choices = [f"📊 {m}" for m in ordered_dimensions]
    
    # 将EWMScore放在第一个,然后维度指标,最后基础指标
    return ["EWMScore"] + dimension_choices + sorted(basic_metrics)

def clean_metric_names(metrics: List[str]) -> List[str]:
    """清理指标名称(去除特殊标记)"""
    return [m.replace("📊 ", "") for m in metrics]