GarmentCode / app.py
qbhf2's picture
Update app.py
1a3137c verified
raw
history blame
2.89 kB
import gradio as gr
import subprocess
import os
# Запуск setup.sh для настройки окружения и source ~/.bashrc
def run_setup_script():
setup_script_path = os.path.join(os.path.dirname(__file__), "startup.sh")
try:
print("Running setup script...")
# Выполнить setup.sh и source ~/.bashrc в одной сессии bash
subprocess.run(
f"bash -c 'source ~/.bashrc && bash {setup_script_path}'",
shell=True,
check=True,
)
print("Setup script and environment initialization completed successfully!")
except subprocess.CalledProcessError as e:
print(f"Error while running setup script or sourcing .bashrc: {e}")
exit(1)
# Выполнить setup.sh перед запуском приложения
run_setup_script()
with gr.Blocks(title="3D Garment Generator", theme=gr.themes.Default(text_size="sm")) as demo:
with gr.Row():
# Левая колонка (ввод параметров)
with gr.Column(scale=1):
gr.Markdown("### Параметры генерации")
pattern_upload = gr.File(label="1. Загрузите лекала (JSON/SVG)",
file_types=[".json", ".svg"])
with gr.Accordion("3. Параметры генерации", open=False):
gr.Radio(["CircleNeckHalf", "CurvyNeckHalf", "VNeckHalf",...],
label="Front Collar",
info="Front collar shape")
gr.Radio(["CircleNeckHalf", "CurvyNeckHalf", "VNeckHalf",...],
label="Back Collar",
info="Back collar shape")
with gr.Accordion("4. Render engine", open=False):
gr.Dropdown(["BPY", "Pyrender/Open3D","Maya"],
label="Выберите режим")
# Правая колонка (3D просмотрщик)
with gr.Column(scale=2):
gr.Markdown("### ")
body_upload = gr.File(label="2. Загрузите 3D-модель тела (OBJ/USD/FBX)",
file_types=[".obj", ".usd", ".fbx"])
gr.Markdown("### 3D Просмотрщик")
viewer = gr.Model3D(label="Результат генерации",
interactive=True)
with gr.Row():
save_obj_btn = gr.Button("Сохранить OBJ")
save_render_btn = gr.Button("Сохранить рендер")
# Логика обновления
body_upload.change(
fn=lambda file: file.name if file else None,
inputs=body_upload,
outputs=viewer
)
# Запуск приложения
if __name__ == "__main__":
demo.launch()