Add video sorting, reference thumbnails, theme/i18n, menu, DnD/paste, presets
Feature work on top of the initial organizer: - Videos: .mp4/.mov/.avi/.mkv/.webm/.m4v sorted into output/Movie/YYYY/MM - Profiles: reference-image thumbnail cards via a secure photoai-media:// protocol (serves only registered reference images); per-thumbnail delete; add via click, drag & drop, or paste (Ctrl+V) using webUtils.getPathForFile + a byte-based addReferenceData path for clipboard images - Presets: local person library (max 5) saved to userData; one-click apply into active profiles; reusing stored descriptors (no recompute) - Theme: dark/light with dark default (Tailwind class strategy) - i18n: ko/en table-based localization; first-run onboarding to pick language + theme; English-neutral "Unsorted" folder (was [미정]) - App menu: File/Edit/View/Window/Help, localized; Help opens a detailed, theme-aware user guide window - UI: History block scrolls internally (no whole-window scroll); threshold/concurrency tooltips; generic example name - Settings persisted to userData/settings.json; menu + renderer kept in sync - Docs: NextGen Photo AI feasibility review + Phase 0/1 roadmap All typecheck/tests (12) /build green; boot smoke verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+15
-2
@@ -12,12 +12,25 @@
|
||||
| 3 | EXIF 촬영날짜 누락 시 | **파일 수정일(mtime)로 대체**하여 YYYY/MM 추출 | 대부분의 사진을 연/월 구조에 편입 가능. |
|
||||
| 4 | 다중 인물 사진의 Move 1순위 | **프로필 등록 순서** (1번 인물=이동, 2·3번=복사) | PRD 명세 "첫 번째 프로필 기준 이동 후 복사"와 일치. |
|
||||
|
||||
## 1-1. 영상 파일 처리 (2026-06-01 추가)
|
||||
|
||||
| 항목 | 결정 |
|
||||
|------|------|
|
||||
| 대상 확장자 | `.mp4 .mov .avi .mkv .webm .m4v` |
|
||||
| 처리 방식 | **얼굴인식 없이** 날짜 기준으로 **이동만** |
|
||||
| 대상 폴더 | 출력 루트 하위 **`Movie/YYYY/MM/`** |
|
||||
| 날짜 기준 | 파일 수정일(mtime). 영상은 EXIF 미적용 → mtime 직행 |
|
||||
| 재처리 방지 | `Movie` 폴더는 스캔 제외 디렉터리에 포함 |
|
||||
| 향후(비고) | "영상에 누가 나오나"가 필요하면 ffmpeg 프레임 샘플링으로 인물 매칭(phase 2) |
|
||||
|
||||
> 근거: 영상은 프레임이 많아 정지 이미지 엔진으로 바로 매칭 불가. v1은 날짜 기준 분리로 안전·신속 처리하고, 사진 정리 결과를 어지럽히지 않도록 전용 `Movie` 폴더로 격리.
|
||||
|
||||
## 2. 기본 가정 (Claude 기본값, 이의 없으면 채택)
|
||||
|
||||
- **이동(Move) 구현 방식**: `복사 → 무결성 검증 → 원본 삭제` 순서로 수행 (Atomic 보장, 데이터 무결성 0 Error).
|
||||
- **유사도 임계값**: face-api Euclidean distance `< 0.5`를 매칭으로 간주 (튜닝 가능 파라미터로 노출).
|
||||
- **Reference 등록**: 인물당 다수 사진 등록 허용 → 평균 descriptor 사용으로 정확도 향상 (KPI ≥98% 대응).
|
||||
- **미검출/인식 실패 처리**: `[미정]/YYYY/MM/` 으로 이동 (삭제 금지, Scenario 03).
|
||||
- **미검출/인식 실패 처리**: `Unsorted/YYYY/MM/` 으로 이동 (삭제 금지, Scenario 03). 폴더명은 언어 중립을 위해 영문 `Unsorted` 사용(구 `[미정]`).
|
||||
- **대상 확장자**: `.jpg .jpeg .png .webp` 자동 감지. (`.heic`는 향후 확장 검토.)
|
||||
- **프로필 최대 인원**: 3명 (PRD 명세).
|
||||
|
||||
@@ -26,7 +39,7 @@
|
||||
```
|
||||
<출력루트>/
|
||||
<프로필명>/YYYY/MM/... # 인물 매칭 사진
|
||||
[미정]/YYYY/MM/... # 미검출·인식실패 사진
|
||||
Unsorted/YYYY/MM/... # 미검출·인식실패 사진
|
||||
```
|
||||
|
||||
## 4. KPI / 비기능 요구
|
||||
|
||||
Reference in New Issue
Block a user