Spaces:
Running
on
Zero
Running
on
Zero
file_path = '/home/lizhikai/webvid_prompt100.txt' | |
str_list = [] | |
with open(file_path, 'r', encoding='utf-8') as file: | |
for line in file: | |
str_list.append(line.strip()) | |
if len(str_list) == 100: | |
break | |
def generate_image_ig_api(prompt, model_name): | |
model_source, model_name, model_type = model_name.split("_") | |
pipe = load_replicate_model(model_name, model_type) | |
result = pipe(prompt=prompt) | |
return result | |
model_names = ['replicate_Zeroscope-v2-xl_text2video', | |
# 'replicate_Damo-Text-to-Video_text2video', | |
'replicate_Animate-Diff_text2video', | |
'replicate_OpenSora_text2video', | |
'replicate_LaVie_text2video', | |
'replicate_VideoCrafter2_text2video', | |
'replicate_Stable-Video-Diffusion_text2video', | |
] | |
save_names = [] | |
for name in model_names: | |
model_source, model_name, model_type = name.split("_") | |
save_names.append(model_name) | |
for i, prompt in enumerate(str_list): | |
print("save the {} prompt".format(i+1)) | |
# if i+1 < 97: | |
# continue | |
with concurrent.futures.ThreadPoolExecutor() as executor: | |
futures = [executor.submit(generate_image_ig_api, prompt, model) for model in model_names] | |
results = [future.result() for future in futures] | |
root_dir = '/mnt/data/lizhikai/ksort_video_cache/' | |
save_dir = os.path.join(root_dir, f'cache_{i+1}') | |
if not os.path.exists(save_dir): | |
os.makedirs(save_dir, exist_ok=True) | |
with open(os.path.join(save_dir, "prompt.txt"), 'w', encoding='utf-8') as file: | |
file.write(prompt) | |
# 下载视频并保存 | |
repeat_num = 5 | |
for j, url in enumerate(results): | |
while 1: | |
time.sleep(1) | |
response = requests.get(url, stream=True) | |
if response.status_code == 200: | |
file_path = os.path.join(save_dir, f'{save_names[j]}.mp4') | |
with open(file_path, 'wb') as file: | |
for chunk in response.iter_content(chunk_size=8192): | |
file.write(chunk) | |
print(f"视频 {j} 已保存到 {file_path}") | |
break | |
else: | |
repeat_num = repeat_num - 1 | |
if repeat_num == 0: | |
print(f"视频 {j} 保存失败") | |
# raise ValueError("Video request failed.") | |
continue | |