
서론
요즘은 Dall-e, midjourney, stable-diffusion 등 생성형 이미지를 "딸깍" 한번으로 만들어주는 사이트들도 많고, 본인의 컴퓨터 사양(특히 GPU)이 좋은 사람들은 로컬 환경에서 stable-diffusion webui(이하 webui), compyui 등을 통해서 이미지를 생성할 수 있는 시대입니다.
그렇다보니 이러한 이미지 생성 기능을 활용한 프로그램이나 웹 사이트를 구축해보려는 개발자들도 많은데요...
저도 이미지 생성 ai에 관심이 생겨 로컬에서 webui를 이용하여 이미지 생성 좀 해보다보니
여기서 나아가 이미지 생성 기능을 제공하는 웹 사이트를 만들면 어떨까하여 공부하게 되었고 그 과정에서 얻게 된 정보를 정리하고자 합니다.
기본조건
* nvidia gpu가 장착된 pc
* 기본적으로 생성 ai쪽은 nvidia의 Cuda 관련 라이브러리를 많이 사용하므로, 호환성을 위해 nvidia gpu가 장착된 pc가 필요합니다.
* 최소 GTX 1660 6gb 이상의 gpu가 필요. 권장: RTX 4060 Ti 16gb
* 생성쪽은 cuda 프로세서의 성능보다는 뻥(?)파워라 할 수 있는 gddr램의 크기가 더 중요합니다. (모델 로드 시 많은 메모리를 사용)
* os: ubuntu 22.04 운영체제 사용
가상 환경 생성
기본적인 환경은 위와 같이 우분투 os 환경에 언어는 python 기반으로 한 가상 환경을 만듭니다.
# conda 를 이용한 가상 환경을 구축한다고 가정
conda create -n 가상환경명 python=3.10
diffusers 패키지 설치
diffusers 패키지는 생성 ai에서 가장 유명한 커뮤니티인 hugging face에서 제공하는 이미지 생성 패키지인데, 위 패키지에서 제공하는 pipeLine을 통해서 쉽게 이미지 생성 코드를 구축할 수 있습니다.
아래와 같이 진행
# 생성한 가상환경 활성화
conda activate 생성한가상환경명
# 해당 가상환경 내에서 설치를 진행
conda install -c conda-forge diffusers
pytorch 관련 패키지 설치
cuda 11.8 을 기준으로 설명합니다.
pip install xformers==0.0.27.post2+cu118 -f https://download.pytorch.org/whl/xformers/
pip install torch==2.4.0+cu118 torchvision==0.19.0+cu118 --index-url https://download.pytorch.org/whl/cu118
그 외 필요한 패키지 설치
fastapi, uvicorn, pymongo 등 기본 개발에 필요한 패키지가 있다면 설치하면 됩니다.
저의 경우에는 fastapi로 api 구축, mongodb를 사용할 예정이라 pymongo 설치 등을 진행하였습니다.
아래는 제가 개발 시에 필요하여 설치한 패키지 목록(requirements)입니다. 필요시 참고하세요.
fastapi
uvicorn[standard]
motor==2.5.1
pydantic[email]~=1.9.0
python-decouple==3.6
python-dotenv~=0.19.2
pymongo~=3.12.3
requests~=2.27.1
python-dateutil~=2.8.2
humps~=0.2.2
pytest~=7.1.1
httpx~=0.23.0
thop~=0.1.1
numpy~=1.23.5
pandas~=1.4.2
tqdm~=4.64.0
starlette~=0.37.2
config~=0.5.1
bcrypt~=3.2.0
python-jose
python-multipart
gunicorn
paramiko
python-daemon
netifaces
pyyaml
psutil
redis
python-nmap
websockets
compel
redlock-py