누구나 개발하고 디자인해요

스테이블 디퓨전 - 모델 직접 만들기

삼색치즈 2023. 12. 20. 12:54
반응형

안녕하세요!

여기서 스테이블 디퓨전 생성형AI를 통해 원하는 그림을 뽑기 위한 모델을 직접 만드는 과정을 공유드리려 해요

 

저도 다른 블로그 포스트들과 다른 튜토리얼들을 보고 따라하며 이렇게 정리할 수 있게 되었구요

꼭 이렇게 해야만 하는게 아니고, 제가 결과물을 보게 된 과정을 보여드리고자 작성하게 된 포스트로써, 

논리적 사고가 뛰어나신 분들은 스스로 원하는 모습에 가깝게 산출물을 만드실 수 있을것으로 예상됩니다!

 

제가 모델을 만들어본 이유는 스튜디오 내에 콘텐츠 제작 프로젝트가 다수 진행되고있는데,

회사의 2D 그래픽 에셋은 특정 톤이 있고 생성형 AI를 통해

더 많은 컨셉의 이미지들을 스튜디오 내 2D 그래픽 스타일로 만들어서 참고하고 싶었기 때문이에요

 

실제 그래픽 자원으로 사용하려면, 최종적으론 사람이 직접 수정 보완을 해줘야하지만,

참고할 수 있는 이미지가 있고 없고의 차이가 기획 속도에 있어 차이가 많이 나기 때문에 진행한 작업이었습니다~!

 

 

모델을 만들기 위해 학습할 이미지들을 미리 보유하고 있다는 가정하에 시작하는걸로 할게요

 

https://github.com/bmaltais/kohya_ss
위의 링크로 이동 후 아래로 내려가서 Installation 탭으로 이동해서 먼저 kohya_ss를 설치를 합니다

 

GitHub - bmaltais/kohya_ss

Contribute to bmaltais/kohya_ss development by creating an account on GitHub.

github.com

 

종합적으로는

kohya_ss 설치 - 사진 파일 정리 - 폴더 만들고 - 기본 설정 - 제작 <- 의 과정을 밟습니다

 

파이썬과 git과 비주얼 스튜디오를 제시하는 조건에 맞춰서 설치합니다

 

 

 

 

이 다음 cmd창을 킵니다

 

 

cd 명령어로 다운 받을 폴더로 이동 후 명령어 복사 붙여넣기로 실행합니다

 

 

설치가 완료되면 cd 명령어로 다운 받은 폴더로 이동(첫번째 빨간 네모 표시) 후

셋업 파일 실행(두번째 빨간 네모 표시)합니다

 

 

셋업 파일이 실행 되면 1을 타이핑하여 설치 진행합니다

Enter your choice: 1

 

이렇게 일력 후 키보드에서 Enter를 누르시면 되요!

 

 

첫번째 옵션이 뜨면 this machine 선택하고자 해당 단어를 입력 합니다

 

 

두번째 옵션에서 no distributed training 선택합니다

 

세번째 옵션이 뜨면 no를 입력합니다

 

 

네번째 옵션에서도 no를 입력합니다

 

 

다섯번째에도 NO!

 

 

여섯번째 옵션에서는 all을 입력합니다 

 

 

만약에 그래픽카드를(엔비디아 기준) gtx 3,000번대나 4,000번대 급을 사용한다면 CUDA 드라이버를 다운받아서
지정된 디렉토리에 압축을 풀어줍니다

 

 

CUDA 드라이버를 설치 해야해요

(저는 그래픽카드가 gtx 2000대라서 안했고 설치과정만 공유드립니다)

 

 

 

 

2번을 선택해야하니 2를 입력해서 드라이버를 설치합니다

 

(저는 드라이버를 설치 안해서 위의 과정까지 두 과정은 밟지 않았습니다)

 

 

그 다음 5번으로 kohya gui를 실행하거나

 

직접 폴더에서 kohya gui.bat 파일 실행합니다

 

 

만약 자동으로 안 뜨면 이렇게 빨간 네모의 주소를 인터넷 창에 입력하여 화면을 실행합니다

 

 

실행하면, 화면에 UI가 이렇게 떠요

 

 

그 다음, Auto Caption 작업을 위해서 Utilities 탭으로 이동합니다

 

 

그리고 Utilities 탭에서 BLIP Captioning 탭으로 이동합니다

 

Auto Caption 은 모델로 만들 이미지에 설명을 덧붙이는 작업으로

kohya gui가 먼저 이미지를 읽고 설명을 txt파일로 만들어주면 일일히 다 확인해서 원하는 설명으로 바꿔야 해요

프롬프트 형식으로요

 

표시된 버튼을 클릭하여 모델에 사용할 이미지가 있는 폴더를 선택합니다

 

 

 

 

 

 

 

제가 사용한 이미지들은 다음과 같아요 총 82가지를 사용했습니다

스튜디오내 콘텐츠 제작에 쓰인 2D에셋인데,

사용할 수 있는 이미지가 훨씬 많이 있는데도 많이 제외하고 82가지를 쓴 이유는

AI가 그림이 보여지는거 대로 이해한 그림들만 선별했기 때문이에요

 

 

자신의 폴더가 지정되면 Caption images 클릭합니다

 

위의화면이 캡션 작업이 진행중인 모습이에요

 

 

그리고 캡션 작업이 완료된 경우의 모습입니다

캡션 작업이 끝났다면 지정한 폴더로 이동하면

이미지들과 이미지의 텍스트 파일이 있어요

 

그러면 이미지 개별의 메모장 파일(.txt)을 열어서 키워드를 메모장 제일 앞에 입력해야해요

키워드를 넣는 이유는, 추후 이 모델을 사용하여 이미지를 생성할 때

해당 모델 인식을 더 잘하길 바라는 목적으로

저는 세상에 존재하지 않는 영문단어로 임의로 생성해서 했습니다

(실제 존재하는 단어로 해도 무방하지만 단어에 뜻이 있는 단어면 그 단어의 뜻으로부터 영향을 받을텐데 덜 받기 위해서)

 

처음에 txt 파일을 열면, 위의 경우 a bunk bed~이렇게 써있었는데,

맨 앞에 czob이라는 키워드를 따로 넣어준거에요

 

이미지에 대한 설명이 잘 들어갔는지 확인 후 수정 및 보완(그림에 대한 설명 추가)하는 과정을 이어서 진행합니다

수정및 보완은 안하더라도, 맨앞에 키워드는 모두 넣었습니다

 

 

이러한 캡션 작업이 끝났다면 LoRA 탭의 Training 탭으로 이동 합니다 

그 후 sdxl 모델로 설정을 맞춰줍니다

 

이 다음 folder 탭으로 이동해서 폴더를 세팅해주고 매치시켜줘야 하는데요

그에 대한 세팅을 해야해요

Folders에서 각 폴더를 열어서 해당 폴더를 세팅해줘야합니다

오른쪽 위에 있는 Regularisation은 Optional이라고 써있어서 지정해주지 않았어요

 

 

먼저 원하는 위치에 아무 폴더를 만들고 image, log, model 폴더를 만듭니다.

 

 

Image folder에 image폴더를 매치하고

Output folder에 model을 매치하고

Logging folder에 log를 각각에 지정 시켜줍니다

 

 

이 다음 image 폴더로 이동해서 폴더를 만듭니다 저는 3_objects라고 만들었는데, 이유는 아래에서 설명드릴게요

 

만든 폴더에 캡션텍스트 파일과 이미지 파일을 넣어줍니다

 

 

폴더 구조는 이렇습니다 image > 3_objects > 이미지와 캡션인 상태입니다

 

폴더의 이름이 3_objects 인 이유는 숫자_아무거나 식의 형식이어야 하는데,

앞의 숫자는 모델 제작시 반복 횟수고 이름은 제가 물체라는 뜻인 object라고 한거고 다수이니 s를 붙였고

 

숫자를 3으로 한 이유는.. 딱히 없습니다

여러 자료를 토대로 모델 만드는 과정에 있어서 학습하는 시도 반복횟수를 정해야하는데

수치는 정해진 답은 없고 사실 임의로 잡은거라고 보시면 되요

(100 이상으로 잡아도 됩니다)

 

그 다음 모델의 이름을 설정합니다

 

last라고 세팅했습니다 

 

그리고 parameters 탭으로 이동해서 기본 세팅을 설정합니다

 

여기 Parameters탭에서 언급안한 기본 수치들은 기본값을 고정시켰고

아래항목들을 다음과 맞췄습니다

epoch는 그래픽 카드 성능에 따라서 Train batch size는 1~3 정도 수치로 조절했습니다

epoch는 모델 생성하는 어떠한 단위 중 하나라고 합니다

 

epoch * repeat(폴더숫자) * num (총 학습 이미지 개수)의 숫자 만큼 반복해서 학습하는 방식이구요

 

 

train 수 만큼 동시에 진행하는데, 3일 경우엔 한번에 세 개씩 진행한다는거고,

성능이 부족하면 작동이 안될 수도 있기에

저는 그래픽카드가 gtx2060이라서 최하로 1로 설정했습니다 (그래픽카드가 좋으면 숫자를 크게 잡아도 되요)

 

그래서 이 모델에서는 epoch 100 , repeat 3, num 82, train 1 로 세팅했구요

아래의 start training 클릭해서 실행하면 모델을 만들게 됩니다

 

 

이런 과정을 진행하게 되요.

시간도 표기되는데 여기서는 32시간 55초가 보이네요

시간은 이 과정중에 변하기도 하고,

똑같은 값이여도 그래픽카드와 PC성능에 따라 시간은 천차만별로 다릅니다

 

과정이 마치면 모델 제작이 완료되고,

만들었던 model 폴더에 가보면

모델 파일이 생성됩니다

 

 

그리고 만들어진 모델 파일을 확장자가 safetensors로 나왔고,

해당 파일을 스테이블 디퓨전 프로그램 내 폴더인

\stable-diffusion-webui\models\Lora 폴더에 이동 시킨 후

모델 사용 설정 후 본인이 설정한 키워드와 함께 사용하면 됩니다!

 

 

 

제가 만든 모델로써 위의 이미지들은 해당과정 밟은 결과물이고 이렇게 나왔어요 ~!

 

반응형