# Output Format — JSON ## Structure The scorer outputs a JSON file with an array of results. Each entry represents one photo. ## Schema ```json [ { "filename": "IMG_0001.jpg", "filepath": "/path/to/wedding-photos/IMG_0001.jpg", "subtype": "aesthetic", "laion_score": 7.2, "laion_version": "v2", "scoring_date": "2026-01-15T10:30:00Z" } ] ``` ## Fields | Field | Type | Description | |-------|------|-------------| | `filename` | string | Base filename (e.g., `IMG_0001.jpg`) | | `filepath` | string | Full absolute path to the image | | `subtype` | string | Classifier subtype — `aesthetic` for LAION (future: `technical`, `blur`, etc.) | | `laion_score` | float | LAION aesthetic score (0-10 scale) | | `laion_version` | string | Version of LAION model used (e.g., `v2`) | | `scoring_date` | string | ISO 8601 timestamp of when scoring was performed | ## Example ```json [ { "filename": "DSC_0421.jpg", "filepath": "C:/wedding-photos/day1/DSC_0421.jpg", "subtype": "aesthetic", "laion_score": 8.1, "laion_version": "v2", "scoring_date": "2026-01-15T10:30:00Z" }, { "filename": "DSC_0422.jpg", "filepath": "C:/wedding-photos/day1/DSC_0422.jpg", "subtype": "aesthetic", "laion_score": 3.4, "laion_version": "v2", "scoring_date": "2026-01-15T10:30:01Z" } ] ``` ## Thresholds (TBD) Thresholds for keep/reject/review are not yet defined. Will be determined after running initial batches and reviewing score distributions. Suggested approach: 1. Score a sample of 100-200 photos 2. Analyze the score distribution 3. Set thresholds based on the distribution (e.g., top 25% = keep, bottom 25% = reject, middle = review) 4. Adjust based on photographer feedback