| # Image Intel — pinned dependencies |
| # Python 3.11+ |
| # |
| # Design principle: the DEFAULT install must be lightweight enough to |
| # run on a free-tier VPS / Railway / PythonAnywhere / Termux. Heavy |
| # optional providers (TensorFlow, dlib, Selenium) are commented out |
| # and can be enabled by uncommenting the relevant lines. |
|
|
| # --- Web framework (required) --- |
| fastapi==0.110.0 |
| uvicorn[standard]==0.27.1 |
| python-multipart==0.0.9 |
| pydantic==2.6.1 |
| pydantic-settings==2.2.1 |
|
|
| # --- Image processing (required) --- |
| opencv-python-headless==4.9.0.80 # headless = no GUI deps, smaller |
| Pillow==10.2.0 |
| numpy==1.26.4 |
|
|
| # --- HTTP (required) --- |
| requests==2.31.0 |
|
|
| # --- Logging / config (required) --- |
| loguru==0.7.2 |
| python-dotenv==1.0.1 |
|
|
| # --- Reverse face search (required for face index) --- |
| sqlite-vec==0.1.6 |
|
|
| # --- Testing (dev only — pip install -r requirements-dev.txt) --- |
| # pytest==8.0.0 |
| # pytest-asyncio==0.23.5 |
|
|
| # =========================================================================== # |
| # OPTIONAL PROVIDERS — uncomment to enable |
| # =========================================================================== # |
| # |
| # The platform runs by default with NO optional providers. Enable only |
| # what you need. All ONNX-based providers share ONE dependency: |
| # onnxruntime (~50MB, CPU-only). Models are lazy-loaded + cached. |
|
|
| # --- ONNX Runtime (enables 7 providers: insightface, yolov8, places365, |
| # nudenet, ai_image_detector, mobilenet_embed, ocr) --- |
| onnxruntime==1.17.1 |
|
|
| # --- OCR (optional — requires onnxruntime) --- |
| # rapidocr-onnxruntime==1.3.24 |
|
|
| # --- Face recognition (dlib-based, requires cmake + C++ compiler) --- |
| # face-recognition==1.3.0 |
| # dlib==19.24.2 |
|
|
| # --- Selenium scraper (requires Chrome) --- |
| # selenium==4.18.1 |
| # webdriver-manager==4.0.1 |
|
|
| # --- XMP metadata (requires lxml) --- |
| # lxml==5.1.0 |
|
|
| # --- Wavelet hash (requires PyWavelets) --- |
| # PyWavelets==1.5.0 |
|
|