mypuppeteerai / app.py
dashdoas's picture
Update app.py
0408c90 verified
Raw
History Blame Contribute Delete
1.57 kB
import gradio as gr
import os
import subprocess
import sys
import shutil
# 1. FORCE PYTHON TO SEE YOUR UPLOADED FOLDERS
# This fixes the 'No module named third_partys' error
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.append(current_dir)
sys.path.append(os.path.join(current_dir, "skeleton"))
sys.path.append(os.path.join(current_dir, "skinning"))
def run_rigging(input_model):
# 2. MANUALLY CREATE MISSING FOLDERS
# This fixes the 'No such file or directory' errors in the .sh script
folders = [
"results/skel_results",
"results/skin_results/generate",
"results/final_rigging",
"results/rigging",
"temp_input"
]
for folder in folders:
os.makedirs(folder, exist_ok=True)
# 3. SETUP INPUT
input_path = "temp_input/model.glb"
shutil.copy(input_model.name, input_path)
# 4. RUN THE RIGGING
try:
# We run the bash script you uploaded
subprocess.run(["bash", "demo_rigging.sh"], check=True)
# Check if the file was actually made
output_path = "results/rigging/model_rigged.glb"
if os.path.exists(output_path):
return output_path
else:
return "Error: Rigging script finished but no file was generated. Check logs for 3D math errors."
except Exception as e:
return f"System Error: {str(e)}"
demo = gr.Interface(
fn=run_rigging,
inputs=gr.File(label="Upload GLB"),
outputs=gr.File(label="Rigged Result"),
api_name="rig"
)
demo.launch()