| """ | |
| RoomTint Backend — HuggingFace Deployment | |
| """ | |
| import logging | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from pathlib import Path | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format="%(levelname)s %(name)s — %(message)s" | |
| ) | |
| app = FastAPI( | |
| title="RoomTint", | |
| version="2.0.0", | |
| docs_url="/docs" | |
| ) | |
| # Allow Vercel frontend | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=[ | |
| "*" | |
| ], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| from routes.detect_walls import router as detect_walls_router | |
| from routes.recolor import router as recolor_router | |
| from routes.recommend_colors import router as recommend_colors_router | |
| from routes.results import router as results_router | |
| app.include_router(detect_walls_router) | |
| app.include_router(recolor_router) | |
| app.include_router(recommend_colors_router) | |
| app.include_router(results_router) | |
| def home(): | |
| return { | |
| "name": "RoomTint Backend", | |
| "status": "running", | |
| "docs": "/docs", | |
| "health": "/health" | |
| } | |
| def health(): | |
| import torch | |
| from services.sam_service import SAM_CHECKPOINT, device | |
| from pathlib import Path | |
| mask2former_cached = Path(__file__).parent / "models" / "mask2former" / "config.json" | |
| return { | |
| "status": "ok", | |
| "offline_ready": SAM_CHECKPOINT.exists() and mask2former_cached.exists(), | |
| "sam_vit_h": SAM_CHECKPOINT.exists(), | |
| "mask2former_cached": mask2former_cached.exists(), | |
| "device": device, | |
| "cuda": torch.cuda.is_available(), | |
| } | |