Spaces:
Runtime error
Runtime error
| import os | |
| import subprocess | |
| import gradio as gr | |
| # execute a CLI command | |
| def execute_command(command: str) -> None: | |
| subprocess.run(command, check=True) | |
| def infer(video_frames, masks_frames): | |
| video_frames_folder = "inputs/object_removal/bmx-trees" | |
| masks_folder = "inputs/object_removal/bmx-trees_mask" | |
| # Create the "results" folder if it doesn't exist | |
| output_folder = "results" | |
| if not os.path.exists(output_folder): | |
| os.makedirs(output_folder) | |
| #bmx_trees_folder = os.path.join(output_folder, "bmx-trees") | |
| command = [ | |
| f"python", | |
| f"inference_propainter.py", | |
| f"--video={video_frames_folder}", | |
| f"--mask={masks_folder}", | |
| f"--output={output_folder}" | |
| ] | |
| execute_command(command) | |
| # Get the list of files in the "results" folder | |
| result_files = os.listdir(output_folder) | |
| # Print the content of the "results" folder | |
| print(f"Contents of the {output_folder} folder:") | |
| for item in result_files: | |
| print(item) | |
| # List the content of the "bmx-trees" folder within "results" | |
| bmx_trees_folder = os.path.join(output_folder, "bmx-trees") | |
| bmx_trees_content = os.listdir(bmx_trees_folder) | |
| bmx_trees_content = [os.path.join(bmx_trees_folder, item) for item in os.listdir(bmx_trees_folder)] | |
| print(f"Contents of the {bmx_trees_folder} folder:") | |
| for item in bmx_trees_content: | |
| print(item) | |
| return "done", bmx_trees_content[1] | |
| css=""" | |
| #col-container{ | |
| margin: 0 auto; | |
| max-width: 840px; | |
| text-align: left; | |
| } | |
| """ | |
| with gr.Blocks(css=css) as demo: | |
| with gr.Column(elem_id="col-container"): | |
| gr.HTML(""" | |
| <h2 style="text-align: center;">ProPainter</h2> | |
| <p style="text-align: center;"> | |
| </p> | |
| """) | |
| with gr.Row(): | |
| with gr.Column(): | |
| video_frames = gr.Files(label="Video frames") | |
| masks_frames = gr.Files(label="Masks frames") | |
| submit_btn = gr.Button("Submit") | |
| with gr.Column(): | |
| result = gr.Textbox(label="Result") | |
| res_files = gr.Files() | |
| submit_btn.click(fn=infer, inputs=[video_frames, masks_frames], outputs=[result, res_files]) | |
| demo.queue(max_size=12).launch() |