Spaces:
Running
Running
import gradio as gr | |
from pathlib import Path | |
import subprocess | |
from inference_img import * | |
OUTPUT_GIF = Path("demo/output.gif") | |
def generate_demo_gif(img1, img2): | |
# Save uploaded images | |
frame1_path = Path("demo/frame1.jpg") | |
frame2_path = Path("demo/frame2.jpg") | |
img1.save(frame1_path) | |
img2.save(frame2_path) | |
try: | |
result = subprocess.run([ | |
"python", "inference_img.py", | |
"--img", str(frame1_path), str(frame2_path), | |
"--exp=4", | |
"--model='train_log/", | |
], capture_output=True, text=True) | |
print("STDOUT:", result.stdout) | |
print("STDERR:", result.stderr) | |
if result.returncode == 0 and OUTPUT_GIF.exists(): | |
return OUTPUT_GIF | |
else: | |
return "GIF generation failed." | |
except Exception as e: | |
print(f"Error: {e}") | |
return "No subprocss. Error during GIF generation." | |
with gr.Blocks() as demo_ui: | |
with gr.Tab("Demo"): | |
gr.Markdown("### Upload two frames to generate a GIF") | |
with gr.Row(): | |
img1_input = gr.Image(type="pil", label="Frame 1") | |
img2_input = gr.Image(type="pil", label="Frame 2") | |
generate_btn = gr.Button("Generate GIF") | |
output_gif = gr.Image(label="Generated GIF") | |
generate_btn.click( | |
fn=generate_demo_gif, | |
inputs=[img1_input, img2_input], | |
outputs=output_gif | |
) | |
demo_ui.launch() | |