| """ | |
| Main app for HuggingFace Spaces - FastAPI with Gradio mounted. | |
| FastAPI endpoints are at root, Gradio UI is at /gradio | |
| """ | |
| from fastapi import FastAPI | |
| from fastapi.middleware.wsgi import WSGIMiddleware | |
| import gradio as gr | |
| # Import FastAPI app | |
| from fastapi_app import app as fastapi_app | |
| # Import Gradio app components | |
| from app import demo as gradio_demo | |
| # Create main FastAPI app | |
| main_app = FastAPI(title="FaceSwapAll - Combined API and UI") | |
| # Mount FastAPI endpoints (they're already in fastapi_app) | |
| # We'll include them directly | |
| main_app.mount("/api", fastapi_app) | |
| # Mount Gradio UI | |
| main_app.mount("/gradio", WSGIMiddleware(gradio_demo.server)) | |
| # Also include health endpoint at root | |
| def root(): | |
| return { | |
| "message": "FaceSwapAll API", | |
| "docs": "/docs", | |
| "gradio_ui": "/gradio", | |
| "api_endpoints": "/api" | |
| } | |
| # Re-export for uvicorn | |
| app = main_app | |
| if __name__ == "__main__": | |
| import uvicorn | |
| uvicorn.run(app, host="0.0.0.0", port=8000) | |