| |
| """ |
| 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}" |
| |
| 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}/") |
|
|