본문 바로가기
AWS

[AWS] Cloud9 으로 Stable-Diffusion WebUI 띄워서 접속하기

by bryan.oh 2023. 3. 26.
반응형

AWS Cloud9
Stable-Diffusion
WebUI

 

Amazon Linux 2 에서만 됩니다.

 

Amazon Linux 2023 은 다른 방법으로 해야하고, 글 작성하면 링크 남기겠습니다~

 

aws 계정이 있어야합니다.

 

인스턴스 생성

Cloud9을 검색해서 서비스로 이동.

 

Create environment 클릭

 

Instance 정보를 입력합니다.

Instance Type 사양이 너무 작으면 webui 에 필요한 환경 설치 및 실행이 느릴수 있습니다.
디스크 용량이 적어도 30GB 정도가 필요합니다. 여유가 있다면 40GB정도가 좋겠네요.
(RAM 용량과는 무관합니다. 인스턴스 생성 후 space 를 늘려줄겁니다.) 

그리고 페이지 최하단에 Create 버튼을 눌러줍니다.

생성된것을 확인하고 Open 을 눌러줍니다.

 

중요!

화면이 뜨면, 우선 용량부터 늘려줘야합니다. webui 가 꽤 많은 용량을 필요로 합니다. 아래 링크에서 용량부터 늘리고 오세요~

최소 30. 가능하면 40.

2023.03.25 - [AWS] - [Cloud9] Amazon Linux 2 에서 no space left on device 해결

 

[Cloud9] Amazon Linux 2 에서 no space left on device 해결

Cloud9 Amazon Linux 2 no space left on device 참고 : Cloud9 에서 Ubuntu 로 생성했다면, 아래 방법으로 해결되지 않습니다. 이 글은 Amazon Linux 2 로 생성했을 경우 space를 늘리는 방법입니다. root 경로에 resize.sh

hello-bryan.tistory.com

space 변경 전 / 후

 

Python3.10 설치

이것도 따로 정리한 글이 있어서.. 아래 링크에서 설치하고 오세요..ㅎㅎ;

2023.03.25 - [AWS] - [Cloud9] Amazon Linux 2 에서 Python3.10 설치하기

 

[Cloud9] Amazon Linux 2 에서 Python3.10 설치하기

Amazon Linux 2 에서 Python3.10 설치하기 아래 명령어 실행 sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum erase openssl-devel -y sudo yum install openssl11 openssl11-devel libffi-devel bzip2-devel wget -y python 설치

hello-bryan.tistory.com

설치가 잘 됐다면 python3 -V 했을 때 Python 3.10.x 로 나와야 합니다.

 

WebUI 설치

다시 기존 경로로 와서 (Python-3.10.6 폴더에서 cd .. 으로 상위 폴더로 갑니다.)

현재 폴더는 ~/environment $

 

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

# 권한부여  (현재 로그인된 유저 확인 명령어 : id) 
# 저는 유저 아이디랑 그룹이 ec2-user 라서 ec2-user:ec2-user 로 입력합니다. 각자 {유저:그룹} 으로 명령어 날리세요.
sudo chown -R ec2-user:ec2-user stable-diffusion-webui/

cd stable-diffusion-webui
python3 -m venv venv/

# 설치 중 오류가 발생했을 때 가상환경에 pip install을 하기 위해서, 가상환경 실행
source venv/bin/activate

# webui 설치 / 실행
./webui.sh    # gpu 있으면
./webui.sh --skip-torch-cuda-test   # gpu 없으면

최초 실행이라면 5분정도 걸릴듯 합니다.

 

# 오류 해결

sudo yum install lzma liblzma-dev -y
sudo yum install python-backports-lzma -y
sudo yum install xz-devel -y
pip3 install backports.lzma

cd /usr/local/lib/python3.10
sudo vi lzma.py
# lzma.py 라는 파일을 수정합니다.

# 27번째 줄 정도 보면
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties
# 이렇게 되어있는데 이거를 아래와 같이 변경
try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties
<참고> vi 명령어 
  i 누르면 입력모드
  입력모드에서 esc 누르면 입력모드 빠져나오기
  dd 한줄 지우기
  : 누르고 wq 입력하고 엔터키는 저장하고 나오기
  : 누르고 q! 입력하고 엔터키는 저장하지 않고 나오기

이렇게 하고 다시 기존 경로로 와서 똑같이 명령어 실행하면 아래와 같은 오류가 또 발생합니다 ㅎㅎ;

아래 명령어로 미리 해결.

sudo yum install -y mesa-libGL libgl1 libglib2.0-0
pip3 install opencv-python-headless==4.5.1.48
# 이거 설치 중 오류가 발생하지만 괜찮음.
# 다시 명령어 실행.
./webui.sh    # gpu 있으면
./webui.sh --skip-torch-cuda-test   # gpu 없으면

이렇게 나오면 실행이 되는것입니다.

로컬이라면 브라우저 열고 localhost:7860 으로 접속하면 페이지가 보였겠지만, Cloud9 에서 실행한 것이고

외부에서 접근하기 위해서는 network setting 이 필요합니다.

네트워크 설정

서비스 검색에서 EC2 > 보안그룹 으로 들어갑니다.

 

8080 포트를 사용하도록 합시다.

 

터미널에서, 실행중인 webui 를 ctrl + c 로 중단하고

8080 포트로 다시 실행합니다.

./webui.sh --skip-torch-cuda-test --listen --port 8080 --precision full --no-half

 

그리고 pulbic v4 ip 로 접근해봅니다.

브라우저에서 저 ip 에 8080 포트를 붙혀서 접속해봅니다.

저의 경우에는 http://3.35.6.157:8080 입니다.

잘 뜹니다.

public ip 이기 때문에 어디에서든 접속이 가능합니다.

 

Realistic model 추가

hugging face 의 check point 를 다운로드 받기만 하면 됩니다.

Ctrl + c 로 실행중이던 webui 를 중단하고 아래 폴더에 가서 모델을 다운로드 받습니다.

cd models/Stable-diffusion
wget https://huggingface.co/SG161222/Realistic_Vision_V1.4/resolve/main/Realistic_Vision_V1.4-pruned-fp16.safetensors
cd ..
cd ..

그리고 다시 명령어를 날립니다.

# gpu 없고, 8080 에서 실행, 그 외 오류 해결하는 명령어 추가
./webui.sh --skip-torch-cuda-test --listen --port 8080 --precision full --no-half

 

Realistic_Vision_V1.4..를 선택해서 생성해봅니다.

잘 나오네요.

인스턴스 성능에 따라서 생성 속도가 약간씩 다르겠지만, 한 15~20초 정도 걸리는듯합니다.

 

Realistic 모델 외에 다른 것들도 해볼 수 있습니다.

2023.03.23 - [AI] - Hugging Face txt2img 인기모델 리스트 및 링크

 

Hugging Face txt2img 인기모델 리스트 및 링크

왼쪽부터 순서대로 Realistic_Vision_V1.4.ckpt anything-v4.0-pruned-fp16.ckpt sd-v1-5-inpainting.ckpt mdjrny-v4.ckpt moDi-v1-pruned.ckpt dreamlike-photoreal-2.0.ckpt (링크는 hugging face repository 주소입니다) 어떤 모델이 좋다고 할

hello-bryan.tistory.com

 

cloud의 public ip 라서 모바일에서도 접속이 됩니다. 

 

 

728x90
반응형

댓글