File size: 1,814 Bytes
a8da4e0 2bf5660 a8da4e0 2bf5660 a8da4e0 2bf5660 a8da4e0 2bf5660 a8da4e0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#!/usr/bin/env python3
"""
Main entry point for FaceForge application
"""
import os
import logging
import sys
import traceback
# Configure logging
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[logging.StreamHandler(sys.stdout)]
)
logger = logging.getLogger("faceforge")
def main():
"""Main function to start the FaceForge application."""
try:
# Apply the patch for Gradio
logger.info("Applying Gradio patch...")
try:
from patch_gradio_utils import apply_patch
if apply_patch():
logger.info("Gradio patch applied successfully.")
else:
logger.warning("Failed to apply Gradio patch. The app may encounter errors.")
except Exception as e:
logger.warning(f"Error applying Gradio patch: {e}")
logger.debug(traceback.format_exc())
# Import and run the appropriate app
if os.environ.get("FACEFORGE_MODE", "ui").lower() == "api":
logger.info("Starting in API mode")
from faceforge_api.main import app
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
else:
logger.info("Starting in UI mode")
from faceforge_ui.app import create_demo
demo = create_demo()
demo.launch(server_name="0.0.0.0", share=False)
except ImportError as e:
logger.critical(f"Import error: {e}. Please check your dependencies.")
logger.debug(traceback.format_exc())
sys.exit(1)
except Exception as e:
logger.critical(f"Unexpected error: {e}")
logger.debug(traceback.format_exc())
sys.exit(1)
if __name__ == "__main__":
main() |