|
|
|
""" |
|
Main entry point for FaceForge application |
|
""" |
|
|
|
import os |
|
import logging |
|
import sys |
|
import traceback |
|
|
|
|
|
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: |
|
|
|
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()) |
|
|
|
|
|
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() |