https://github.com/idkonly/comfy-image-browser
ComfyUI를 위한 이미지 검색/색인/뷰어와 와일드카드 생성, 이미지 후처리 도구
https://github.com/idkonly/comfy-image-browser
comfyui image-processing image-viewer
Last synced: about 2 months ago
JSON representation
ComfyUI를 위한 이미지 검색/색인/뷰어와 와일드카드 생성, 이미지 후처리 도구
- Host: GitHub
- URL: https://github.com/idkonly/comfy-image-browser
- Owner: IDKonly
- Created: 2026-03-11T12:05:57.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-04-26T05:52:32.000Z (about 2 months ago)
- Last Synced: 2026-04-26T07:24:54.388Z (about 2 months ago)
- Topics: comfyui, image-processing, image-viewer
- Language: TypeScript
- Homepage:
- Size: 63.1 MB
- Stars: 7
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🖼️ ComfyView (Next-Gen)
**"Rust 기반의 압도적 성능, AI 사용자를 위한 지능형 이미지 브라우저 & 프롬프트 워크숍"**
ComfyView는 ComfyUI 및 Automatic1111 유저들을 위해 설계된 Tauri 기반 고성능 데스크톱 애플리케이션입니다.
수만 장의 생성 이미지 사이에서 보석을 찾아내고, 복잡한 프롬프트를 나만의 지능적인 **Wildcard로 압축하는 데 최적화**되어 있습니다.
이 프로젝트의 코드는 99.8% 바이브코딩 되었으며, 내부 알고리즘과 구동방방식을 포함한 핵심 아키텍쳐는 사용자가 설계했습니다.
코드가 의도치 않은 취약점을 가지고 있을 수 있으나, 이에 대한 책임은 사용자에게 있습니다. 제보된 취약점은 비정기적으로 유지보수됩니다.
프롬프트 등의 메타데이터 추출은 현재 제작자의 CompyUI 워크플로에 맞추어 설계되었기 때문에 작동 여부는 책임지지 않습니다.
---
## 🚀 왜 ComfyView인가? (Key Advantages)
1. **압도적인 속도 (Rust-Powered)**: 일반적인 이미지 뷰어와는 차원이 다릅니다. Rust의 `Rayon` 멀티스레딩과 `SQLite` 인덱싱을 결합하여, 수만 장의 이미지가 담긴 폴더도 지연 없이 즉시 탐색하고 검색합니다.
2. **AI 메타데이터 특화**: 단순한 EXIF 읽기를 넘어, PNG tEXt/iTXt 청크에 숨겨진 ComfyUI(JSON) 및 A1111(Text) 프롬프트를 정밀하게 파싱하여 워크플로우를 분석합니다.
3. **지능형 프롬프트 압축 (Wildcard Workshop)**: Jaccard 유사도 알고리즘을 사용하여 수백 개의 유사 프롬프트를 하나의 `{tag1|tag2|tag3}` 패턴으로 자동 변환합니다.
4. **생산성 중심 UX**: `K`(Keep), `Delete`(Trash), `Ctrl+Z`(Undo)로 이어지는 단축키 중심의 분류 로직은 수천 장의 이미지를 단시간 내에 정리하게 해줍니다.
---
## ✨ 핵심 기능 상세 (Feature Deep Dive)
### 1. Wildcard Workshop (지능형 프롬프트 압축 엔진)
단순한 태그 나열이 아닌, 수많은 이미지의 프롬프트를 분석하여 최적화된 와일드카드 소스를 생성합니다.
- **Jaccard 유사도 분석**: 프롬프트 간의 거리를 수학적으로 계산하여 유사한 결과물들을 지능적으로 그룹화합니다.
- **다양한 병합 모드**:
- **Simple Mode**: 가장 빈도가 높은 공통 태그를 추출하고 나머지를 선택지(`{A|B}`)로 결합합니다.
- **Mix Mode (Advanced)**: 여러 이미지의 프롬프트를 재귀적으로 분석하여 복잡한 계층 구조의 와일드카드를 생성합니다.
- **유니버설 베이스(Universal Base)**: 선택된 모든 프롬프트에서 100% 일치하는 핵심 공통 성분을 먼저 분리하여 프롬프트의 골격을 유지합니다.
- **강력한 태그 필터링**: 단어 수 제한, 특정 태그 포함/제외 필터, 중복 제거 등을 통해 정제된 결과물만 남깁니다.
- **실시간 확장(Expansion) 미리보기**: 생성된 패턴이 실제 프롬프트로 어떻게 치환되는지 즉시 확인하고 `.txt` 파일로 저장할 수 있습니다.
### 2. Tag Classifier (룰 기반 자동 분류기)
수천 장의 이미지를 프롬프트 내용에 따라 클릭 한 번으로 체계적인 폴더 구조로 정리합니다.
- **JSON 룰 엔진**: 사용자가 정의한 JSON 설정에 따라 특정 키워드가 포함된 이미지를 해당 카테고리로 자동 분류합니다.
- **멀티 카테고리 지원**: 캐릭터, 화풍(Style), 배경, 구도 등 다양한 기준을 동시에 적용할 수 있습니다.
- **정규식(Regex) 기반 매칭**: 단순 단어 매칭을 넘어 복잡한 패턴을 인식하여 정밀하게 분류합니다.
- **계층적 분류**: `캐릭터/의상/색상`과 같이 깊은 단계의 하위 폴더 구조를 자동으로 생성하며 파일을 이동시킵니다.
### 3. Batch Crop Module (학습 데이터셋 전처리)
AI 모델(LoRA 등) 학습을 위한 이미지 정제 작업을 극적으로 단축합니다.
- **스마트 스냅 가이드 (Snap Guides)**: 이미지의 경계면이나 다른 크롭 영역에 자석처럼 붙는 스냅 기능을 지원하여 정밀한 정렬이 가능합니다.
- **다중 영역 동시 조작**: 여러 개의 크롭 박스를 동시에 선택하여 이동하거나 크기를 조절할 수 있습니다.
- **그리드 및 비율 프리셋**: 1:1, 16:9 등 주요 비율 고정 기능과 2x2, 3x3 등의 일괄 그리드 생성 기능을 제공합니다.
- **시각적 보조 도구**: 각 크롭 박스마다 '3분할 법칙' 가이드라인과 실시간 해상도(WxH) 정보가 표시됩니다.
- **생산성 단축키**: `Ctrl+C/V`를 통한 크롭 사이즈 복사, `Shift`를 이용한 축 고정 및 비율 유지를 지원합니다.
### 3. 초고속 브라우징 및 검색
- **멀티스레드 스캐닝**: 하드웨어 성능을 끝까지 끌어내어 이미지와 메타데이터를 병렬로 인덱싱합니다.
- **스프레드 인덱싱 (Spread Indexing)**: 수만 장의 이미지가 있는 폴더에 드래그 앤 드롭을 하더라도 앱이 멈추지 않습니다. 현재 사용자가 보고 있는 이미지의 위치를 기준으로 **양방향으로 퍼져나가며 가장 가까운 이미지부터 우선적으로 인덱싱**합니다.
- **실시간 청크 동기화**: 백그라운드에서 수만 장을 인덱싱할 때, 50장 단위(Chunk)로 즉시 DB에 저장하고 UI에 반영하므로 진행 상황과 메타데이터를 지연 없이 실시간으로 확인할 수 있습니다.
- **강력한 필터링**: 프롬프트 키워드, 폴더 구조, 날짜, 정렬 기준을 조합하여 원하는 이미지를 즉시 찾습니다.
### 4. Comfy Reels (모바일 분류기)
PC 앞에 앉아 있지 않아도, 침대에 눕거나 이동 중에 스마트폰으로 대량의 이미지를 초고속 분류할 수 있습니다.
- **릴스(Reels) 스타일 피드**: 좌우 스와이프 대신 상하 스크롤 방식을 채택했습니다. 틱톡이나 인스타그램 릴스를 보듯 가볍게 넘기며 이미지를 감상하세요.
- **스크롤 스냅 (Scroll Snap)**: 한 번의 스크롤에 이미지 한 장씩 딱딱 맞춰서 멈추므로 조작 피로도가 매우 낮습니다.
- **초고속 반응성**: 지능형 3단계 프리로딩(Preloading)과 가변 뷰포트(`dvh`) 최적화를 통해 렉 없는 매끄러운 경험을 제공합니다.
- **상시 접근 폴더 (Authorized Roots)**: 데스크톱에서 폴더를 열어주지 않아도, 설정에서 지정한 폴더와 그 하위 폴더들에 언제든 모바일로 접속하여 탐색할 수 있습니다.
- **작업 연속성**: 폴더별 마지막 위치 자동 저장(Resume) 및 특정 위치 직접 이동(Jump) 기능을 지원합니다.
---
## 🛠️ 기술 스택 (Tech Stack)
- **Frontend**: React 18, TypeScript, Vite, Tailwind CSS, Zustand (State)
- **Backend**: Rust, Tauri v2 (High-performance Desktop Framework)
- **Database**: SQLite (Metadata Indexing & Persistence)
- **Concurrency**: Rayon (Data-parallelism), Walkdir
- **UI Components**: Lucide React (Icons), react-window (Virtualization)
---
## 🎯 사용 시나리오 (Usage Scenarios)
### 1. "최적의 와일드카드 자산 구축"
수천 장의 테스트 이미지 중 맘에 드는 스타일의 이미지를 골라 **Wildcard Workshop**에 넣으세요. 단 한 번의 클릭으로 당신의 다음 프로젝트에서 사용할 수 있는 고도로 정제된 프롬프트 템플릿이 완성됩니다.
### 2. "대량 이미지 고속 정제"
분류되지 않은 수천 장의 이미지를 드래그하세요. 배치 모드(`B`)에서 `K`와 `Delete`를 리드미컬하게 누르기만 하면, 모든 이미지는 원본 경로의 하위 폴더(`_Keep`, `_Trash`)로 깔끔하게 정리됩니다.
### 3. "학습용 데이터셋 일괄 생성"
**Batch Crop** 기능을 열어 이미지 한 장에서 여러 캐릭터나 오브젝트를 동시에 추출하세요. 그리드 생성과 스냅 기능을 활용하면 수작업 대비 5배 이상의 속도로 학습 데이터를 준비할 수 있습니다.
---
## ⌨️ 핵심 단축키 (Core Shortcuts)
### 🖼️ 브라우저 모드
- `→` / `←` : 다음/이전 이미지 탐색
- `Delete` : 휴지통(`_Trash`)으로 이동
- `K` : 보관함(`_Keep`)으로 이동
- `Ctrl + Z` : 최근 이동 작업 되돌리기 (최대 50회)
- `B` : 그리드 배치 모드 토글
- `/` : 검색창 포커스
### ✂️ 배치 크롭 모드
- `Mouse Drag` : 새로운 크롭 영역 생성
- `Shift + Drag` : 가로/세로 축 고정 또는 비율 고정
- `Alt + Drag` : 스냅 가이드 무시
- `Ctrl + C / V` : 선택한 크롭 박스의 크기 복사/붙여넣기
- `Delete / Backspace` : 선택한 영역 삭제
---
## 📦 설치 및 실행 (Installation & Run)
Windows 환경에서는 루트 폴더의 `run.bat` 실행이 가장 권장됩니다.
1. **사전 준비**: [Node.js](https://nodejs.org/) 및 [Rust](https://rustup.rs/) 환경이 설치되어 있어야 합니다.
2. **자동 실행**: 루트의 `run.bat`을 실행하면 의존성 설치 및 개발 서버 구동이 자동으로 진행됩니다.
3. **빌드**: `build.bat`을 실행하여 최적화된 설치 파일(`.msi` 등)을 생성할 수 있습니다.
---
## 📱 Comfy Reels 모바일 사용 가이드 (Mobile Guide)
데스크톱의 기능을 모바일로 확장하여 언제 어디서든 이미지를 정제할 수 있습니다.
### 1. 서버 활성화 및 접속
1. 앱 상단의 ⚙️ **Settings** 아이콘을 클릭합니다.
2. **Mobile Connectivity** 섹션에서 **Enable Server**를 활성화합니다.
3. **Restrict to this PC** 옵션이 꺼져 있는지 확인합니다. (모바일 접속을 위해 필수)
4. 화면에 나타나는 **Access URL**(`http://192.168.x.x:4882`)을 모바일 브라우저 주소창에 입력합니다.
### 2. 상시 접근 폴더 (Authorized Folders) 설정
모바일에서 매번 새로운 폴더를 열 필요 없이, 자주 사용하는 루트 폴더를 미리 등록할 수 있습니다.
- 설정 창의 **Authorized Folders** 옆 `+` 버튼을 눌러 폴더를 추가합니다.
- 등록된 폴더는 모바일 첫 화면에 항상 나타나며, 내부의 모든 하위 폴더를 자유롭게 탐색할 수 있습니다.
### 3. 모바일 피드 조작법
- **상하 스크롤**: 이미지를 위아래로 넘기며 감상합니다. 스냅 기능이 있어 한 장씩 정확히 멈춥니다.
- **분류 버튼**: 우측 하단의 **Keep ⭐** 또는 **Trash 🗑️** 버튼을 눌러 이미지를 분류합니다.
- **보류 (Skip)**: 그냥 다음 이미지로 스크롤하여 넘기면 자동으로 '보류' 처리됩니다.
- **Side 전환**: 헤더의 **Side** 버튼을 누르면 분류 버튼의 위치(왼쪽/오른쪽)를 바꿀 수 있습니다.
- **점프 및 이어하기**: 헤더 중앙의 **인덱스**를 터치하여 원하는 번호로 점프하거나, 이전에 작업하던 위치에서 **Resume** 버튼으로 이어할 수 있습니다.
---
**ComfyView**와 함께 더욱 스마트하고 쾌적한 AI 아트 워크플로우를 경험해보세요! 🎨