#!/usr/bin/env python3 """ Entry point for Hugging Face Spaces This script handles the startup and runs the Gradio interface """ import os import sys import subprocess def check_dependencies(): """Check if all dependencies are installed""" try: import torch import gradio import clip print("✓ Basic dependencies are available") return True except ImportError as e: print(f"✗ Missing basic dependencies: {e}") return False def run_setup_if_needed(): """Run setup script if needed""" if not os.path.exists("packages/nvdiffrast"): print("Running setup script...") try: subprocess.run([sys.executable, "setup_spaces.py"], check=True) print("✓ Setup completed successfully") except subprocess.CalledProcessError as e: print(f"✗ Setup failed: {e}") return False else: print("✓ Dependencies already installed") return True def main(): """Main function""" print("Starting Garment3DGen for Hugging Face Spaces...") # Check basic dependencies if not check_dependencies(): print("Basic dependencies are missing. Please check the installation.") sys.exit(1) # Run setup if needed if not run_setup_if_needed(): print("Setup failed. Please check the logs.") sys.exit(1) # Import and run the app try: from app import create_interface print("Creating Gradio interface...") interface = create_interface() print("Launching interface...") interface.launch( server_name="0.0.0.0", server_port=7860, share=False, debug=False ) except Exception as e: print(f"Error launching interface: {e}") sys.exit(1) if __name__ == "__main__": main()