Spaces:
Runtime error
Runtime error
File size: 2,339 Bytes
04fbff5 |
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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import torch
import os
from vbench import VBench
from datetime import datetime
import argparse
def parse_args():
CUR_DIR = os.path.dirname(os.path.abspath(__file__))
parser = argparse.ArgumentParser(description='VBench')
parser.add_argument(
"--output_path",
type=str,
default='./evaluation_results/',
help="output path to save the evaluation results",
)
parser.add_argument(
"--full_json_dir",
type=str,
default=f'{CUR_DIR}/vbench/VBench_full_info.json',
help="path to save the json file that contains the prompt and dimension information",
)
parser.add_argument(
"--videos_path",
type=str,
required=True,
help="folder that contains the sampled videos",
)
parser.add_argument(
"--dimension",
nargs='+',
required=True,
help="list of evaluation dimensions, usage: --dimension <dim_1> <dim_2>",
)
parser.add_argument(
"--load_ckpt_from_local",
type=bool,
required=False,
help="whether load checkpoints from local default paths (assuming you have downloaded the checkpoints locally",
)
parser.add_argument(
"--read_frame",
type=bool,
required=False,
help="whether directly read frames, or directly read videos",
)
parser.add_argument(
"--custom_input",
action="store_true",
required=False,
help="whether use custom input prompt or vbench prompt"
)
parser.add_argument(
"--output_filename",
type=str,
required=True,
help="filename before _full_info or _eval_results",
)
args = parser.parse_args()
return args
def main():
args = parse_args()
print(f'args: {args}')
device = torch.device("cuda")
my_VBench = VBench(device, args.full_json_dir, args.output_path)
print(f'start evaluation')
# current_time = datetime.now().strftime('%Y-%m-%d-%H:%M:%S')
my_VBench.evaluate(
videos_path = args.videos_path,
name = args.output_filename,
dimension_list = args.dimension,
local=args.load_ckpt_from_local,
read_frame=args.read_frame,
custom_prompt=args.custom_input,
)
print('done')
if __name__ == "__main__":
main()
|