— 이미지·캡션 구조 제대로 준비하는 법
LoRA 파인튜닝을 처음 시작하면 누구나 모델, rank, 학습률(learning_rate) 같은 훈련 옵션에 먼저 관심을 두기 마련이다.
하지만 실제로는 Dataset이 80%를 결정한다.
좋은 데이터로 학습하면 웬만한 세팅 오류도 덮고 가지만, 나쁜 데이터는 그 어떤 설정으로도 품질을 복구할 수 없다.
특히 최근의 Flux 계열 모델은 “데이터를 매우 정직하게 반영하는 모델” 이라, Dataset 품질의 영향을 더 강하게 받는다.
이 글에서는 LoRA를 파인튜닝할 때 이미지를 어떻게 준비하고, 캡션을 어떻게 구성해야 하며, data.toml의 설정이 Dataset 구조와 어떤 관계가 있는지를 실전 기준으로 정리한다.

1. 왜 LoRA 파인튜닝에서 Dataset이 가장 중요한가?
LoRA는 기본 모델의 거대한 파라미터 전체를 바꾸는 게 아니라,
특정 개념을 강화하거나 추가하는 “메모 패치” 만 추가하는 방식이다.
즉 LoRA는 다음 두 가지를 중심으로 학습한다:
-
이미지 간의 공통점
-
캡션에 명시된 핵심 개념
그래서 Dataset이 조금만 흐트러져도 바로 다음과 같은 현상이 생긴다:
-
얼굴이 들쭉날쭉해짐
-
LoRA scale=0.5 이상 줘야 겨우 스타일이 적용됨
-
기존 모델의 특징과 섞여 “이도 저도 아닌” 결과가 나옴
-
특정 포즈/표정만 과하게 강화됨
-
색감이 심하게 치우침
이 모든 문제의 근본 원인이 바로 데이터의 일관성 부족이다.
2. 이미지 준비의 기본 규칙
이걸 지키면 절반은 이미 성공한 것이다. 한번 tuning 할 때 상당한 시간이 소요되는 만큼 한번 할 때 데이터를 잘 갖춰놓는 것이 좋다.
✔ 2-1) 이미지 해상도는 정규화하는 것이 좋다
Flux 기반 모델들은 해상도에 좀 둔감해 보이지만, 파인튜닝 시엔 다음 문제가 생긴다:
-
512×768
-
1024×1536
-
800×800
-
1536×768
이런 식으로 크기가 제각각이면 모델 입장에서는 “중요 영역”이 흐릿해지거나 위치가 일관되지 않게 보일 수 있다.
추천 규격:
-
768×1152
-
768×1024
-
1024×1024
-
혹은 원하는 최종 이미지 비율에 맞춘 한 가지 규격으로 통일
중요한 건 비율과 크기의 일관성이다.
✔ 2-2) Dataset은 많을수록 좋은 게 아니라, 균질할수록 좋다
잘못된 예:
- 셀카 10장 + 전신샷 5장 + 어두운 조명 사진 3장 + 4K 고화질 사진 2장 + 만화풍 이미지 5장
→ 모델이 무엇을 배워야 하는지 혼란에 빠짐.
좋은 예:
-
동일한 카메라 거리
-
동일한 조명
-
얼굴 중심 / 상반신 중심 등 컨셉이 명확
-
스타일(실사/애니/일러스트 등) 통일
✔ 2-3) “잘 나온 사진만 넣는 것”이 가장 중요한 원칙
이건 직접 Flux LoRA를 여러 번 실험해보면 더 크게 체감된다.
너무 흔한 실수:
“데이터가 부족하니 그냥 이것도 넣자. 뭔가 학습에는 도움이 되겠지.”
No.
그 “뭔가”가 LoRA를 망친다.
흐릿한 이미지 하나 때문에 학습이 어긋나는 경우가 매우 많다.
완전 확실하게 말할 수 있다:
좋은 사진 10장 > 뒤죽박죽 사진 40장
✔ 2-4) LoRA를 만들고자 하는 목적에 따라 이미지 구성을 결정해야 한다
예를 들어:
1) 특정 인물 재현 LoRA
-
얼굴 클로즈업 위주
-
동일 조명
-
정면 + 약간의 측면 정도만
-
전신은 넣지 않는 것이 일반적으로 더 안정적
2) 특정 패션 스타일 재현 LoRA
-
동일 의상 세트
-
색감, 텍스처 강조 이미지
-
전신샷/하반신샷 포함 가능
-
다양한 포즈가 오히려 도움이 됨
3) 특정 일러스트 스타일 LoRA
-
배경 포함
-
브러시 텍스처 잘 보이는 이미지
-
스타일의 핵심 요소가 무엇인지 직접 정의해야 함(선의 두께, 채도, 명암 등)
3. 캡션 작성: LoRA 품질을 결정하는 두 번째 핵심
이미지 자체만큼 중요한 것이 바로 캡션이다.
Flux는 캡션의 “텍스트 신호”를 굉장히 잘 따라가기 때문에,
캡션 구성만 세심하게 해도 LoRA 품질이 크게 바뀐다.
✔ 3-1) 캡션을 어떻게 써야 할까?
정답은 다음 둘 중 하나다:
A. 최소 키워드 태그 기반 방식
a japanese woman, long hair, smiling, outdoor, daylight
-
단순하고 안정적
-
실사 스타일에 강함
-
LoRA가 쉽게 수렴함
B. 문장형 묘사 방식
A Japanese woman with long black hair smiles softly in natural daylight, wearing a white knit sweater.
-
Flux나 SDXL 계열에서 더 자연스러운 학습을 유도
-
스타일 LoRA나 인물 LoRA에 적합
처음 시도하는 초보자는 A 방식을 추천하지만, 글 잘 쓰는 사람은 B 방식 으로 해보길 권한다. 경험상 B 방식이 좀 더 효과가 좋은 것 같다는 생각이 들 때가 있었다.
주의사항 : 문장형을 쓸때, data.toml에서 keep_tokens = 0, shuffle_caption = false 로 할 것
✔ 3-2) 캡션이 아예 없어도 되나요?
-
확실한 정답: 반드시 넣을 것
-
이유: 모델이 배워야 할 개념이 무엇인지 알려줘야 함
-
단, “클래스 토큰만 주고 문장 캡션이 없는 구조”로 파인튜닝하는 예제를 NVIDIA의 문서에서 본 적이 있으나, 경험상 캡션을 넣는 것이 훨씬 효과가 좋다.
✔ 3-3) class_tokens vs txt 캡션 우선순위
중요한 실전 정보:
txt 캡션이 있으면 → txt가 우선된다.
class_tokens는 보조 역할에 가깝다.
즉 같은 이미지에 다음 두 개가 동시에 있으면:
class_tokens = "leona_empire asian woman"
caption.txt = "a japanese woman in winter knit"
→ 모델은 caption.txt 쪽을 더 우선 반영함.
정리:
-
caption.txt가 핵심
-
class_tokens는 “전체 컨셉의 기본 토대”라고 보면 됨
4. Dataset 디렉토리 구조 예시
Flux 계열 LoRA를 기준으로 한 깔끔한 예시:
dataset/
└── concept1/
├── 00001.png
├── 00001.txt
├── 00002.png
├── 00002.txt
├── 00003.png
├── 00003.txt
└── ...
.txt 파일 규칙:
-
파일명 동일해야 함
-
UTF-8 권장
-
한 줄로 작성 (불필요한 줄바꿈 금지)
5. LoRA를 망치는 대표적 캡션 실수
1) 과한 수식어
beautiful gorgeous extremely lovely asian woman with super long silky hair
모델이 특정 속성만 과도하게 매달림.
2) 사진마다 스타일 설명이 다름
-
한 장은 “cinematic lighting”
-
다른 장은 “bright soft lighting”
→ 혼란 100%
3) 사진과 다른 불필요한 감정·무드
가끔 사진이 많을 때 복사 + 붙여넣기 하다가 사진과 다르게 표정설명이 들어가면 망함!! DATA set 완성 후 최종적으로 최소 2번 이상 확인하는 것이 정신건강에 좋음.
(실제로는 웃고 있어도 sad, melancholy 이런 텍스트가 있으면 표정이 바뀌어버림)
6. 데이터 수량: 몇 장이 가장 효율적일까?
경험상 Flux LoRA 기준:
| 데이터 수 | 결과 품질 |
|---|---|
| 5–10장 | 불안정 (기복 큼) |
| 15–25장 | 가장 효율적 |
| 30–50장 | 최고 품질 (단, _일관성 있는 데이터_일 때만) |
| 60장 이상 | 큰 의미 없음. 중복 정보 증가 |
-
데이터를 늘리기보다 “나쁜 이미지 제거”가 품질을 더 올린다.
-
개인적으로는 처음에는 40매 정도했지만, 그 후로는 10~20매 사이로 데이터 셋을 구성하는 편임
7. 1차 → 2차 파인튜닝할 때 Dataset 다루기
여기서 가장 흔한 질문:
“기존 이미지도 포함해야 하나?”
정답:
Yes. 일정 비율 포함해야 한다.
이유:
모델은 LoRA가 아니라 “기억 패치”이기 때문에
기존 개념을 다시 보여주지 않으면 잊어버린다.
권장 비율:
-
기존 데이터 50%
-
신규 데이터 50%
이렇게 하면 “기억 유지 + 새로운 스타일 반영”이 가장 안정적라고 생각한다.
8. 결론: Dataset만 제대로 준비해도 LoRA의 70%는 완성된다
파인튜닝을 거듭해볼수록 느끼는 점은 단 하나다.
결국 LoRA의 품질은 Dataset에 의해 결정된다.
-
해상도
-
비율
-
조명
-
이미지 일관성
-
캡션 정확성
-
불량 이미지 제거
-
data.toml과 dataset 구조의 정렬
이 7개만 제대로 챙기면
rank, learning_rate 같은 설정은 생각보다 덜 중요해진다.
댓글이 없습니다.