Spaces:
Paused
Paused
import os | |
import gradio as gr | |
import subprocess | |
import datetime | |
import sys | |
def run_command(command): | |
"""Run a shell command and print its output.""" | |
print(f"Running command: {' '.join(command)}") | |
try: | |
subprocess.check_call(command, shell=True) | |
except subprocess.CalledProcessError as e: | |
print(f"Error running command {command}: {e}") | |
sys.exit(1) | |
def check_for_mp4_in_outputs(given_folder): | |
# Define the path to the outputs folder | |
outputs_folder = given_folder | |
# Check if the outputs folder exists | |
if not os.path.exists(outputs_folder): | |
return None | |
# Check if there is a .mp4 file in the outputs folder | |
mp4_files = [f for f in os.listdir(outputs_folder) if f.endswith('.mp4')] | |
# Return the path to the mp4 file if it exists | |
if mp4_files: | |
return os.path.join(outputs_folder, mp4_files[0]) | |
else: | |
return None | |
def infer(): | |
filepath = "./assets/examples/synthetic_1.mp4" | |
# Get the current timestamp | |
timestamp = datetime.datetime.now().strftime("%Y%m%d%H%M%S") | |
output_folder_name = f"results_{timestamp}" | |
# Example: Run the inference script (replace with your actual command) | |
run_command(f"{sys.executable} inference_keep.py -i={filepath} -o={output_folder_name} --has_aligned --save_video -s=1") | |
# Call the function and print the result | |
this_infer_folder = os.path.splitext(os.path.basename(filepath))[0] | |
joined_path = os.path.join(output_folder_name, this_infer_folder) | |
mp4_file_path = check_for_mp4_in_outputs(joined_path) | |
print(mp4_file_path) | |
print(f"RESULT: {mp4_file_path}") | |
return mp4_file_path | |
with gr.Blocks() as demo: | |
with gr.Column(): | |
gr.Markdown("# KEEP") | |
with gr.Row(): | |
with gr.Column(): | |
submit_btn = gr.Button("Submit") | |
with gr.Column(): | |
result = gr.Video() | |
submit_btn.click( | |
fn = infer, | |
inputs = None, | |
outputs = [result], | |
show_api=False | |
) | |
demo.queue().launch(show_error=True, show_api=False) |