구글 코렙으로 로라 만드는 법 : 기초편 - 데이터 수집 방법
⧭ kohya-LoRA-dreambooth로 로라 만드는 법에 대하여 단계적으로 포스팅 하겠습니다.
로라를 만들기 위해서는 그 무엇보다도 데이터 수집이 제일 중요합니다. 수준 높은 로라는 수준 높은 데이터셋을 필요로 하기 때문에 공을 들여서 좋은 이미지를 찾아야 합니다.
구글 코렙을 이용하여 로라를 쉽게 만드는 방법이 있어서 소개해드리겠습니다.
- 데이터 수집 방법 : 피해야 할 사항
- 정규화이미지(reg data)에 대하여
- 마음에 드는 데이터가 흐릴 때 쓸 수 있는 방법
데이터셋 수집할 때 피해야 할 사항
사람 얼굴에 대한 데이터셋을 선택하거나 수집할 때는 다음과 같은 사항을 피해야 합니다.
- 흐릿함이 너무 많은 이미지: 흐릿함이 조금 있으면 선명하게 만들 수 있지만, 흐릿함이 너무 많으면 이미지의 품질이 떨어지고 얼굴의 특징을 인식하기 어려워집니다. 흐릿한 이미지는 데이터셋에서 제외하거나 선명하게 보정하는 것이 좋습니다.
- 너무 날카로운 이미지: 너무 날카로운 이미지는 이미지의 잡음이나 아티팩트를 증가시키고, 얼굴의 자연스러운 표정이나 질감을 손상시킵니다. 너무 날카로운 이미지는 데이터셋에서 제외하거나 부드럽게 보정하는 것이 좋습니다.
- 너무 밝거나 어두운 이미지 : 너무 밝거나 어두운 이미지는 얼굴의 색상이나 명암을 잘 표현하지 못하고, 얼굴의 윤곽이나 세부사항을 잃어버립니다. 너무 밝거나 어두운 이미지는 데이터셋에서 제외하거나 적절한 노출로 보정하는 것이 좋습니다.
- 얼굴에 너무 많은 그림자가 있는 이미지 : 얼굴에 너무 많은 그림자가 있는 이미지는 얼굴의 형태나 표정을 왜곡시키고, 얼굴의 식별이나 분석에 방해가 됩니다. 얼굴에 너무 많은 그림자가 있는 이미지는 데이터셋에서 제외하거나 그림자를 줄이는 방법으로 보정하는 것이 좋습니다.
- 이상한 각도로 찍은 이미지 : 이상한 각도로 찍은 이미지는 얼굴의 비례나 비대칭성을 만들고, 얼굴의 정면이나 측면을 잘 보여주지 못합니다. 이상한 각도로 찍은 이미지는 데이터셋에서 제외하거나 정상적인 각도로 회전시키는 방법으로 보정하는 것이 좋습니다.
- 머리부터 발까지 또는 무릎 아래까지의 전신 이미지 : 머리부터 발까지 또는 무릎 아래까지의 전신 이미지는 얼굴의 크기가 작아서 얼굴의 특징을 잘 파악하기 어렵습니다. 또한, 트레이닝에 사용되는 이미지의 크기가 512px에서 최대 768px이므로, 전신 이미지를 사용하면 해상도가 저하됩니다. 전신 이미지는 데이터셋에서 제외하거나 얼굴 부분만 잘라내서 사용하는 것이 좋습니다.
- 데이터셋의 많은 이미지와 유사하지 않은 얼굴 : 데이터셋의 많은 이미지와 유사하지 않은 얼굴은 데이터셋의 다양성을 저해하고, 일관성이 없는 결과를 만들 수 있습니다. 예를 들어, 데이터
- 이미지 속 얼굴이 평소 모습과 닮지 않은 이미지 : 데이터를 모은 이미지에서 보이는 대략적인 스타일을 통일해야 합니다.
- 낮은 품질이나 해상도의 이미지: 노이즈 많으면 로라의 결과물에도 노이즈가 껴서 선명하지 않게 됩니다.
- 나쁜 조명, 대비 또는 색상의 이미지 : 역광이나 어두운 곳에서 찍은 이미지는 피해야 합니다.
- 멀리서나 옆모습으로 찍은 이미지 : 예를 들어 풍경이나 그룹사진에 있는 얼굴은 크기가 작고 각도가 다양해서 안 좋습니다. 각도를 통일하는 것이 좋습니다.
- 셀카/셀카 스틱으로 찍은 왜곡된 이미지 : 예를 들어 셀카/셀카 스틱으로 찍은 이미지는 얼굴이 왜곡되거나 비율이 맞지 않을 수 있습니다.
- 투명한배경 : AI가 투명한 배경은 검은색으로 인식하기 때문에 참사가 일어납니다.
좋은 데이터 세트
- 잡지의 사진 촬영이나 프로 카메라/좋은 휴대폰 카메라로 찍은 이미지와 같은 고품질 및 해상도.
- 좋은 조명, 대비 및 색상.
- 클로즈업 또는 반신 이미지.
- 셀카/셀카는 각도가 이상하지 않고 얼굴이 왜곡되지 않는 한 괜찮습니다.
데이터(사진)의 해상도, 크기
kohya-LoRA-dreambooth학습에서 사진의 해상도 크기는 512px에서 최대 768px 인식 하기 때문에 512x512혹은 512x768, 768x768등으로 해도 됩니다.
정규화 이미지 - reg data
kohya-LoRA-dreambooth 에게 "이런 이미지를 참고하여
내가 준 사진의 얼굴 형태를 학습해 줘~" 라는 개념으로 정규화 이미지를 준비하시면 됩니다.
솔직히 저는 필수적으로 준비해야 한다고 봅니다.
준비 방법
- 로라 만들 때 쓰는 모델와 정규화 이미지를 만들 때 쓰는 모델을 통일
- 적어도 500장 이상
- 프롬에는 1girl, 1male focus, 1boy, 등 만들고 싶은 로라에 어울리는 이미지 생성
- 긍정프롬에 한 글자면 써도 됩니다. (모델의 스타일을 참고하라는 이미지이기 때문)
- 정규화 이미지에 통일성을 해치는 이미지 골라내기
예) 1boy 프롬 이미지들에 문자만 적혀있거나 알아보기 힘든 이상한 이미지들
우선 로라를 한번 이해해보자면
로라는 어떤 한 작가스튜디오(WEBUI의모델)의 견습생(로라)이라고 할 수 있습니다.
작가의 스튜디오를 토대로 특정한 포즈, 물체, 옷 스타일 등을 그릴 수 있는 견습생이죠.
때문에 로라 만들 때 쓰는 모델와 정규화 이미지를 만들 때 쓰는 모델을 통일 시켜야 합니다.
kohya-LoRA-dreambooth에 기본 탑재되어있는 모델
실사 로라를 위한 모델
- Stable-Diffusion-v1-5
- Chilloutmix
2d 로라를 위한 모델
- Anime full pruned
- AnythingV3
- Animepastel~
실사와 2d를 위한 모델
- openjurney
참고: openjurney는 미드저니의 이미지를 학습시킨 모델이라고 보면 됩니다.
※ 원하는 모델로 로라학습 할 수도 있습니다.(추후 포스팅)
마음에 드는 데이터가 흐릴 때 쓸 수 있는 방법
위 글을 참고하여
이미지를 업스케일하고 (GFPGAN필수:이것도 과도하게 쓰면 안됩니다.)
이미지를 512혹은 768로 줄이면 됩니다.
로라 만들 때 중요한 데이터 수집에 대해서 알아보았는데 도움이 되셨으면 좋겠습니다.
다음 포스팅은 코렙 kohya-LoRA-dreambooth에서 로라 학습에 대해 쓰겠습니다.