Spaces:
Sleeping
Sleeping
import gradio as gr | |
import subprocess | |
import os | |
# Define the command template | |
COMMAND_TEMPLATE = "python scripts/demo.py --config_file ./config/LS3DCG.json --infer --audio_file {audio_path} --body_model_name s2g_LS3DCG --body_model_path experiments/2022-10-19-smplx_S2G-LS3DCG/ckpt-99.pth --id 0" | |
# Define the function to process the audio and generate the video | |
def process_audio(audio): | |
# Save uploaded audio to a specific file path | |
audio_path = "demo_audio/style.wav" | |
with open(audio_path, "wb") as f: | |
f.write(audio.read()) | |
# Run the script command with the specified audio file | |
command = COMMAND_TEMPLATE.format(audio_path=audio_path) | |
subprocess.run(command, shell=True) | |
# Specify the path to the output video | |
output_video_path = "./output_video.mp4" # Update if output location is different | |
# Check if the video file exists and return it for display | |
if os.path.exists(output_video_path): | |
return output_video_path | |
else: | |
return "Error: Video file not generated." | |
# Set up Gradio interface | |
audio_input = gr.Audio(label="Upload a .wav audio file", type="file") | |
video_output = gr.Video(label="Generated Video Output") | |
interface = gr.Interface( | |
fn=process_audio, | |
inputs=audio_input, | |
outputs=video_output, | |
title="Audio-to-Video Generator", | |
description="Upload a .wav file to generate an animated video output." | |
) | |
# Launch the Gradio app | |
interface.launch() | |