Kohya_ss를 이용하여 LoRA 트레이닝 (Stable Diffusion)
IT2024. 2. 12. 14:18학습할 이미지 수집
LoRA
트레이닝을 위한 이미지를 20장 수집합니다. 본 글에서는 시바이누 강아지 사진을 준비했습니다
이미지 tagger 생성
Tagger 플러그인 설치
수집한 이미지에 맞는 tagger 파일을 만들어야 하는데, stable diffusion의 extension으로 tagger를 생성할 수 있습니다.
Extensions > Available
에서 Load from 버튼을 클릭합니다.
저는 이미 설치를 했지만, 아래 사진과 같이 stable-diffusion-webui-wd14-tagger
를 Install 합니다.
Extensions > Installed > Apply and restartUI
버튼을 눌러서 재시작합니다. stable diffusion이 재실행되면, 이전에는 없던 Tagger 탭이 생성된 것을 확인 할 수 있습니다.
Tagger 생성
이제 이미지에 tagger를 생성해봅시다. Tagger > Batch from directory
를 누릅니다. 그리고, 아래 사진과 같이 이미지 파일 경로와 산출물 경로를 입력합니다. 본 글에서는 동일한 경로로 설정했습니다.
설정 완료 후 Interrogate
버튼을 클릭하면 output directory에 입력한 경로에 들어가면 사진 이름과 동일한 이름으로 텍스트 파일(.txt)이 생성됩니다.
파일을 열어보면 아래 사진과 같이 태거가 나열되어 있습니다.
kohya_ss 설치
github Readme 보고 설치를 진행하면 됩니다. (본 글에서는 22.6.0 버전으로 설치하고 실행하였습니다)
- github repo: https://github.com/bmaltais/kohya_ss
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
git checkout v22.6.0
setup.sh 스크립트를 실행하여 설치를 진행합니다. (윈도우의 경우는 setup.bat 배치파일을 실행)
chmod +x ./setup.sh
./setup.sh
설치가 완료된 다음 아래 명령어로 GUI를 실행합니다.
./gui.sh
http://127.0.0.1:7861/
로 접속을 하면, 아래와 같은 화면이 나오게 됩니다.
LoRA 트레이닝
이제 LoRA 트레이닝을 위해 설정이 필요합니다.
Dataset Preparation 설정
LoRA > Training > Dataset Preparation
으로 들어갑니다
아래 사진과 설명 참고하여 설정합니다.
- Instance prompt: 1토큰을 입력하면 되는데, 아직 역할을 잘 모르겠습니다. 토큰 값은 아래 주소에서 참고하여 값을 찾을 수 있습니다.
- Class prompt: 학습할 LoRA의 스타일(woman, girl, style, art 등)을 입력하는 곳입니다.
- Traning images: 트레이닝을 할 이미지들의 디렉토리 경로를 입력하는 곳입니다.
- Repeats: 학습할 반복 횟수를 뜻합니다
- Destination traning directory: 학습 산출물이 저장되는 경로입니다.
모두 입력이 끝났으면 Prepare training data
버튼을 클릭하면, 산출물 경로에 디렉토리가 생성됩니다.
학습 경로 설정
LoRA > Training > Folders 로 들어갑니다. 위에서 생성된 디렉토리의 경로를 아래 사진과 같이 입력합니다. 이루 Model output name에는 LoRA 학습 산출물의 이름을 입력합니다.
Parameters 설정
마지막으로 LoRA를 어떻게 학습을 할 것인지 Parameters를 설정합니다. LoRA > Training > Parameters > Basic
으로 들어갑니다. 설정이 많아서, 아직은 설정에 대해 잘 모르지만 아래 사진과 같이 설정했습니다.
LoRA > Training > Parameters > Advanced
로 들어갑니다.
그리고, Start training
버튼을 클릭하여 학습을 시작합니다.
이렇게하면 학습이 되어야 할텐데, MacOS M1에서는 아직 버그가 있어서 제대로 동작을 안하는거 같습니다. 아래 github 이슈처럼 라이브러리 버전도 바꾸고 이것 저것 해보고 있는데, 그래도 안되네요. 방법 찾게 되면 업데이트하겠습니다.
'IT' 카테고리의 다른 글
Media Stream 정의와 Streaming 기술 요소 (0) | 2024.05.02 |
---|---|
파이썬으로 RSI 계산하기 (업비트(Upbit) Open API 활용) (0) | 2024.03.04 |
EUC-KR와 CP949 인코딩 (한글 인코딩) (0) | 2024.02.02 |
MacOS에 쉽게 여러 버전의 JDK 관리하는 방법 (0) | 2024.01.01 |
macos에 nodejs 설치하기 (쉽게 node 버전 변경하기) (0) | 2023.11.17 |
IT 기술에 대한 글을 주로 작성하고, 일상 내용, 맛집/숙박/제품 리뷰 등 여러가지 주제를작성하는 블로그입니다. 티스토리 커스텀 스킨도 개발하고 있으니 관심있으신분은 Berry Skin을 검색바랍니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!