호돌찌의 AI 연구소
article thumbnail

지난 3개의 글에서는 Stable Diffusion에서 Txt2Img, Img2Img, ControlNet, Inpaint를 어떻게 사용하는지에 대해 배웠습니다. 이번 글은 남들이 만든 모델이 아니라 자신의 취향에 맞는, 용도에 맞는 모델을 어떻게 만드는지 배워보도록 하겠습니다.

 

 

SD에서 모델 학습이란


 

모델 학습은 어떻게 보면 SD의 꽃이라고도 할 수 있는 핵심적인 부분입니다. 학습에 필요한 사진들은 많으면 많을수록 모델의 성능이 올라가지만, 이번 시간에서는 간단하게 20장에서 30장 정도의 사진을 DreamBooth를 이용해 모델 학습을 해보겠습니다. 모델 학습에는 GPU의 사양이 중요하니 GPU 성능이 부족한 경우 Colab을 이용할 수 있습니다.

 

DreamBooth 설치 방법


 

SD에서 모델 학습에 필요한 DreamBooth를 설치하는 방법입니다.

  1. Extensions 탭을 클릭합니다.
  2. Install from URL 탭을 클릭하고, URL for extention’s git repository에 https://github.com/d8ahazard/sd_dreambooth_extension 을입력하고 Install 버튼을 클릭합니다.
  3. 설치가 완료되면 Apply and restart UI를 클릭합니다.
  4. SD 재시작이 완료되면 상단에 Dreambooth 탭이 새로 생긴 것을 확인할 수 있습니다.

 

모델 학습 전 DreamBooth 세팅 방법


 

본인만의 새로운 모델을 만들기 전 새로운 모델의 베이스가 될 Source Checkpoint와 Model Type를 설정해주어야 합니다. 학습할 모델의 타깃이 실사 이미지일 경우 realistic과 같은 모델을 선택해야 하고, 2D 일러스트일 경우 원하는 그림체의 모델을 선택하는 것이 품질이 좋게 나옵니다. Model Type는 Source Checkpoint에 선택한 모델의 버전을 따라갑니다.

 

학습 데이터 선정 방법


 

제일 중요한 학습데이터 부분입니다. 요리를 만드는데 재료가 제일 중요하듯이 모델 학습을 하기위한 학습 데이터가 제일 중요합니다. 우선, 학습 데이터 분포를 최대한 반영하기위하여 학습 시키고자 하는 사진을 선별할 때 유의해야할 점들입니다.

  1. 정면만 바라보고 있는 사진보다 여러 각도에서 찍은 사진이 많을수록 좋습니다.
  2. 배경은 단순할수록 좋습니다. 만약 배경에 꽃과 나무같은 요소들이 많다면 편집을 하시는 것을 추천합니다.
  3. 사진에는 타겟만 나와있어야 합니다. 강아지 사진을 예로 들면 강아지를 사람이 안고 있는 사진이거나, 사람의 손이나 발이 함께 찍힌다면 노이즈가 될 수 있습니다.

단, 학습 데이터의 해상도는 신경쓰지 않아도 됩니다.

 

모델 학습


 

SD의 Dreambooth 설정이 다 끝났다면

  1. Concept 1 탭에서 Dataset Directory에 학습 데이터 로컬 주소를 복사해 붙여 넣습니다.
  2. 아래 Instance Token에 학습 데이터의 고유 명사를 지정해 주고 Class Token에는 학습 데이터의 카테고리를 정해줍니다. 만약 강아지 사진이면 dog, 인물 사진이면 person처럼 지정해 주시면 됩니다.
  3. Prompt 역시 Token과 동일하게 지정해 줍니다.
  4. Saving 탭을 클릭하고 모델의 이름을 지정해 줍니다.
  5. 상단의 Train 버튼을 클릭합니다.

 

모델 점검


 

직접 생성한 모델은 Models 폴더 안에 저장됩니다. 체크포인트 새로고침을 한번 클릭하고 생성한 모델을 선택 후 txt2img로 이미지 생성이 잘 되는지 점검해 봅니다. 예시에서는 간단하게 강아지를 타깃으로 사용했지만 실무에 적용해 본다면 계약한 모델의 사진, 제품의 사진을 활용해 비즈니스에서 충분히 사용할 수 있습니다.

이번 글은 Dreambooth를 이용해 모델을 직접 학습시켜 이미지를 생성까지 해보는 실습을 따라가 보았습니다. 다음 글에 배울 Lora는 학습시킨 모델보다 퀄리티는 조금 떨어질 수 있지만 적은 양의 데이터만으로도 만들 수 있다는 장점이 있습니다. 다음 시간에 뵙겠습니다. 감사합니다.

 


[이전 글 목록]

2024.03.18 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Text2Image & ControlNet

2024.03.19 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Image2Image

2024.03.20 - [AI/GenAI - Image] - [메타코드] 생성형 AI 입문 완성강의 - Inpaint

 

본 글은 메타코드 서포터즈 활동을 위해서 강의를 제공받아 작성하였습니다.

메타코드M은 빅데이터, AI 강의를 제공하는 플랫폼이자 IT 현직자 모임을 위한 커뮤니티입니다. 이곳에서는 다양한 IT 분야의 전문 지식과 실무 기술을 배울 수 있는 온라인 강의를 제공하고, 같은 분야에 관심이 있는 사람들과 소통할 수 있는 공간을 제공합니다. 빅데이터 자격증, 데이터 분석, 프로그래밍, 인공지능 등 다양한 분야의 강의와 현직자 커리어 특강을 통해 IT 분야의 전문 지식과 실무 기술을 배우고 커리어를 발전시킬 수 있습니다.

 SD 강의

https://mcode.co.kr/video/list2?viewMode=view&idx=84

 

메타코드M

빅데이터 , AI 강의 플랫폼 & IT 현직자 모임 플랫폼ㅣ메타코드 커뮤니티 일원이 되시기 바랍니다.

mcode.co.kr

 

https://www.youtube.com/@mcodeM

 

메타코드M

🔥강의 / 커뮤니티에 참여해 보세요!🔥 https://mcode.co.kr ⚡️강의 플랫폼 (1) 빅데이터 자격증 강의 - 빅데이터 분석기사 / SQLD / ADsP (2) 데이터분석 입문/실습 강의 (3) AI 개발/이론 강의 (4) ChatGPT

www.youtube.com

 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!