[튜토리얼]전 세계에서 가장 쉬운 인공지능 모델 훈련법 공개 <LoRA 깨부수기 -2->
본문 바로가기
ai 만들어보기(feat ai artwork lab)

[튜토리얼]전 세계에서 가장 쉬운 인공지능 모델 훈련법 공개 <LoRA 깨부수기 -2->

by mement0mori 2023. 7. 26.

자 그럼 이제 LoRA 알만큼 알죠. 기존 모델을 훈련시켜 가중치를 추가해 우리가 원하는 스타일, 기능 따위를 추가하는 겁니다. 지금부터는 직접 기존 모델을 훈련시켜 LoRA를 만들어봅시다!! 진짜 너무 쉬워서 제목을 저렇게 붙였습니다. 쉬운 이유는 일단 LoRA를 위해 사용할 툴 덕분입니다.

이미 알 사람은 다 알죠? 바로 Kohya_ss 입니다. 이게 최근 더 업그레이드가 돼가지고, 그냥 어지간한 건 다 프리셋으로 해두고 최적화니 뭐니 다 지가 알아서 해주기 때문에 그냥 우리가 원하는 스타일의 데이터셋만 잘 갖추고 있으면 클릭 몇 번이면 끝납니다.

따라서 이번 튜토에서 제일 생소한 건 Kohya_ss 설치일 건데 ㅋㅋㅋㅋ이것조차도 다 자동입니다. ㅋㅋㅋ

그럼 시작해보까요? 일단 순서대로 쫙 방법만 나열하고, 알아두면 좋을 것들 구구절절 설명은 뒤로 미루겠습니다.

1. Kohya_ss 설치

일단 설치를 원하는 곳에서 터미널(cmd, 파워쉘 등등) 실행하고 아래 명령어를 입력합니다. 이제 다들 아시겠지만, 하위폴더 자동으로 생성되니까 설치하고 싶은 드라이브나 상위 폴더에서 하면 됩니다잉??

 

git clone https://github.com/bmaltais/kohya_ss.git

복제가 끝난 뒤 \kohya_ss 폴더로 이동!

그다음 setup.bat 파일 실행!

1번 선택! kohya_ss 설치!!!

다음 2번 torch 2 (recommended) 선택!

그럼 걍 지가 알아서 다 설치합니다. 끝!!!!

설치 끝나고 다시 setup.bat 실행 때 나오는 저기서 5번 start kohya_ss in browser 선택하면 이렇게 짠~ 브라우저도 지가 알아서 열어줌 ㅋㅋㅋㅋ

보시다시피 kohya_ss는 LoRA는 물론 Dreambooth나 textual inversion 등등 모든 이미지 생성 인공지능 모델 훈련을 할 수 있는 종합툴이라 할 수 있습니다. 따라서 이걸 깔면 기존 SD webUI에 깔려 있던 Dreambooth는 걍 삭제하셔도 됩니다. ㅋㅋㅋ 훈련은 걍 이거 씁시다. 써보니까 이게 좋아요. ㅋㅋㅋ

자 그럼 이제 본격 훈련으로 들어갑니다. 훈련자체는 걍 SUPER! EASY 입니다. 고고!

2. Dataset 준비 및 설정

일단 여기서 출발해봅시다. 아래처럼 kohya_ss의 LoRA의 Tools의 Deprecated 탭으로 이동합니다.

먼저 instance prompt는 내 LoRA를 가동하기 위해 필요한 프롬프트입니다. 그리고 이건 무조건 기존 모델에는 없는 어떤 용어나 문자여야 합니다. 기존의 이미지와 연결된 텍스트와 안 겹치게 ㅋㅋ Class Prompt는 내가 훈련할 이미지가 속한 범주입니다.

전 이제 세 살인 제 아들이니까 toddler 자 그런데 이거 어디서 많이 봤죠? 네 Dreambooth 훈련할 때 했던 거 똑같습니다. 검색 고고 ㅋㅋ

넘어가죠.

Training images는 내가 준비한 훈련용 이미지 폴더를 선택합니다. 전 D:\dataset 폴더에 사진 5장을 준비했습니다. 물론 제 아들사진;;;;;; 아무튼 당연한 말이지만, 많을수록 좋고요. 스테이블디퓨전 1.5 버전용 모델을 훈련할 거라 512x512 사이즈로 준비했습니다. 어지간하면 사이즈도 미리 맞추시는 게 좋습니다.

그리고 옆에 repeat는 kohya_ss에만 있는 개념인데 말그대로 이 이미지의 훈련반복 횟수를 말한다고 합니다. 어찌보면 epoch랑 같은 개념인데 굳이 이러는 이유는 최적화 때문인 거 같습니다. 제가 해보니 무조건 저 횟수만큼 반복하지 않고 그보다 작은 숫자를 반복합니다. epoch는 무조건 정해진 만큼 반복하죠. 즉 epoch를 조정하는 것보다 저걸로 횟수를 입력하는 쪽이 횟수가 줄어드니까 빨라진다는 건데~ 결과물도 자신 있으니까 저래놨겠죠? ㅋㅋ전 일단 테스트니까 10회만 반복했습니다.

그다음 정규화regularization 이미지라고 뭐랄까? 레퍼런스 이미지를 준비합니다. 없어도 됩니다. 그런데 그런 경우 당연히 결과물이 더 좋지 않을 확률이 높고, 제가 해보니까 훈련 시간도 오히려 더 오래 걸립니다. 있으면 좋습니다. 그래서 뭔 이미지냐? dreambooth 튜토때 class 이미지라고 해서 같은 범주에 속한 이미지를 무작위로 뽑았잖아요? 그거랑 뭐 거의 같은 겁니다. 역시나 우리가 훈련에 쓸 기존의 모델로 이미지를 생성하면 됩니다. 자 그럼 대체 몇 장을 준비해야 하나!? 걍 많을수록 좋습니다. ㅋㅋㅋ많이 해본 사람이 추천하길 우리의 훈련 이미지 X repeat 만큼 준비하면 좋을 거라고 하더군요. ㅋㅋ 즉 저는 제 아들사진 5 X repeat 10이니까 50장 준비해야죠. ㅎㅎ전 스테이블 디퓨전 out put 폴더로 뽑았으니까 저렇게 폴더 지정했습니다. 정규화 이미지는 repeat 1이면 됩니다.

다음 Destination training directory는 아무데나 우리가 모델 생성할 새 폴더를 만들어 지정해주시면 되겠습니다.

끝입니다. 빨간 줄 그어놓은 Prepare training data을 클릭. 그다음 Copy Info to Folders Tab 을 클릭.

이러면 자동으로 Destination training directory에 폴더를 생성한다음 우리가 준비한 이미지, 정규화 이미지를 각각 폴더 분류에서 자동으로 넣어주고, 트레이닝 세팅까지 다 자동으로 끝내줍니다. 훈련 준비 끝끝!

3. Training Parameter 설정

이제 Training 탭으로 갑시다. 그리고 Parameter를 봅시다. 다른 건 쳐다도 보지 말고 걍 Preset에서 하나 고릅니다.

loha니 lycoris니 요즘 lora에서 파생?된 것들이 있어서 뭐가 많은데 우린 스테이블 디퓨전 1.5 기반으로 Lora 훈련할 거니까 제가 고른 sd15-EDG_LoraOptiSetting을 골라줍니다.

끝입니다.

이제 옆에 folders 탭을 누릅니다.

아까 전에 info를 여기로 다 보내놨기 때문에 이것도 건드릴 거 없습니다만, 위처럼 Model output name만 내가 원하는 걸로 변경합시다.

끝입니다.

마지막 Training탭을 봅시다.

우리가 훈련할 모델을 선택합니다. Quickpick에서 고르면 알아서 모델 다운로드 받아서 훈련합니다. 전 이미 여러 개 가지고 있으니까 거기서 하나 고를 겁니다. custom선택하고, 빨간 동글뱅이 쳐둔 하얀 문서 버튼 클릭해서 모델 파일 선택해주면 됩니다.

끝입니다.

Train model 클릭!

그럼 막 터미널창에서 어쩌고 저쩌고 훈련을 시작할 겁니다.

훈련이 끝나면 우리가 지정한 Destination training directory 폴더로 가봅시다. 그다음 \model 폴더로 가보면 짜잔~ 이렇게 .safetensor 파일이 생성돼 있을 겁니다.

나머지는 Lora 사용법대로 하시면 됩니다. 저 파일을 스테이블 디퓨전의 LoRA 폴더에 넣고 사용하면 됩니다. 몇 장 안 되는 이미지로 짧게 작업했는데 생각보다 결과가 나쁘지 않았습니다. 현재 3살인데 초등학생이 된 제 아들 사진을 이렇게 뽑아줬습니다....

아주 묘---하게 닮았습니다.;;;;;;;;;;;;

진심 너무 쉽죠? 이게 글로 쓰니까 좀 구구절절한 거 같은데 막상해보시면 알 겁니다. 너무 간단;;;;; 걍 훈련용 사진 준비하는 게 젤 오래 걸립니다. ㅋㅋㅋ그래도 LoRA답게 훈련속도는 전체적으로 아주 빠르고 그에 비해 결과물 품질은 준수합니다. 강추~

그밖에 세세한 파라미터에 관해선 예전 Dreambooth 튜토 때의 자료를 보시면 큰 도움이 되실 겁니다. 추가로 kohya_ss LoRA 학습에 관해 좀 더 알아둘만한 것들은 이 다음 편에 올리도록 하겠습니다.

전 국민 AI 아티스트의 그날까지~~ 이만~~

 

출처 - 전 세계에서 가장 쉬운 인공지능 모델 훈련법 공개 <LoRA 깨부수기 -2-> : 네이버 카페 (naver.com)