목차 |
※ 2025-01-09 기준으로, 추후 세팅 방법은 변경될 수 있음
가상머신 준비
1. 리소스 생성()을 위한 리소스 그룹 생성
- 홈화면에서 리소스 그룹 클릭
- 구분 가능한 리소스 그룹명과 사용할 영역(리전) 선택 후 생성
2. 머신러닝 관련 리소스 생성을 위한 작업 영역 및 가상머신 생성
- 리소스 그룹에서 만들기 버튼 클릭
- 'Azure 서비스만' 체크 및 'machine learning' 검색 후 'Azure Machine Learning' 만들기 클릭
- 작업 영역 이름 작성 후 '검토+만들기' 클릭
- 리소스 그룹과 지역은 상위 리소스 그룹과 연결되어 자동 입력됨
- 스토리지 계정, 키 자격, Application insights는 자동으로 신규 생성되지만 필요할 경우 기존 선택 가능
- 작업 영역 배포 완료 후 '리소스로 이동' 클릭
- Studio web URL 클릭하여 스튜디오로 이동
- 관리>컴퓨팅으로 이동 후 '새로만들기' 클릭
- 가상머신 이름 및 크기 선택 후 생성 진행
- 일정 시간 유휴 시 자동 종료 설정 가능(디폴트 60분, ssh 포트 50000)
- 기본적으로 python 및 conda 설치되어있음
Stable-Diffusion 세팅
1. git에서 Stable Diffusion Webui Forge 다운로드 (편하게 유저 폴더에 다운로드 ㅎㅎ)
$ git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
2. stable-diffusion-webui-forge 디렉토리로 접근
$ cd ~/stable-diffusion-webui-forge
3. conda 가상환경 설정 만들기
- 현재(2025-01-09 기준) stable-diffusion이 가장 잘 동작하는 python 3.10으로 설정
$ conda create -n webui-forge python=3.10
4. conda 가상환경 활성화
$ conda activate webui-forge
5. Stable-diffusion 모델(체크포인트) 다운로드 받을 폴더로 이동
$ cd ~/stable-diffusion-webui-forge/models/Stable-diffusion
6. 각종 모델 다운로드
$ curl -H "Authorization: Bearer [허깅페이스 토큰]" https://huggingface.co/runwayml/stablediffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt --location --output v1-5-pruned-emaonly.ckpt
$ curl -H "Authorization: Bearer [허깅페이스 토큰]" https://huggingface.co/lllyasviel/flux1_dev/resolve/main/flux1-dev-fp8.safetensors --location --output flux1-dev-fp8.safetensors
7. VAE 다운로드 받을 폴더로 이동
- VAE : 이미지 생성 시 보완해주는 역할
$ cd ~/stable-diffusion-webui-forge/models/VAE
8. VAE 다운로드
$ curl -H "Authorization: Bearer [허깅페이스 토큰]" https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors --location --output ae.safetensors
9. Text Encoder 받을 폴더로 이동
- text encoder : stable diffusion이 단어 단위의 처리가 아닌 자연어 처리를 위해 문장 분석을 도와주는 역할
$ cd ~/stable-diffusion-webui-forge/models/text_encoder
10. Text Encoder 다운로드
$ curl -H "Authorization: Bearer [허깅페이스 토큰]" https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors --location --output clip_l.safetensors
11. apt 업데이트 및 Civit.ai 플러그인 다운로드
$ sudo apt-get update
$ sudo apt-get install libgoogle-perftools-dev
$ pip install civitdl
$ sudo apt-get install lynx w3m links
12. sd-webui 설치
- 설치 후 ESC 및 ctrl+c 를 통해 다시 나온다. (필요 패키지 등만 설치)
$ cd ~/stable-diffusion-webui-forge/
$ ./webui.sh
13. civit.ai(https://civitai.com/)에서 통해 원하는 모델 검색
- 해당 사이트를 통해 여러가지 체크포인트와 Lora 등을 다운로드 가능
- HuggingFace(https://huggingface.co/)에서도 검색 및 다운로드 가능(다운로드는 상위 다운로드 방법과 동일)
14. 다운로드 받을 폴더로 이동(Lora를 받을 예정이라 Lora폴더로 이동)
- Lora 등의 경우 별도 폴더를 생성하여 활용 필요(기본적으로 폴더 미생성)
$ cd ~/stable-diffusion-webui-forge/models/
$ mkdir Lora
$ cd cd ~/stable-diffusion-webui-forge/models/Lora
15. 모델 다운로드
$ civitdl [모델 ID] [다운로드받을 경로] -k [본인의 Civit.ai API Key]
ex) civitdl 128657 . -k 254s7cf02153f6e501570144n438d7fd
※ civit.ai 및 huggin face api 키 발급 방법(키값은 생성할때 한번만 보여주므로, 메모장 등 저장을 통해 별도 보관 필요)
- civit.ai
- 본인의 프로필 클릭 후 하단 톱니바퀴(설정) 클릭 > 하단의 API Keys 부분에서 'Add API key' 클릭
- Hugging Face
- 페이지 우측 상단 본인의 프로필 클릭 후 'Access Token' 클릭 > 'Create new token' 버튼 클릭
16. webui 실행
- --gradio-auth 부분은 웹페이지 접근 시 로그인 하는 설정으로, 해당 옵션 없이 실행하면 로그인 없이 접속 가능
- 해당 id와 pw는 실행 중에만 사용하므로, 실행 중지 및 재실행 시 마다 사라짐 혹은 재설정 가능
- 실행 시 Public URL을 통해 webui 접속 가능
$ cd ~/stable-diffusion-webui-forge/
$ ./webui.sh --share --enable-insecure-extension-access --gradio-auth id:pw
결과물 다운로드
cmd에서 scp 명령어로 다운로드
$ scp -i [경로\공용키.pem] -P 50000 [가상머신 os 유저 id]@[가상머신 ip]:[가상머신 내 다운로드 받을 파일경로] [본인 pc에 다운로드 받을 경로]
ex) scp -i C:/Users/abc/Downloads/pemkey/vm-key.pem -P 50000 azureuser@1.1.1.1:/home/azureuser/stable-diffusion-webui-forge/output.zip .
나의 출력물 😊