Introduce the app/services/vision/ module with ABC interfaces, ONNX Runtime backend, model registry, and per-task implementations: - OpenCLIP ViT-B/32 embedder (image + text, 512-d) - RapidOCR engine (PP-OCRv4 via ONNX, no PaddlePaddle) - YOLOv8n object detector (raw ONNX, no ultralytics runtime) - YuNet + SFace face processor (Apache 2.0, opencv_zoo, 128-d) - DBSCAN face clustering helper Add VisionSettings to config (mulita.yml + Pydantic), bootstrap_models.py for first-boot weight downloads, models_data Docker volume, and ROCm backend stub for future GPU acceleration. No Celery tasks wired yet — models load but nothing invokes them. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
# Mulita configuration file
|
|
#
|
|
# Source roots and discard handling are owned by the database — manage them
|
|
# from the UI (left sidebar → "+ Add Source Folder") or via the API. Only
|
|
# operational tuning lives here.
|
|
|
|
thumbnails:
|
|
small: 240 # px, longest edge
|
|
medium: 640
|
|
large: 1280
|
|
quality: 85 # JPEG/WebP quality
|
|
format: webp # output format for thumbs
|
|
|
|
scanner:
|
|
watch: true # use watchfiles inotify
|
|
initial_scan_on_start: true
|
|
batch_size: 100
|
|
concurrent_workers: 4
|
|
|
|
performance:
|
|
max_concurrent_thumbnails: 10
|
|
cache_ttl: 3600
|
|
db_pool_size: 20
|
|
db_pool_recycle: 3600
|
|
|
|
# AI vision pipeline — embedding, OCR, object detection, face recognition.
|
|
# Runs on the dedicated `vision` Celery queue (PR4+). Set enabled: false
|
|
# to disable all vision processing.
|
|
vision:
|
|
enabled: true
|
|
backend: onnx # "onnx" (CPU) | "rocm" (future GPU)
|
|
models_dir: /data/models
|
|
embedder:
|
|
name: openclip_vitb32
|
|
batch_size: 8
|
|
ocr:
|
|
enabled: true
|
|
languages: [en]
|
|
min_confidence: 0.5
|
|
detector:
|
|
enabled: true
|
|
min_confidence: 0.35
|
|
max_detections: 50
|
|
faces:
|
|
enabled: true
|
|
min_face_size: 40
|
|
recognition_threshold: 0.4
|
|
cluster_eps: 0.35
|
|
worker_concurrency: 2
|