사용자가 제공한 예시 그림체 이미지를 기준으로 코퍼스에서 레퍼런스 이미지를 검색하고, 이후 4컷 만화 생성 모델에 전달하는 Image RAG 프로젝트다.
예시 그림체 이미지
-> Full-Gram 임베딩
-> 코퍼스 2,522장과 코사인 유사도 검색
-> Top-5 레퍼런스 이미지와 메타데이터 반환
-> 검색 성능 평가(P@5, Macro mAP@5)
현재 실제로 동작하는 부분은 이미지 기반 Retrieval과 오프라인 평가다. LangGraph 파이프라인의 인터페이스도 만들었지만, LLM 대본 작성·이미지 생성 API·생성 결과 기반 재시도는 다음 단계에서 연결한다.
동일한 daypack_v2 코퍼스에서 여러 임베딩을 비교한 결과, Full-Gram(VGG19 Gram features) 이 대표 지표인 Macro mAP@5에서 가장 높았다.
| 방법 | P@5 (micro) | Macro mAP@5 | 비고 |
|---|---|---|---|
| CLIP | 0.3980 | 0.3537 | 의미·내용 유사도 기준선 |
| Full-Gram | 0.4914 | 0.4033 | 현재 Retrieval 기본값 |
| CSD ViT-L | 0.4122 | 0.3736 | 스타일 전용 모델 기준선 |
| CLIP + Low-Gram 0.5/0.5 | 0.4354 | 0.3864 | 하이브리드 기준선 |
| Hybrid Top-20 → CSD rerank | 0.4405 | 0.3953 | 재정렬 실험 |
P@5는 모든 질의를 합쳐 계산한 micro 정밀도이고, Macro mAP@5는 style 클래스별 점수를 동등하게 평균내므로 최종 선택 지표로 사용한다. 전체 실험 결과는 benchmarks/kit/leaderboard.csv에 기록한다.
benchmarks/kit/ # 임베딩 가설 검증용 score, compare, encoders, leaderboard
configs/ # 실행 예시 설정
data/daypack_v2/ # 로컬 데이터셋(Git 제외)
docs/ # 실행 방법·검색 흐름·파이프라인 설계
notebooks/ # 00 제공 자료, 01 벤치마크, 02 Top-k 육안 확인
outputs/ # 검색 인덱스·평가·생성 산출물(Git 제외)
src/retrieval/ # Full-Gram 인덱스·검색·파이프라인 어댑터
src/evaluation/ # 검색 및 생성 결과 평가
src/pipeline/ # LangGraph 오케스트레이션 뼈대
프로젝트 루트에서 아래를 실행한다.
uv sync --extra notebook --extra text
uv run --no-sync python -m src.retrieval.index_builder --project-root .
uv run --no-sync python -m src.evaluation.retrieval_evaluator --project-root .
outputs/full-gram-index/outputs/full-gram-evaluation/retrieval-results.jsonnotebooks/02-image-query-top5-demo.ipynb데이터셋, 인덱스 벡터, 모델 캐시, 실행 산출물은 대용량이므로 Git에 올리지 않는다. 자세한 내용은 검색 흐름 문서, 환경 설정, MVP 파이프라인을 참고한다.
사용자가 제공한 예시 그림체 이미지를 기준으로 코퍼스에서 레퍼런스 이미지를 검색하고, 이후 4컷 만화 생성 모델에 전달하는 Image RAG 프로젝트다.
예시 그림체 이미지
-> Full-Gram 임베딩
-> 코퍼스 2,522장과 코사인 유사도 검색
-> Top-5 레퍼런스 이미지와 메타데이터 반환
-> 검색 성능 평가(P@5, Macro mAP@5)
현재 실제로 동작하는 부분은 이미지 기반 Retrieval과 오프라인 평가다. LangGraph 파이프라인의 인터페이스도 만들었지만, LLM 대본 작성·이미지 생성 API·생성 결과 기반 재시도는 다음 단계에서 연결한다.
동일한 daypack_v2 코퍼스에서 여러 임베딩을 비교한 결과, Full-Gram(VGG19 Gram features) 이 대표 지표인 Macro mAP@5에서 가장 높았다.
| 방법 | P@5 (micro) | Macro mAP@5 | 비고 |
|---|---|---|---|
| CLIP | 0.3980 | 0.3537 | 의미·내용 유사도 기준선 |
| Full-Gram | 0.4914 | 0.4033 | 현재 Retrieval 기본값 |
| CSD ViT-L | 0.4122 | 0.3736 | 스타일 전용 모델 기준선 |
| CLIP + Low-Gram 0.5/0.5 | 0.4354 | 0.3864 | 하이브리드 기준선 |
| Hybrid Top-20 → CSD rerank | 0.4405 | 0.3953 | 재정렬 실험 |
P@5는 모든 질의를 합쳐 계산한 micro 정밀도이고, Macro mAP@5는 style 클래스별 점수를 동등하게 평균내므로 최종 선택 지표로 사용한다. 전체 실험 결과는 benchmarks/kit/leaderboard.csv에 기록한다.
benchmarks/kit/ # 임베딩 가설 검증용 score, compare, encoders, leaderboard
configs/ # 실행 예시 설정
data/daypack_v2/ # 로컬 데이터셋(Git 제외)
docs/ # 실행 방법·검색 흐름·파이프라인 설계
notebooks/ # 00 제공 자료, 01 벤치마크, 02 Top-k 육안 확인
outputs/ # 검색 인덱스·평가·생성 산출물(Git 제외)
src/retrieval/ # Full-Gram 인덱스·검색·파이프라인 어댑터
src/evaluation/ # 검색 및 생성 결과 평가
src/pipeline/ # LangGraph 오케스트레이션 뼈대
프로젝트 루트에서 아래를 실행한다.
uv sync --extra notebook --extra text
uv run --no-sync python -m src.retrieval.index_builder --project-root .
uv run --no-sync python -m src.evaluation.retrieval_evaluator --project-root .
outputs/full-gram-index/outputs/full-gram-evaluation/retrieval-results.jsonnotebooks/02-image-query-top5-demo.ipynb데이터셋, 인덱스 벡터, 모델 캐시, 실행 산출물은 대용량이므로 Git에 올리지 않는다. 자세한 내용은 검색 흐름 문서, 환경 설정, MVP 파이프라인을 참고한다.