FLUX.2 Klein 9B 고유사도 캐릭터 LoRA(AI Toolkit): 어떤 설정이 정말 중요한가(그리고 무엇을 입력해야 하는가)
FLUX.2 Klein 9B Base에서 캐릭터 / 아이덴티티 LoRA를 학습하고 있는데 계속 이런 질문을 하게 된다면:
- “Num Repeats는 실제로 무엇을 하나요?”
- “Training Steps는 어떻게 계산하나요?”
- “Gradient Accumulation을 바꾸면 Steps도 바꿔야 하나요?”
- “high likeness를 위해 가장 중요한 다른 설정은 무엇인가요?”
이 튜토리얼은 “추측 없이” 답합니다.
0) 사람들이 가장 많이 헷갈리는 #1 이유: “steps”가 두 가지입니다
AI Toolkit에는 Training Steps가 표시되고, 동시에 Sample Steps(preview / inference)도 보입니다.
- Training → Steps = 옵티마이저가 실제로 학습하는 길이(중지 카운터).
- Sample Steps(preview / inference) = 샘플 이미지를 렌더링할 때 쓰는 디노이징 step 수.
둘을 혼동하지 마세요.
누군가 “28 steps가 스윗스팟”이라고 말하더라도, 그건 학습 길이가 아니라 inference/sample steps를 말하는 것일 수 있습니다.
Base Klein에서는 낮은 sample steps로 LoRA를 판단하지 마세요. 프리뷰에서는 Base에 맞는 sampling을 사용해야 합니다(아래 참고).
1) 최적화해야 할 핵심 지표는 하나뿐입니다: “repeats per image”(학습량)
고유사도 캐릭터 LoRA를 원한다면, 각 학습 이미지가 대략 다음 정도로 “보이도록” 만드는 것이 목표입니다:
- 50–90 repeats per image = 일반적인 캐릭터 아이덴티티 학습
- 90–120 repeats per image = 고유사도 강화(아이덴티티 고정이 더 강함)
공식(copy/paste)
다음과 같이 두겠습니다:
N= 학습 이미지 수B= batch sizeG= gradient accumulationS= training steps
그러면:
Repeats per image
repeats_per_image ≈ (S × B × G) / N
Steps you should enter
S ≈ ceil( N × target_repeats / (B × G) )
✅ Gradient Accumulation을 바꾸면, 같은 학습량을 유지하기 위해 Steps도 반드시 바뀌어야 합니다.
2) “무엇을 입력해야 하나요?”(고유사도를 위한 베스트 프랙티스 기본값)
A) Training panel(영향도 최상)
다음을 시작점으로 사용하세요:
- Batch Size:
1 - Gradient Accumulation:
1(유사도 최우선) - VRAM이 부족하면
2–4를 쓰고 Steps를 비례해서 낮추세요. - Learning Rate:
1e-4부터 시작 - 학습이 불안정해지거나 “collapses”하면
5e-5를 시도해 보세요 - Steps: 위 공식을 사용해 계산하세요(감으로 정하지 마세요)
- Optimizer / timestep settings: 처음에는 기본값 유지(디버깅할 때만 변경)
B) Target panel(LoRA 용량)
- Linear Rank (9B Base):
16부터 시작 - underfitting이 명확하고 학습이 안정적이면
32를 시도 - 불안정/collapse가 보이면
16으로 되돌리기
C) Dataset panel(텍스트 감독 = 아이덴티티 제어)
캐릭터 LoRA라면:
- Default Caption:
photo of [trigger] - Caption Dropout Rate:
0.05(일부 설정에서는 “caption overfitting”을 줄이는 데 도움이 됩니다) - Resolutions: 가능하면 Klein은 1024를 기본으로 사용
- 다양한 크기에서 더 유연하게 쓰고 싶을 때만 768을 추가하세요.
D) Sample panel(올바른 프리뷰 방법)
샘플에서 LoRA가 “약해 보인다”면, 학습이 아니라 sampling 문제인 경우가 많습니다.
Base Klein 프리뷰는 예를 들어:
- Sample Steps: ~
50 - Guidance / CFG: ~
4
그 다음에 체크포인트를 다시 비교하세요.
3) “55장 이미지” 예시(실제 숫자)
예를 들어:
N = 55장- target repeats =
100(고유사도 강화) - batch size
B = 1
Option 1(유사도 최우선): Grad Accum = 1
Steps = 55 × 100 / (1 × 1) = 5500
입력 값:
- Gradient Accumulation:
1 - Steps:
5500
Option 2(VRAM 절약): Grad Accum = 4
Steps = 55 × 100 / (1 × 4) = 1375 (~1400)
입력 값:
- Gradient Accumulation:
4 - Steps:
1375(또는1400)
✅ 두 옵션 모두 이미지당 약 100 repeats를 제공합니다.
차이는 각 step에 몇 개의 mini-batch가 합쳐지느냐입니다.
4) 미니 “치트 시트”(고유사도 캐릭터 LoRA)
그냥 복사해서 쓰고 싶다면:
Klein 9B Base – High Likeness Starter
- Batch Size:
1 - Grad Accum:
1(필요하면2–4) - Target repeats per image:
90–110 - Steps:
ceil(N × repeats / (B × G)) - LR:
1e-4(불안정하면5e-5로 낮추기) - Rank:
16(안정적이고 underfitting일 때만32시도) - Resolution:
1024 - Default caption:
photo of [trigger] - Caption dropout:
0.05 - Preview sampling (Base): Sample steps
~50, Guidance~4
5) Troubleshooting(빠른 해결)
“LoRA가 약해 보이거나 noisy한데 loss는 내려가요”
대부분 프리뷰 sampling 설정이 맞지 않은 경우입니다.
- Sample Steps ~50, Guidance ~4로 맞춘 뒤 다시 확인하세요.
“좋아지다가 갑자기 전부가 혼란스러워지거나 더 나빠졌어요”(9B “collapse”)
다음 순서대로 시도하세요:
1) LR 낮추기(1e-4 → 5e-5)
2) Rank 낮추기(32 → 16)
3) 작은 regularization dataset을 낮은 weight로 추가
4) 일찍 멈추고 마지막 “좋은” 체크포인트 사용
“Gradient Accumulation을 줄이면 품질이 더 좋아지나요?”
아이덴티티/유사도에서는 종종 그렇습니다:
G를 낮추면 LoRA가 더 “구체적”으로 유지되는 데 도움이 될 수 있습니다(덜 평균화됨).- 하지만 같은 학습량을 유지하려면 Steps를 늘려야 합니다.
6) 결론
FLUX.2 Klein 9B에서 캐릭터 유사도를 좌우하는 가장 큰 레버는:
1) 학습량(이미지 수 대비 Steps × Batch × Grad Accum)
2) Learning rate
3) Rank
4) Resolution
5) Caption strategy
6) 프리뷰에서의 올바른 Base sampling
이 요소들을 의도적으로 통제하면, 더 이상 감으로 맞추지 않아도 되고 결과가 안정적으로 나옵니다.
학습을 시작할 준비가 되셨나요?
