#!/usr/bin/env python3 """Run all standard VBench dimensions for one long-video condition.""" from __future__ import annotations import argparse import os import tempfile from pathlib import Path def preparse_gpu() -> str: parser = argparse.ArgumentParser(add_help=False) parser.add_argument("--gpu", required=True) args, _ = parser.parse_known_args() os.environ["CUDA_VISIBLE_DEVICES"] = args.gpu os.environ.setdefault("MPLCONFIGDIR", tempfile.mkdtemp(prefix="vbench_mpl_")) return args.gpu GPU = preparse_gpu() from vbench import VBench DIMENSIONS = [ "subject_consistency", "background_consistency", "motion_smoothness", "aesthetic_quality", "imaging_quality", ] def main() -> None: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--gpu", default=GPU) parser.add_argument("--video_dir", type=Path, required=True) parser.add_argument("--output_dir", type=Path, required=True) parser.add_argument("--name", required=True) args = parser.parse_args() args.video_dir = args.video_dir.resolve() args.output_dir = args.output_dir.resolve() args.output_dir.mkdir(parents=True, exist_ok=True) bench = VBench( device="cuda", full_info_dir=str(args.video_dir / "full_info.json"), output_path=str(args.output_dir), ) bench.evaluate( videos_path=str(args.video_dir), name=args.name, dimension_list=DIMENSIONS, mode="custom_input", ) if __name__ == "__main__": main()