* refactor: rename CACHE_DIR to DATA_DIR, default path .if_cache → data CACHE_DIR held both the embedding cache and the SQLite tracker DB, making the name misleading. DATA_DIR is more accurate. - Config reads DATA_DIR first; falls back to CACHE_DIR with a deprecation warning so existing setups don't break on upgrade - Default local path: data (was .if_cache) - Docker default path: /app/data (was /app/.if_cache) - Internal references (embeddings.py, upload_tracker.py) updated to DATA_DIR - compose.yml, .env.example, README, wiki, and changelog updated - Version bumped to 0.5.1 * chore: update lockfile --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
53 lines
4.1 KiB
Bash
53 lines
4.1 KiB
Bash
# ── Required ──────────────────────────────────────────────────────────────────
|
|
IMMICH_URL=http://192.168.1.10:2283
|
|
API_KEY=your-immich-api-key
|
|
FRIGATE_URL=http://192.168.1.10:5000
|
|
|
|
# ── Mode & Strategy ───────────────────────────────────────────────────────────
|
|
# Auto mode is active by default when no TTY is present (Docker/cron).
|
|
# Set AUTO_MODE=true to force auto mode even in an interactive terminal.
|
|
# AUTO_MODE=true
|
|
# VERBOSE=true # Enable DEBUG-level console output (log file is always DEBUG)
|
|
# STRATEGY: adaptive = embedding diversity (recommended), standard = 30 imgs, broad = 100 imgs
|
|
STRATEGY=adaptive
|
|
# LIMIT=50 # Custom image count; overrides STRATEGY preset
|
|
|
|
# ── People Filtering ──────────────────────────────────────────────────────────
|
|
# ONLY_PEOPLE=John,Jane # Comma-separated; process only these people
|
|
# SKIP_PEOPLE=Unknown # Comma-separated; skip these people
|
|
# MIN_FACE_COUNT=3 # Skip people with fewer than N assets in Immich (default: 3)
|
|
# YEARS_FILTER=10 # Only include images from the last N years (default: 10)
|
|
# MERGE_DUPLICATE_PEOPLE=false # Merge duplicate Immich person records permanently (default: false — warn and skip)
|
|
|
|
# ── Image Quality ─────────────────────────────────────────────────────────────
|
|
# MIN_FACE_WIDTH=90 # Minimum face width in pixels (default: 90, guarantees ≥8,100px crop)
|
|
# FACE_MARGIN=0.15 # Padding around face crop as fraction (default: 0.15)
|
|
# ENABLE_FACE_ALIGNMENT=true # Align face before cropping (default: true)
|
|
# USE_FULL_RESOLUTION=true # Use full-res images vs thumbnails (default: true)
|
|
# MIN_CONFIDENCE=0.7 # Minimum face detection confidence (default: 0.7)
|
|
# BLUR_THRESHOLD=120.0 # Laplacian blur threshold; lower = accept more blur (default: 120.0)
|
|
# MAX_AUTO_IMAGES=20 # Hard cap on auto-diversity selection (default: 20)
|
|
# QUALITY_REPLACEMENT=true # At cap, replace a weaker tracked image with a better candidate (default: true)
|
|
# FRIGATE_SCORE_CEILING= # Below-cap novelty gate: unset = dynamic (default), 0 = disabled, e.g. 0.85 = fixed ceiling
|
|
# ENABLE_FRIGATE_SCORES=true # Call Frigate's recognize endpoint pre-upload to store diversity scores (default: true; adds ~200ms per upload)
|
|
|
|
# ── Caching & Models ──────────────────────────────────────────────────────────
|
|
# FORCE_CPU=true # Disable GPU, fall back to CPU
|
|
# ENABLE_CACHE=false # Disable embedding cache (default: true)
|
|
DATA_DIR=/app/data
|
|
INSIGHTFACE_HOME=/models/.insightface
|
|
|
|
# ── Tracker overrides (one-shot — remove after use) ───────────────────────────
|
|
# DRY_RUN=true # Preview selection without downloading/uploading
|
|
# RETRY_REJECTED=true # Re-attempt previously rejected images
|
|
# RESET_PERSON=John # Clear uploaded+rejected history for one person (use * for all)
|
|
|
|
# ── Scheduling ────────────────────────────────────────────────────────────────
|
|
# CRON_SCHEDULE controls container lifetime:
|
|
# unset — run once on startup, then exit
|
|
# empty string — stay alive, run nothing (trigger manually: docker exec -it winnow winnow)
|
|
# cron expression — run on startup, then on schedule
|
|
# CRON_SCHEDULE= # Manual mode (keep alive, no auto-run)
|
|
# CRON_SCHEDULE=0 3 * * 0 # Every Sunday at 3 AM
|
|
# CRON_SCHEDULE=0 3 1 * * # First of every month
|