Krea 2 캐릭터 LoRA를 100개 이상 학습시켜 본 결과, 유사성을 결정하는 요소는 무엇일까요?
요약
본 글은 Krea 2 캐릭터 LoRA 학습 경험을 바탕으로, 단순히 데이터셋의 크기나 학습 에포크가 좋은 결과를 보장하지 않음을 강조합니다. 성공적인 LoRA는 고품질의 다양하고 일관성 있는 데이터를 사용해야 하며, 얼굴뿐 아니라 전신과 다양한 각도/상황을 포함하여 '사람 자체'를 이해하도록 훈련하는 것이 중요하다고 설명합니다.
핵심 포인트
- 데이터셋 크기보다 품질과 다양성이 핵심입니다.
- 얼굴 외에도 전신, 다양한 각도를 포함해 '인물 전체'를 학습시켜야 합니다.
- 너무 유사한 이미지는 모델의 유연성을 떨어뜨릴 수 있습니다.
- 최종 에포크가 항상 최고는 아니며, 초기 체크포인트 테스트가 중요합니다.
저는 지난 몇 달 동안 Krea 2용으로 상당히 많은 수의 캐릭터 LoRA를 학습시키는 데 시간을 보냈고, 한 가지 사실이 매우 빠르게 명확해졌습니다. 즉, 더 많은 학습이 자동으로 더 나은 유사성을 의미하지 않는다는 것입니다. 제가 만든 최고의 LoRA 중 일부는 비교적 작고 깨끗한 데이터셋에서 나왔습니다. 반면, 너무 많은 시각적 노이즈, 일관성 없는 스타일링, 좋지 않은 각도, 또는 반복되는 이미지를 포함하고 있어 더 나은 성능을 보이지 못한 큰 데이터셋들도 있었습니다. 저에게 가장 중요했던 것들은 다음과 같습니다.
-
데이터셋의 품질이 크기보다 중요하다
저는 엉터리인 이미지 100장보다는 진정으로 유용한 이미지 30장을 선택할 것입니다. 제가 데이터셋에서 보는 가장 큰 문제점들은 다음과 같습니다: 너무 많은 유사 복제본, 과도한 필터 또는 얼굴 편집, 저해상도 이미지가 많음, 하나의 얼굴 각도가 데이터셋을 지배함, 매우 다른 나이나 외모의 그룹 사진(피사체가 작음), 한 화보 촬영에서 나온 이미지들, 머리 스타일, 메이크업, 조명 또는 표정이 거의 동일한 이미지들. 모델은 사람을 학습하기에 충분한 일관성이 필요하지만, 그들의 정체성의 일부가 실제로 무엇인지 이해하기 위한 충분한 변화도 필요합니다. -
얼굴만으로는 부족하다
이것은 큰 문제였습니다. LoRA는 얼굴을 완벽하게 구현할 수 있어도 어깨 아래의 인물 모습에 대해서는 아무것도 모를 수 있습니다. 유용한 캐릭터 LoRA를 만들고 싶다면, 저는 다음과 같은 조합을 포함하려고 노력합니다: 클로즈업된 얼굴 사진, 머리와 어깨가 보이는 사진(head and shoulders), 허리까지 오는 사진(waist-up), 전신 사진(full body), 정면/측면/후면 사진, 3/4 각도 사진, 다양한 표정, 다양한 조명, 다양한 의상. 목표는 단순히 '이 얼굴을 인식하는 것'이 아닙니다. 목표는 '이 사람을 이해하는 것'입니다. -
너무 유사한 이미지가 많으면 LoRA가 덜 유연해질 수 있다
만약 데이터셋의 70%가 같은 헤어스타일, 카메라 각도, 의상 또는 표정이라면, 모델은 그러한 요소들을 정체성의 일부로 취급하기 시작합니다. 그러면 모든 생성물에서 그것들을 재현하려 합니다. 이는 특히 유명인이나 크리에이터에게서 두드러지게 나타나는데, Google Images가 같은 몇 장의 보도 사진을 계속해서 반환하는 경향이 있기 때문입니다. 저는 이제 학습 전에 중복성을 제거하는 데 훨씬 더 많은 노력을 기울이고 있습니다.
최종 에포크(epoch)가 자동으로 최고의 결과물을 의미하지는 않습니다. 이는 제가 워크플로우에 적용한 가장 큰 변화 중 하나입니다. 이전에는 고정된 엔드포인트까지 학습시키고 최종 체크포인트가 완성된 모델이라고 가정했습니다. 하지만 이제는 여러 에포크를 저장하고 개별적으로 테스트합니다. 초기 단계의 체크포인트가 더 나은 얼굴 유사성(facial likeness), 더 자연스러운 피부 표현, 더 유연한 프롬프트 활용도, 덜 과장된 특징 등을 가질 때가 매우 흔하며, 후반부 에포크는 기술적으로 "더 강해" 보일지라도 실제로는 과적합(overtrained) 상태인 경우가 많습니다. 따라서 이제 학습 과정은 절반의 과정일 뿐입니다. 체크포인트 선택 자체가 트레이닝의 일부입니다.
-
데이터셋의 편안한 범위를 벗어나 LoRA를 테스트합니다. 모델이 훈련 중에 본 것과 동일한 종류의 이미지를 생성할 때는 놀라울 정도로 멋져 보일 수 있습니다. 하지만 그것만으로는 많은 것을 알 수 없습니다. 저는 다음과 같은 요소들을 테스트합니다: 클로즈업 얼굴 정확도, 캐주얼 의상, 정장 의상, 적절한 경우 다양한 헤어스타일, 전신 샷, 운동하는 자세, 특이한 카메라 각도, 다른 조명 조건, 실내 대 실외 장면, 측면 프로필, 후면, 3/4 뷰. 프롬프트가 바뀌자마자 정체성이 사라진다면, 저는 그 LoRA를 완성되었다고 간주하지 않습니다.
-
얼굴이 뛰어나더라도 체형은 변할 수 있습니다(drift). 이 점은 제가 좀 더 체계적인 테스트를 시작하면서 놀랐던 부분입니다. Krea 2는 때때로 얼굴 정체성을 매우 잘 보존하는 반면, 일반적인 체형으로 표류하는 경향을 보이기도 합니다. 이것이 제가 검증 과정에서 의도적으로 신체 구조 확인 프롬프트(physique-check prompts)를 사용하기 시작한 이유입니다. 예를 들어 운동선수의 경우, 모델이 다음 사항들을 학습했는지 보고 싶습니다: 키, 어깨 너비, 다리 비율, 근육질 정도, 전반적인 골격. 다른 사람들에게도 같은 원칙이 적용됩니다. 얼굴은 유사성(likeness)의 한 부분일 뿐입니다.
-
트리거 단어는 사람들이 생각하는 것보다 덜 중요합니다. 저는 여전히 명확한 트리거 단어를 사용하지만, 데이터셋의 품질과 트레이닝의 품질이 신비로운 트리거 구절을 만들어내려고 노력하는 것보다 훨씬 중요하다는 것을 알게 되었습니다. 좋은 LoRA는 그 사람을 생성하기 위해 비밀스러운 주문 같은 문단이 필요해서는 안 됩니다. 트리거는 캐릭터를 식별해야 합니다.
프롬프트는 장면을 설명해야 합니다. 8. 검증 이미지는 매우 중요합니다. 저는 이제 각 모델에 대해 일관된 테스트 이미지 세트를 생성합니다. 이렇게 하면 기억에 의존하는 것보다 비교가 훨씬 쉬워집니다: Epoch 12 대 Epoch 14 대 Epoch 16 대 Epoch 18 대 Epoch 20. 때로는 차이가 미묘해서 출력물을 나란히 놓고 봐야만 합니다. 그러면 어느 체크포인트가 확실하게 우세한지 알 수 있습니다. 저에게 가장 큰 교훈은 LoRA 학습이 실제로 '사진을 업로드하고 트레인 버튼을 누르는' 것이 아니라는 것입니다. 중요한 작업은 다음과 같습니다: 데이터셋 선택 → 정리(cleanup) → 학습(training) → 체크포인트 비교 → 검증입니다. 실제 학습 자체는 거의 쉬운 부분입니다. 저는 이 모든 것을 파악하는 동안 공개 Krea 2 캐릭터 LoRA 라이브러리를 구축해 왔기 때문에, 이제 상당히 많은 예시들을 가지고 있습니다. 혹시 관심 있는 분이 계시면, 제가 다음 게시물에서 보여드릴 수도 있습니다: 에포크를 비교하는 데 사용하는 정확한 검증 프롬프트나, 동일한 캐릭터에 대해 언더트레이닝(undertraining) 대 좋은 학습(good training) 대 오버트레이닝(overtraining)이 어떻게 보이는지에 대한 예시들입니다. 제가 테스트해 온 LoRA와 예시 출력물들은 Hugging Face의 공개 Krea 2 브라우저에 올려두었습니다. 또한 맞춤 커미션도 받지만, 라이브러리 자체는 무료입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/StableDiffusion의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기