vbench-i2v / run_eval.py
lxl-158's picture
upload vbench-i2v
d0d70d4 verified
#!/usr/bin/env python
"""
VBench I2V 评测脚本
用法:
python run_eval.py --model_name my_model --resolution 16-9
"""
import os
import argparse
# 设置模型缓存路径
os.environ['VBENCH_CACHE_DIR'] = './vbench2_beta_i2v/pretrained_models'
os.environ['HF_HOME'] = './vbench2_beta_i2v/pretrained_models/huggingface'
os.environ['TORCH_HOME'] = './vbench2_beta_i2v/pretrained_models/torch'
from vbench2_beta_i2v import VBenchI2V
# 全维度
ALL_DIMENSIONS = [
"i2v_subject",
"i2v_background",
"camera_motion",
"subject_consistency",
"background_consistency",
"aesthetic_quality",
"imaging_quality",
"motion_smoothness",
"dynamic_degree",
]
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="VBench I2V 评测")
parser.add_argument("--model_name", type=str, required=True, help="模型名称")
parser.add_argument("--resolution", type=str, default="16-9",
choices=["1-1", "8-5", "7-4", "16-9"], help="分辨率")
parser.add_argument("--videos_path", type=str, default=None,
help="视频路径,默认 ./sampled_videos/{model_name}")
parser.add_argument("--output_path", type=str, default=None,
help="结果路径,默认 ./evaluation_results/{model_name}")
args = parser.parse_args()
# 视频路径:默认使用采样输出路径
videos_path = args.videos_path or f"./sampled_videos/{args.model_name}"
# 结果路径:默认 ./evaluation_results/{model_name}/
output_path = args.output_path or f"./evaluation_results/{args.model_name}"
full_info_path = "./vbench2_beta_i2v/vbench2_i2v_full_info.json"
print("=" * 60)
print("VBench I2V 评测")
print("=" * 60)
print(f"模型: {args.model_name}")
print(f"视频路径: {videos_path}")
print(f"分辨率: {args.resolution}")
print(f"结果路径: {output_path}")
print(f"评测维度: {len(ALL_DIMENSIONS)} 个")
print("=" * 60)
os.makedirs(output_path, exist_ok=True)
vbench = VBenchI2V("cuda", full_info_path, output_path)
vbench.evaluate(
videos_path=videos_path,
name=args.model_name,
dimension_list=ALL_DIMENSIONS,
resolution=args.resolution,
)
print(f"\n评测完成! 结果: {output_path}/")