원본 코랩판 노트북 - https://arca.live/b/aiart/68697468


구름IDE LoRA 학습 노트북

https://drive.google.com/file/d/1d3z7VKk3JEU4a5xIsTDxuyri7eZ63JGc/view?usp=share_link


LoRA로 뭔가 만들고 싶지만 코랩판은 영문이라 뭔소린지 모르겠는 사람, 코랩으로 그림 뽑아야하는데 다른거로 돌리고 싶은 사람을 위한 구름판 LoRA 학습이 마참내!


구름 한번도 안쓴 사람이라 가정하고 말하는대로 하면 되도록 하나하나 설명할거임, 대충 용어 알고있으면 받고 집어넣어서 그냥 쓰면 됨


1. 구름 컨테이너 생성


https://ide.goorm.io/

당연하지만 구름IDE에서 쓰도록 구름에 들어가야함, 구글계정 로그인이 가능하니 바로 들어가자



들어가면 이런 화면이 보일텐데 우측 상단 [새 컨테이너] 클릭



다른거 대충하고 GPU에 NVIDIA Tesla T4 선택



아래 내려서 주피터 노트북 체크하고 오른쪽아래 생성하기



한참 기다려서 컨테이너가 완성되면 바로 실행해도 상관 없지만 아래 펼쳐서 Jupyter로 실행하기 한 상황에서 이어가겠음,

그냥 실행했으면 좌측 아이콘중에 주피터노트북 아이콘 누르면 똑같은 화면으로 넘어갈거임


2. 노트북 파일 업로드 및 기본 환경 구성


위에 올렸던 이 파일 안받았으면 받아두자

구름IDE LoRA 학습 노트북

https://drive.google.com/file/d/1d3z7VKk3JEU4a5xIsTDxuyri7eZ63JGc/view?usp=share_link



들어간 화면에서 오른쪽에있는 [Upload] 클릭

위에서 받았을 kohya_LoRA_dreambooth_goorm.ipynb 선택함



업로드 버튼 눌러서 확인



그럼 업로드 된거니 들어간 파일 클릭



들어가면 이리저리 설명 많이 있을텐데 설명 적어둔 것 처럼

pip install --upgrade pip

pip install --upgrade torchvision==0.14.0

pip install prettytable

apt-get update

apt install -y libgl1-mesa-glx

이 문구 그대로 죄다 복사(Ctrl+C)해서



아래있는 터미널에 붙여넣기(Ctrl+V)해줌



한참 지나면 이런 화면일텐데 마지막줄이 걸려있는 상태니 엔터 한번 해주고



이 화면 되면 다 된거임


3. 무지성 Run 누르기



아래 조금 내려서 저 파란색 선택상태인거 보고 위에있는 [▶Run]을 한번씩 툭툭 눌러준다.

* 일부 모델은 허깅페이스로 받으려면 로그인이 필요하므로 write_token 부분에 자기 허깅페이스 토큰 넣어주면 된다. 근데 굳이?



하다보면 저 부분이 좀 오래 걸릴텐데 아래 분홍색 경고창 한번 뜨면 잘 된거임

저건 무시해, 우분투 버전때매 생긴 glibc 버전문제 같은데 신경 안써도 됨



위에서 write_token에 뭐 안적었으면 여긴 넘겨도 됨



그 다음으로 학습과 테스트에 쓸 모델 다운로드인데... 다른거로 받고싶으면 저 위에 적혀있던 링크중 하나 저기 넣어주면 됨

근데 테스트를 저 AbyssOrangeMix2_nsfw 버전만 해본지라 다른것도 잘 될지는 몰?루

VAE도 일부러 없이 학습 진행했으니 잘 모르면 그냥 저기 선택된 상태로 Run버튼 2번 툭툭 누르면 됨



그럼 이렇게 모델 받을거임, 만약 안받아지면 다시 위에 선택하고 Run 눌러보면 아마 될거임

나머지 기능으로 받는것도 있긴 한데 그거 쓸 정도면 알아서 잘 받겠지 뭐



다음으로 해당 부분 선택하고 Run 2번 눌러줘서 바로 아래쪽 셀까지 실행한 뒤에

* 폴더명 바꾸고싶으면 저 reg_repeats, train_repeats, conceptname, class_name 바꿔주면 됨, 실제 학습과 무관하게 폴더 생성만을 하므로 원하는대로 바꿀 것



왼쪽 위에 있는 프로젝트 눌러서



새로고침 한번 하면 프로젝트 안에 repository 폴더 생긴거 확인 가능함



해당폴더 열어보면 생성된 학습폴더(생성된건 내가 테스트한다고 작성한 기본이름)가 있는데



니가 모아놓은 데이터 저기 넣으면 된다

당연하지만 이미지마다 같은 파일명의, 태그가 작성된 .txt 파일 하나씩 있어야함


그 아래에 # 부루 Scraper 라고 주석달린 셀이 있는데

그건 위에있는 booru_down = False 에서 False를 True로 바꾼 뒤 해당 셀을 돌리면 동작함,

그러면 그 아래 설정인 태그쪽에 맞는 이미지 알아서 긁어오고 태그도 같이 .txt형식으로 가져옴

당연하지만 그림 퀼리티가 지멋대로에 ~컨셉 식으로 그려진 것들도 얄짤없이 섞여오므로 진짜 학습데이터 할거 찾기 너무 귀찮은게 아니면 쓸일 없음

닼던 그림체 해봐야지 히히 하고 써봤는데 에로모드 스킨이랑 짱구 불고기로드 패러디 그림같은게 쌓여있더라...

특정 작가 그림체 LoRA 만들거 아니면 그냥 안쓰는걸 권장함



만약에 그림'만' 있고 태그를 만들어두지 않았으면 자동태그기능 써야함, 만약 이미 태그 잘 넣었으면 이 부분은 무시

start_labeling에 "BLIP_Captioning", "WD_1_4_Tagger" 둘 중 하나 적으면 되는데

"BLIP_Captioning"은 자연어 형식으로, "WD_1_4_Tagger"은 단부루 태그 형식으로 알아서 만들어줌

당연하지만 AI가 알아서 붙이는거니 원하는것과 다른 결과가 나올 수 있고, 태그에 따라 LoRA 성능차이가 나는거 감안해야함



그 다음부분인데 저 화살표 부분만 수정하고 Run버튼 계속 눌러주면 됨



그럼 이런게 나올텐데 학습 진행중인거고



잠시뒤에 해당 창 아래쪽에 steps 해서 나오면 진행 되고있는거임



다 되면 기본 설정으로 10 epoch중 2 epoch마다(중간저장을 save_n_epoch_ratio으로 save_n_epochs_type_value를 5로 줬어서 10 epoch를 5로 나눈 2마다 저장) 저장했을거임



마지막으로 테스트 부분인데 작성할만한 부분은 WebUI에서 넣던 그런 값들인거 뻔히 보이니 설명 생략



모든 과정 끝나면

repository/dreambooth/train_data = 학습에 사용한 데이터

repository/dreambooth/output = 학습한 결과물

repository/pre_trained_model = 사용하기 위해 받은 모델

repository/tmp = 테스트 결과물

이렇게 남아있을거임


tmp에 들어있는 데이터(VAE 사용 안함)


AbyssOrageMix2_sfw + 베리믹스VAE + 만든LoRA0.5

캐릭터 특징 태그 포함 일부 넣어 돌린 것


학습 태그 중 sunaookami shiroko, blue archive 외에는 퀼리티 태그만 + 만든LoRA1


개인적으로 학습데이터를 일반 교복 말고 수영복이나 라이딩도 섞어서 40장 쑤셔넣은거라 의상지정 안하니 수영복이 나와버리기도 하고, 내가 선정한 그림 퀼 문제 혹은 오버피팅 문제인지 LoRA 가중치 약간 세게 주면 그림 흐릿해짐


그래도 다른 LoRA와 마찬가지로 잘 나오는 편


손볼게 많지만 그래도 되긴 하니 만든거 구드쪽 링크

https://drive.google.com/file/d/1b2ZkT6YZS4a9d3WrruDuEKBecnFJvJOj/view?usp=share_link


여튼 이렇게 됨 ㅇㅇ


주요 변수 바꿀것들은 다 한국어로 설명 대충 적어놨으니 제대로 할 사람은 알아서 해볼 것,

xformers 사용 안하면 CUDA out of memory문제 터지니 xformers 무조건 적용할 것


그 외에 문제 생기면 여기 댓글 달아줘

내가 적은 설명 이상한거 있으면 알려주고, 나도 대충 겉핥기로 확인하고 한거라 잘못 적은거 있을 수 있음


이제 닼던 스프라이트들 클립스튜디오로 조립한것들로 붕괴/영기 LoRA 만들 준비하러감