DNF Style LoRA · 더 알아보기
생성 이미지 품질 평가
— 사람 검수 없이 자동으로 거르기
최종 추론 결과의 약 50%는 품질이 충분치 않았습니다. 226장을 일일이 보는 대신, 분포 기반 1차 필터(DINOv2)와 VLM 2차 스타일 검수(Gemini 3 Pro)를 직교(orthogonal) 축으로 결합해 고신뢰 셋을 자동 선별했습니다.
던파 그림체 LoRA 포트폴리오 · 품질 평가 섹션
1. 왜 자동 품질 필터가 필요했나
최종 모델(Anima)에서도 약 50%는 품질 미달이었습니다 — 비율 붕괴, 스타일 이탈, 디테일 뭉개짐. 라이브 아트 증량 파이프라인이라면 매번 사람이 보는 것은 비현실적이므로 자동 게이트가 필요합니다.
단, 단일 지표는 신뢰하기 어렵습니다. 그래서 분포 기반 DINO 의미 기반 VLM 두 축을 모두 두고 교집합만 채택하는 구조로 설계했습니다.
2. 1차 필터 — DINOv2 임베딩 분포 매칭 DINO
원본 DNF 현대 그림체 522장으로 레퍼런스 분포를 만들고, 생성 이미지가 그 군집 안에 들어오는지로 거른다.
| 항목 | 값 |
|---|---|
| 모델 | facebook/dinov2-base (ViT-B/14, 768-d, 정규화 CLS 토큰) |
| 레퍼런스 | modern_style 522장 |
| 지표 ① Centroid sim | 생성 이미지 ↔ 레퍼런스 평균 임베딩 cosine |
| 지표 ② Top-5 NN mean | 가장 가까운 레퍼런스 5장 평균 유사도 |
| 합격선 | centroid ≥ mean − 1σ = 0.726 − 0.110 = 0.616 |
레퍼런스 분포는 centroid 0.726 ± 0.110, top-5 NN 0.762 ± 0.076.
합격선을 평균 − 1σ로 두면 "원본 그림체 군집에서 1σ 이상 벗어난" 이미지를 자동 배제합니다.
결과: 226장 중 161장 통과 (71.2%).
2-B. 분포 점검 — 3그룹 통제 비교 DINO
"LoRA가 그림체를 정말 학습했는가"를 분포로 검증. 같은 학습 캡션을 써서 seed를 쌍으로 고정하고 세 그룹을 비교한다.
| 그룹 | 구성 | N |
|---|---|---|
| ① 원본 던파 | 학습 데이터 (modern_style) | 522 |
| ② anima base | 학습 캡션에서 트리거워드 제거 → Anima 단독 생성 | 24 |
| ③ lora | ssw_dnf 트리거 + 동일 캡션 → Anima + DNF LoRA | 24 |
②와 ③은 같은 캡션·같은 seed의 쌍이라, 둘의 차이는 오직 "트리거워드 + LoRA 적용" 여부입니다. DINOv2(768-d) 임베딩을 PCA·UMAP 두 방식으로 2D 투영해 비교합니다.
- 원본 군집 중심과의 cosine 유사도: base 0.710 ± 0.143 → lora 0.736 ± 0.102 (Δ +0.026)
- LoRA는 평균을 올릴 뿐 아니라 분산을 줄인다(0.143 → 0.102) — 원본 스타일로 더 일관되게 수렴
- 통제 설계(트리거만 차이) 덕분에, 이 이동이 프롬프트 차이가 아닌 LoRA 자체의 효과임이 분리됨
3. 2차 필터 — Gemini VLM 스타일 검수 VLM
DINO가 못 잡는 렌더링 기법 · 라이팅 · 마감도 같은 고수준 요소를 VLM으로 판정한다.
Phase A — 레퍼런스 스타일 정의 (5장 → 통합 가이드)
gemini-3-pro-preview에 레퍼런스 5장을 넣고 "캐릭터·포즈 말고 화풍만 서술"하도록 요청한 뒤,
5개 서술을 합성해 단일 스타일 정의를 만듭니다. 핵심: semi-realistic painterly + anime,
컬러 컨투어(검은 외곽선 없음), 고채도 보석톤, 드라마틱 멀티 라이팅 + 림라이트, 정밀한 재질 묘사.
Phase B — 226장 개별 판정
이미지 1장씩 호출해 {match, confidence, reasoning(<25단어)} JSON을 받습니다.
결과: 95장 통과 (42.0%), confidence(match=True) 0.891 ± 0.097.
4. 교집합 — 두 축을 합쳐 최고 신뢰 셋 교집합
두 필터의 판정을 2×2로 교차하면, 서로 다른 실패 모드가 드러난다.
- 교집합 90장 — 분포·의미 양축 모두 통과 → 최종 채택 셋
- DINO만 71장 — VLM이 "렌더링 평탄 / 라이팅 약함 / 마감 부족"으로 기각 (DINO가 관대)
- Gemini만 5장 — centroid 거리는 멀지만 VLM은 스타일 충족 판정(conf 0.95+, 분포 밖 양품)
- 일치율 = (90+60)/226 = 66.4%
5. 부가 — Cross-base 정량 평가 (CLIP / DINO Sim)
5 LoRA × 6 Base × 5 프롬프트 = 150장에 두 정량 지표를 자동 계산.
| 지표 | 모델 | 의미 | 전체 분포 |
|---|---|---|---|
| CLIP Score | open_clip ViT-L/14 | 프롬프트–이미지 일치도 | 0.257 ± 0.023 |
| DINO Style Sim | dinov2-base | 원본 522장 평균과의 유사도 | 0.689 ± 0.154 |
- 베이스별 최고 스타일 유사도: Animagine (DINO 0.7427)
- V-Pred(NoobAI V-Pred) vs epsilon: CLIP Δ +0.0115(epsilon 우월), DINO는 오차범위
6. 결론
| 관점 | 증명 |
|---|---|
| 운영 자동화 | 226장 → 자동 90장 선별, 사람 검수 최소화 |
| 보완적 설계 | DINO(분포) + VLM(의미) 직교 → 일치율 66.4%가 보완성의 근거 |
| 의사결정 투명성 | 경계 폴더(71/5장)에 "왜 떨어졌는지" reasoning 보존 |
| 평가 방법론 | 정량 단독의 한계(V-Pred)를 스스로 드러내고 정성 병행으로 보강 |