TalkSHOWLIVE / app.py
insanecoder69's picture
Update app.py
ba1d553 verified
raw
history blame
1.81 kB
import gradio as gr
import subprocess
import os
def run_talkshow_model(audio_file):
# Path to the TalkSHOW demo script
demo_script = 'scripts/demo.py'
# Configuration and model parameters
config_file = './config/LS3DCG.json'
body_model_name = 's2g_LS3DCG'
body_model_path = 'experiments/2022-10-19-smplx_S2G-LS3DCG/ckpt-99.pth'
# Path of the uploaded audio file
audio_file_path = audio_file
# Path where the output .mp4 video will be saved
output_video_path = './output_video/result.mp4'
# Run the demo.py script with the necessary arguments
command = [
'python', demo_script,
'--config_file', config_file,
'--infer',
'--audio_file', audio_file_path,
'--body_model_name', body_model_name,
'--body_model_path', body_model_path,
'--id', '0',
'--output', output_video_path # Assuming demo.py has an argument to specify output
]
try:
# Run the subprocess and capture output
subprocess.run(command, check=True, capture_output=True, text=True)
# Check if the .mp4 file is generated
if os.path.exists(output_video_path):
return output_video_path # Return the path of the generated video
else:
return "Error: Output video not generated."
except subprocess.CalledProcessError as e:
return f"Error running the model: {e.stderr}" # Return the error message
# Set up the Gradio interface
interface = gr.Interface(
fn=run_talkshow_model,
inputs=gr.Audio(source="upload", type="filepath"),
outputs=gr.Video(), # Use gr.Video to output the generated .mp4 video
title="TalkSHOW: Audio to Mesh"
)
# Launch the interface
if __name__ == "__main__":
interface.launch()