ComfyUI로 Stable Diffusion 시작하기 (가상 환경을 곁들인)
AI 대중화 시대, AI를 활용한 디지털 콘텐츠 제작은 평소에 관심있게 보던 분야였다.
아이디어만으로 다양한 콘텐츠를 제작할 수 있다지만 실제로 사용할 수 있는 고퀄리티 작업물을 만드려면 많은 노하우와 기술에 대한 이해가 필요해보였다.
그러다 기회가 되어(업무에 적용하기 위해..) ComfyUI에 대해 공부한 것들을 기록해본다.
ComfyUI는 Stable Diffusion 모델의 파이프라인을 노드 기반으로 제어할 수 있는 GUI이다.
🖼️ Stable Diffusion
처음에 아무것도 모르는 상태로 시작했기 때문에 Stable Diffusion은 또 뭔가.. 하고 구글링을 하는 것으로 시작했다.
Stable Diffusion은 훈련 데이터에서 학습한 패턴을 바탕으로 만들어진 딥러닝 이미지 생성 모델이다.
이 모델을 사용하여 여러 툴이나 인터페이스에서 이미지 생성 작업을 수행하게 되는 것이다.
Stable Diffusion 모델 기반으로 하는 ComfyUI를 시작하기 앞서, 초보자들도 쉽게 접근할 수 있다는 Automatic1111을 먼저 사용해보았다.
🖼️ Automatic1111
github: https://github.com/AUTOMATIC1111/stable-diffusion-webui
GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.
github.com
설치하고 웹 링크를 실행하면 아래와 같이 나올 것이다.
텍스트를 이미지화 하는 tex2img 그리고 tex2img로 생성된 이미지나 가지고 있던 이미지 소스를 기반으로 변형할 수 있는 img2img 방법을 사용해보았다. 텍스트 프롬프트를 어떻게 입력하는지에 따라 많이 달라진다.
중심적으로 살펴볼 것은 ComfyUI이기 때문에, 간단하게 불쌍한 햄토리 밈을 input으로 사용하여 공손한 햄토리를 출력해보는 것 정도로 Automatic1111은 이만 넘어가본다.
🖼️ ComfyUI
ComfyUI는 이렇게 생겼다.
기존에 사용하던 노드 베이스 개발 툴들에 익숙해져있어 ComfyUI의 첫 모습은 딱히 낯설지 않았다.
설치 방법은 두 가지가 있다. Pre-built 패키지와 수동 설치 방법이다.
🔹 ComfyUI 설치 방법 1 : Pre-built Packages
가장 간단할 수 있는 방법이다. 아래 링크 페이지에서 파일을 다운로드하고 압축을 푼다음 배치파일을 실행시키기만 하면 된다.
github: https://github.com/comfyanonymous/ComfyUI
GitHub - comfyanonymous/ComfyUI: The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. - comfyanonymous/ComfyUI
github.com
ComfyUI_windows_portable_nvidia.7z 이름의 파일을 받게 되는데 원하는 곳에 압축을 풀고 .bat 이 붙은 파일을 실행하면 된다. Nvidia gpu를 사용하고 있는 시스템이라면 run_nvidia_gpu.bat을 실행하고 그렇지 않다면 cpu를 사용하는 run_cpu.bat을 실행한다.
🔹 ComfyUI 설치 방법 2 : 수동 설치 + 가상 환경
Pre-built 배치 파일을 사용해서 ComfyUI를 사용하던 중. 기존에 설치한 Python 버전과 라이브러리 버전 충돌 등... 이유로 특정 커스텀 노드를 사용하는데 문제가 있었다. 심지어 ComfyUI 실행이 안되기도.. 추후 어떤 이슈가 있었고 어떻게 해결했는지에 대한 포스팅도 올릴 예정이다.
뭐가 문제인지 몰라 이 버전 저 버전 설치하고 지우고 몇 번하다가 가상 환경을 만들기로 했다.
가상 환경이란 소프트웨어 개발에서 서로 다른 프로젝트가 독립적으로 필요한 패키지와 의존성을 관리하도록 도와주는 격리된 환경이다. 이를 통해 각 프로젝트가 고유한 설정을 유지할 수 있으며 다른 프로젝트와의 충돌을 방지할 수 있다. AI 분야에서도 많이 쓰인다고 한다.
1. Miniconda 설치하기
가상 환경을 만들기 위해 Anaconda의 경량화 버전인 Miniconda를 사용했다. (무료이다)
다운로드 : https://docs.anaconda.com/miniconda/
Miniconda — Anaconda documentation
These three commands quickly and quietly download the latest 64-bit Windows installer, rename it to a shorter file name, silently install, and then delete the installer: curl https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -o minic
docs.anaconda.com
2. 가상 환경 만들기
설치가 완료되면, Anaconda Prompt 앱이나 cmd를 켜서 명령어를 통해 가상 환경을 만든다. (본인은 Vscode에서 ComfyUI 설치 경로 폴더를 열고 cmd 명령을 주었다)
conda create -n (프로젝트 이름) python=(버전)
* Python 3.10 버전으로 생성했다. 일부 종속성(Dependencies) 문제를 일으키는 Python 버전이 있기 때문에 많은 사람들에게 인증된 버전인 3.10로 만든 것.. 상황에 따라 다를 수 있다.
3. 가상 환경 리스트 보기
가상 환경이 잘 생성되었는지 보기 위해서 가상 환경 리스트를 불러오는 코드는 아래를 사용할 수 있다.
conda info --envs
4. 가상 환경 활성화
위에서 만든 프로젝트 명이 나온다면 잘 생성된 것이다.
그렇다면 아래 명령어로 활성화 한다.
conda activate (프로젝트 이름)
5. 수동으로 ComfyUI 설치
Https 프로토콜로 Git 저장소 clone하기. (ComfyUI 설치 되어 있으면 생략 가능)
git clone https://github.com/comfyanonymous/ComfyUI.git
6. Pytorch와 Dependencies 설치
가상 환경을 활성화하고 Stable pytorch와 Dependencies 설치한다.
Nvidia 사용자 임으로 아래 이미지의 표시된 부분의 명령어를 사용할 것이다.
// Pytorch
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
// Defendencies
cd ComfyUI
pip install -r requirements.txt
* Stable pytorch 대신 퍼포먼스 향상을 위해 Pytorch nightly를 사용할 수 있는데 약간 risky.. 위험할 수 있다고 해서 설치하지 않는다.
* Dependencies의 경우 CompfyUI 폴더 내에서 터미널을 열어 설치한다.
7. ComfyUI 실행하기
아래 명령어를 치고 기다리면 웹 링크가 나온다. 클릭하면 ComfyUI 윈도우 창이 열린다.
cd ComfyUI
Python main.py
ComfyUI는 외부 Custom node와 다양한 학습 모델들을 적용할 수 있다.
이를 편리하게 세팅하고 관리하기 위한 Manager는 거의 필수적으로 설치해야한다. 관련해서는 다음 포스팅으로 다룰 것이다.