Spaces:
Sleeping
Sleeping
File size: 2,085 Bytes
a7bb0d5 3c7b6f6 18ead1d a7bb0d5 715cfb3 a7bb0d5 18ead1d a7bb0d5 18ead1d a7bb0d5 18ead1d a7bb0d5 bbe7bfb |
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 |
import gradio as gr
import subprocess
import os
from huggingface_hub import snapshot_download
# Define the folder name
folder_name = "lora_models"
# Create the folder
os.makedirs(folder_name, exist_ok=True)
# Download models
snapshot_download(
repo_id = "Eyeline-Research/Go-with-the-Flow",
local_dir = folder_name
)
def process_video(video_path, prompt, num_steps):
output_folder="noise_warp_output_folder"
if os.path.exists(output_folder):
# Delete the folder and its contents
shutil.rmtree(output_folder)
output_video="output.mp4"
device="cuda"
num_steps=num_steps
try:
# Step 1: Warp the noise
warp_command = [
"python", "make_warped_noise.py", video_path,
"--output_folder", output_folder
]
subprocess.run(warp_command, check=True)
# Step 2: Run inference
inference_command = [
"python", "cut_and_drag_inference.py", output_folder,
"--prompt", prompt,
"--output_mp4_path", output_video,
"--device", device,
"--num_inference_steps", str(num_steps)
]
subprocess.run(inference_command, check=True)
# Return the path to the output video
return output_video
except subprocess.CalledProcessError as e:
raise gr.Error(f"An error occurred: {str(e)}")
with gr.Blocks() as demo:
with gr.Column():
gr.Markdown("# Go-With-The-Flow")
with gr.Row():
with gr.Column():
input_video = gr.Video(label="Input Video")
prompt = gr.Textbox(label="Prompt")
num_steps = gr.Slider(label="Inference Steps", minimum=1, maximum=30, value=5, step=1)
submit_btn = gr.Button("Submit")
with gr.Column():
output_video = gr.Video(label="Result")
submit_btn.click(
fn = process_video,
inputs = [input_video, prompt, num_steps],
outputs = [output_video]
)
demo.queue().launch(show_api=False) |