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 해결
Python3.10 설치
이것도 따로 정리한 글이 있어서.. 아래 링크에서 설치하고 오세요..ㅎㅎ;
2023.03.25 - [AWS] - [Cloud9] Amazon Linux 2 에서 Python3.10 설치하기
설치가 잘 됐다면 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 인기모델 리스트 및 링크
cloud의 public ip 라서 모바일에서도 접속이 됩니다.
'AWS' 카테고리의 다른 글
AWS Cloud9 에서 Selenium 으로 크롤링 하기(Amazon Linux2) (2) | 2023.08.01 |
---|---|
AWS Cloud9 에서 Selenium 으로 크롤링 하기 (Ubuntu) (0) | 2023.08.01 |
[Cloud9] Amazon Linux 2 에서 no space left on device 해결 (4) | 2023.03.25 |
[Cloud9] Amazon Linux 2 에서 Python3.10 설치하기 (0) | 2023.03.25 |
[AWS] Cloud9 ubuntu 환경 생성하고 python 3.10 설치하기 (0) | 2023.03.25 |
댓글