반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

가끔 보자, 하늘.

Stable diffusion을 업무에 활용하기 #1 설치 본문

개발 이야기/개발툴 및 기타 이야기

Stable diffusion을 업무에 활용하기 #1 설치

가온아 2023. 3. 8. 10:41

저작권 문제로 말도 많지만 파인튜닝으로 사내 작가들의 일러스트를 학습시켜 사용한다면 괜찮지 않을까 하는 생각에 시도해 보았습니다. 

이걸로 만들어서 바로 사용하지는 못하고 어느 정도 원작자의 리터칭을 거쳐야 완성본이 되기 때문에 초안 작성 및 포즈 스케치 정도로 사용하는게 적절하지 않을까 생각되네요.

이 글에서는 LoRA 혹은 DreamBooth와 ControlNet을 이용해 특정 한 캐릭터의 일러스트를 학습시키고 그 캐릭터가 다양한 포즈를 취한 결과물을 빠르게 생성할 수 있는 과정을 정리하겠습니다. 

1. WEBUI 설치

우선 webui를 설치합니다. (stable diffution과 webui에 대한 기본적인 설명은 생략합니다. "목적"을 이루기 위한 과정에만  집중!!)

세팅 환경 - Windows 11 , NVIDIA GeForce RTX 3060 (12GB / GDDR6)

git hub : https://github.com/AUTOMATIC1111/stable-diffusion-webui

설치 후 실행을 해보세요.

  • webui.bat를 실행 하면 꽤 오랜 시간이 소요됩니다.
  • 다른 PC에서도 접근할 수 있도록 --listen 옵션을 추가했습니다. 로컬에서만 사용할 예정이면 굳이 필요없는 옵션입니다.
  • 실행 시 기본적인 리소스를 다운받기 때문에 꽤 많은 시간이 소요됩니다.
> mkdir webui
> cd webui
> git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
> cd stable-diffusion-webui
> webui-user.bat or webui.bat --listen

2. fine tuning을 위한 trainer 설치

여기서는 Dreambooth와 LoRA를 이용해 traning 하는 방법을 알아보겠습니다. 

webui extensionkohya 두 trainer 중 어느 것을 사용해도 됩니다. 

2-1. WEBUI extension으로 설치하기

Extensions - Available 탭에서 Dreabooth  항목을 확인할 수 있습니다. 오른쪽의 install 버튼을 누르시면 바로 설치가 됩니다.

(* WEBUI의 Extensions 탭에서 Dreabooth를 검색해 설치합니다.)

WEBUI의 extension 설치 시 발생할 수 있는 에러가 몇 가지 있습니다.

extension access disabled because of command line flags : 시작 시 --listen 옵션 추가할 경우 (listen 옵션은 서버를 localhost가 아닌 할당된 ip로 오픈하는데 왜 이런 이슈가 발생하는지는 코드를 상세히 보지는 않았습니다. 굳이...)

기타 설치 에러 시 아래와 같은 화면이 출력될 수 있습니다.

Dreambooth 사용을 위해 필요한 라이브러리들이 정상적으로 설치되지 않은 경우입니다. 이런 경우 WEBUI에서 재설치하는 인터페이스를 지원하지 않기 때문에 처리가 힘들 수 있습니다.

(* 오도가도 못하는 상황)

위의 예를 들어 설치해야 하는 사항들을 하나씩 확인해서 정상적으로 설치되도록 해보겠습니다.

  • extensions/sd_dreambooth_extension 폴더에서 python -m pip install -r requirements.txt를 실행합니다.
  • Extensions 탭의 Installed 의 "Apply and restart UI" 버튼을 클릭합니다

다른 익스텐션들도 가끔은 문제가 발생하는 경우가 있습니다. 이런 경우 제대로 설치되지 않거나 버전 이슈가 없는지 이와 같이 살펴보면 됩니다. 설치가 잘 되었다면 Dreambooth 탭이 생성된 것을 확인할 수 있습니다.

2-2. Kohya 설치하기

kohya는 Windows에 최적화된 Gradio GUI를 사용해서 Windows가 아닌 OS에서는 kohya docker 프로젝트를 이용해야 한다고 하네요. (저도 Windows 환경이라 다른 OS에서는 직접 사용해보지는 못했습니다. Gradio는 ML App을 위해 웹 인터페이스를 손쉽게 구축할 수 있는 python library인 듯 하네요. 홈페이지 참조. 근데 WEBUI도 Gradio 쓴 듯 한데 ...)

설치 순서는 아래와 같습니다. 쭉 적으니 순서대로 실행해 보시면 됩니다. 윈도우 기준이며 리눅스(ubuntu)의 경우 ununtu_setup.sh를 사용하면 간단히 설치가 가능하다고 합니다. 아래 설치 과정은 Powershell 관리자 권한으로 실행해야 합니다.

> mkdir kohya_ss && cd kohya_ss
> python -m venv venv # 빌드를 위한 python 가상 환경 생성
> .\venv\Scripts\activate # 가상환경 콘솔 활성화
# library 설치, 오래 걸립니다.
> pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
> pip install --use-pep517 --upgrade -r requirements.txt
> pip install -U -I --no-deps https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/f/xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl
# 실행에 필요한 dll 및 스크립트 파일들을 venv 경로에 복사
> cp .\bitsandbytes_windows\*.dll .\venv\Lib\site-packages\bitsandbytes\
> cp .\bitsandbytes_windows\cextension.py .\venv\Lib\site-packages\bitsandbytes\cextension.py
> cp .\bitsandbytes_windows\main.py .\venv\Lib\site-packages\bitsandbytes\cuda_setup\main.py
# config 설정
> accelerate config

accelerate config 를 실행하면 아래와 같은 화면이 출력됩니다.

이런 식으로 선택을 하게 되는데, 지금 설치하는 PC에서 모든걸 처리할 경우는 모두 기본값을 선택하면 됩니다. 아래 나열된 목록을 선택하세요.

  • (선택)This machine
  • (선택)No distributed traning
  • (입력)NO
  • (입력)NO
  • (입력)NO
  • (입력)all
  • (선택)fp16 

(* 선택 시 화살표 누릐면 코드 에러 나는 경우가 있습니다. 상단이 숫자키 0부터 시작하니 첫번째 선택 시는 그냥 enter, 두번째 선택시는 1번키를 누르시면 됩니다.각 옵션의 상세 설명이 필요하신 분은 댓글로 요청 해주세요.)

이제 gui.bat 를 실행하면 다음과 같이 출력됩니다. 웹 브라우저를 사용해 접속을 시도합니다.

그럼 아래와 같은 UI 화면을 볼 수 있습니다.

이제 설치는 완료되었습니다.

다음은 실제 학습할 가상의 이미지를 선택해 학습을 시키고 그 결과를 만들어 보겠습니다.

 

 

반응형