post_vbench_i2v.py 1.76 KB
Newer Older
GoatWu's avatar
GoatWu committed
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
from tqdm import tqdm
import argparse
import glob
import os
import requests
import time


def post_i2v(image_path, output_path):
    url = "http://localhost:8000"

    file_name = os.path.basename(image_path)
    prompt = os.path.splitext(file_name)[0]
    save_video_path = os.path.join(output_path, f"{prompt}.mp4")

    message = {
        "prompt": prompt,
        "negative_prompt": "镜头晃动,色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",
        "image_path": image_path,
        "save_video_path": save_video_path,
    }

    while True:
        response = requests.get(f"{url}/v1/service/status").json()
        if response["service_status"] == "idle":
            response = requests.post(f"{url}/v1/tasks/", json=message)
            return
        time.sleep(3)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--data_path", type=str, required=True, help="path to img files.")
    parser.add_argument("--output_path", type=str, default="./vbench_i2v", help="output video path.")
    args = parser.parse_args()

    if os.path.exists(args.data_path):
        img_files = glob.glob(os.path.join(args.data_path, "*.jpg"))
        print(f"Found {len(img_files)} image files.")

        with tqdm(total=len(img_files)) as progress_bar:
            for idx, img_path in enumerate(img_files):
                post_i2v(img_path, args.output_path)
                progress_bar.update()