Spaces:
Runtime error
Runtime error
| import cv2 | |
| import json | |
| import os | |
| import asyncio | |
| async def stylize(video): | |
| command = f"animatediff stylize create-config {video}" | |
| process = await asyncio.create_subprocess_shell( | |
| command, | |
| stdout=asyncio.subprocess.PIPE, | |
| stderr=asyncio.subprocess.PIPE | |
| ) | |
| stdout, stderr = await process.communicate() | |
| if process.returncode == 0: | |
| return stdout.decode() | |
| else: | |
| print(f"Error: {stderr.decode()}") | |
| async def start_video_edit(prompt_file): | |
| command = f"animatediff stylize generate {prompt_file}" | |
| process = await asyncio.create_subprocess_shell( | |
| command, | |
| stdout=asyncio.subprocess.PIPE, | |
| stderr=asyncio.subprocess.PIPE | |
| ) | |
| stdout, stderr = await process.communicate() | |
| if process.returncode == 0: | |
| return stdout.decode() | |
| else: | |
| print(f"Error: {stderr.decode()}") | |
| def edit_video(video, pos_prompt): | |
| x = asyncio.run(stylize(video)) | |
| x = x.split("stylize.py") | |
| config = x[18].split("config =")[-1].strip() | |
| d = x[19].split("stylize_dir = ")[-1].strip() | |
| with open(config, 'r+') as f: | |
| data = json.load(f) | |
| data['head_prompt'] = pos_prompt | |
| data["path"] = "models/huggingface/xxmix9realistic_v40.safetensors" | |
| os.remove(config) | |
| with open(config, 'w') as f: | |
| json.dump(data, f, indent=4) | |
| out = asyncio.run(start_video_edit(d)) | |
| out = out.split("Stylized results are output to ")[-1] | |
| out = out.split("stylize.py")[0].strip() | |
| cwd = os.getcwd() | |
| video_dir = cwd + "/" + out | |
| video_extensions = {'.mp4', '.avi', '.mkv', '.mov', '.flv', '.wmv'} | |
| video_path = None | |
| for dirpath, dirnames, filenames in os.walk(video_dir): | |
| for filename in filenames: | |
| if os.path.splitext(filename)[1].lower() in video_extensions: | |
| video_path = os.path.join(dirpath, filename) | |
| break | |
| if video_path: | |
| break | |
| return video_path | |
| video_path = input("Enter the path to your video: ") | |
| pos_prompt = input("Enter the what you want to do with the video: ") | |
| print("The video is stored at", edit_video(video_path, pos_prompt)) |