>DEV
/// SYSTEM_INITIALIZATION Status: Standing By...
# > SYSTEM REQUIREMENTS ____________________________________________________
# OS: macOS / Linux / Windows (WSL2)
# Python: v3.10+
# AI: Ollama (Running locally)
# Status: [READY]
# > STEP 1: DEPLOY REPOSITORY
git clone https://github.com/BandwagonVibes/fixxer.git
cd fixxer
# > STEP 2: INITIALIZE VIRTUAL ENVIRONMENT
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# > STEP 3: INSTALL TACTICAL DEPENDENCIES
# Installs Core TUI + Vision Libraries
pip install -r requirements.txt
# [OPTIONAL] EQUIP FULL ARMORY (CLIP + BRISQUE engines)
# Unlocks: Semantic Burst Detection & Advanced Sharpness Scoring
pip install sentence-transformers scikit-learn image-quality
# > STEP 4: WAKE THE VISION MODEL
# Required for AI naming & critique. (Approx 2.2GB)
ollama pull qwen2.5vl:3b
# > STEP 5: LAUNCH SEQUENCE
python3 photosort_tui_styled.py
# > HINT:
# Press [F12] to toggle between 'Warez Mode' and 'Phantom Redline' HUD.
/// THE_BLUEPRINTS
├── RUNTIME: Python 3.10+
│ ├── logic: Multiprocessing (ProcessPoolExecutor)
│ └── async: Non-blocking I/O
│
├── INTERFACE: Textual TUI
│ ├── engine: Rich (Terminal Rendering)
│ └── style: CSS-driven layout
│
├── VISION_STACK: Ollama (Local)
│ ├── model: qwen2.5vl (Vision-Language)
│ └── embed: CLIP (Semantic Analysis)
│
└── INTEGRITY: SHA256 (Zero-Trust)
└── audit: JSON Sidecar Generation (.fixxer.json)
> DEPENDENCY_MATRIX
[02] SCIKIT-LEARN // Clustering algorithms for burst detection
[03] PILLOW // High-speed image manipulation
[04] RAWPY // LibRaw wrapper for 120+ RAW formats
Source code is currently locked for pre-release optimization.
Public release scheduled for v1.1 via GitHub.
/// BUILDING_FIXXER
status: Field Notes from the Dev Log
I don't use Lightroom. I don't trust proprietary catalogs that hold my work hostage. I believe in Folder First structures—universal, cross-platform, and future-proof.
The problem wasn't editing; it was the chaos before the edit. I needed a tool that respected the file system as the ultimate source of truth.
The goal was simple: Give me my bandwidth back. I wanted to click [AUTO] and trust the machine to handle the logic.
The "Auto" Pipeline:
01 INTELLIGENT INGEST
The system grabs EXIF session stats immediately. No waiting on previews.
02 SEMANTIC STACKING
Bursts are detected, stacked, and given context-aware names by local AI. They land in AI-named folders, making them searchable by human logic, not just timestamps.
03 TIERED CULLING
Photos are analyzed and sorted into three distinct buckets:
- TIER A: The keepers.
- TIER B: The maybes.
- TIER C: The technical failures.
04 HERO EXTRACTION
The system automatically promotes the best image from a burst and the top-ranked singles to your "Hero" destination.
FIXXER respects your process. It isn't an all-or-nothing black box; it's modular by design.
Modular Execution:
You don't always need the full nuclear launch sequence. Point FIXXER at a folder and just run [BURSTS] to stack raw files, or just [CULL] to separate the winners from the noise. It fits into your workflow, it doesn't replace it.
[EASY_ARCHIVE] Mode:
Not every shoot needs the surgical "Pro" treatment. For family pics or quick assets, this mode skips the heavy math. It simply AI-names your photos and sorts them into keyword-based folders. Point, click, sorted.
[CRITIQUE] Engine:
Stuck on an edit? The Critique module acts as a second pair of eyes. It uses the local vision model to analyze your photo creatively, offering offline advice on composition, lighting, and mood.
Speed is nothing without safety.
Real-Time Hash Verification:
Every single file operation is backed by a real-time SHA256 audit trail. A .fixxer.json sidecar travels with the individual photo forever. It is a certificate of authenticity that proves the file hasn't rot or corrupted since the moment it left the card.
* No Internet Required: Air-gapped safe.
* No Subscription: You own the code.
* No Cloud: Your data never leaves your workstation.
FIXXER exists to solve the "Pre-Edit" fatigue. It respects your privacy, enforces your folder structure, and gives you back the one thing you can't buy: Time.