안녕하세요
처음 AI가 등장하여 그림을 그려줄 때, 많은 사람들이 놀라움을 금치 못했습니다. AI와 예술의 만남이 앞으로 우리 삶에 새로운 가능성을 열어주고 있는 것처럼 느껴졌습니다. 이번 포스팅은 이러한 AI에 대한 내용, 바로 ComfyUI와 Stable Diffusion에 대한 내용입니다.
Stable Diffusion은 이미지 생성 AI 모델로 주어진 텍스트 설명을 바탕으로 고품질의 이미지를 생성할 수 있습니다. 이 AI 모델의 발전을 통해 더욱 자연스러운 이미지를 생성하며, 사용자가 원하는 이미지를 정확하게 구현할 수 있도록 돕습니다. 그리고 ComfyUI는 복잡한 이미지 생성 작업을 누구나 쉽게 할 수 있도록 돕는 강력한 도구입니다. 이 프로그램은 사용하기 쉬운 그래픽 인터페이스를 제공하여, 코딩을 몰라도 멋진 이미지를 만들 수 있게 합니다. ComfyUI는 시각적인 노드 기반 인터페이스를 사용하여, 이미지를 만들기 위한 여러 요소들을 블록처럼 연결하면 됩니다. 마치 레고 블록을 조립하듯이 말이죠. 이를 통해 복잡한 과정을 이해하기 쉽게 만들어줍니다.
그럼 이 두 가지 도구를 로컬 환경에서 어떻게 작동시는지 방법에 대해서 알아보도록 하겠습니다.
1. ComfyUI란
ComfyUI는 Stable Diffusion 모델을 위한 강력하고 모듈식의 GUI(Graphical User Interface) 및 백엔드 시스템으로, 그래프, 노드, 플로우차트 기반의 인터페이스를 사용하여 복잡한 작업 흐름을 설계하고 실행할 수 있습니다. 사용자는 코드를 작성할 필요 없이 다양한 노드와 그래프를 연결하여 이미지를 생성하고, 이를 통해 Stable Diffusion 작업을 직관적으로 수행할 수 있습니다. 특히, ComfyUI는 웹 기반 UI와 달리 블렌더나 터치 디자이너와 같은 프로그램을 사용해본 사용자들에게 친숙한 방식으로 워크플로우를 구성할 수 있는 접근 방식을 제공합니다. 아래 이미지가 바로 ComfyUI 시스템입니다.
ComfyUI 깃허브 - https://github.com/comfyanonymous/ComfyUI
2. ComfyUI의 주요 특징
- 노드 기반 워크플로우: ComfyUI는 사용자가 노드를 연결하여 워크플로우를 구성할 수 있도록 합니다. 각 노드는 모델 로딩, 프롬프트 입력, 특정 필터 적용 등 이미지 생성 과정의 단계를 나타냅니다. 이러한 모듈식 접근 방식은 사용자가 코드를 작성할 필요 없이 쉽게 실험하고 커스터마이징할 수 있게 합니다.
- 공유 및 재현성: ComfyUI에서 생성된 워크플로우는 파일로 저장되어 쉽게 공유하고 재현할 수 있습니다. 이는 협업 프로젝트나 교육 목적으로 이상적입니다.
- 커스텀 노드 및 확장: ComfyUI는 XYZ 플롯, 동적 프롬프트 생성 등 다양한 커스텀 노드와 확장을 지원합니다. 이러한 확장은 ComfyUI의 기능을 확장하고 워크플로우를 더 유연하게 만들 수 있습니다.
- 높은 성능과 유연성: ComfyUI는 Windows, Mac, Linux 등 다양한 운영 체제에서 사용할 수 있으며, GPU와 CPU 처리 모두를 지원합니다. 이는 다양한 하드웨어 구성에서 원활한 성능을 보장합니다.
- 커뮤니티 및 지원: ComfyUI는 GitHub, Reddit, 전용 Slack 채널 등에서 활발한 커뮤니티를 갖추고 있습니다. 이 커뮤니티는 지원을 제공하고, 팁을 공유하며, 새로운 기능과 개선사항에 대해 협력합니다. 이를 통해 지속적인 개발과 혁신이 이루어집니다.
3. 실행 환경
- 운영체제 : Windows 11 (64-bit)
- Python : 3.10.6
- conda : 24.5.0
- pytorch : 2.3.1
- GPU : NVIDIA GeForce GTX 1050 Ti
4. 설치 계획
- 가상 환경 구축 (Conda 활용)
- 가상 환경에 ComfyUI 구동에 필요한 패키지 설치
- ComfyUI 실행
- AI모델 다운 및 이미지 생성
5. ComfyUI 설치
1) ComfyUI Github에서 해당 소스 다운
- ComfyUI Github : https://github.com/comfyanonymous/ComfyUI
다운로드가 완료되면 압축을 해제합니다. 압축을 풀면 "ComfyUI-master"라는 폴더가 생성되고, 그 안에 파일들이 포함됩니다.
2) 가상환경 구축
Conda를 활용하여 가상환경을 생성합니다. 가상환경을 만드는 명령어는 아래와 같습니다. 이 방법으로 설치하면 보통 C 드라이브에 설치되며, 가상환경 이름을 "comfyui"로 사용할 수 있어 더 편리합니다.
# Windows PowerShell
conda create --n comfyui python=3.10
Python 3.10 버전의 "comfyui"라는 conda 가상환경 생성
아래 실행예시 1은 conda 가상환경을 다른 경로에 설치하는 명령어를 사용했습니다.
conda 명령어에 대해 더 궁금하신 점이 있다면 아래 포스팅글을 참고해주시기 바랍니다.
[Marcus' Stroy] - Conda(콘다) 기초
3) 가상환경 실행
위에서 만든 가상환경을 아래 명령어를 사용하여 활성화합니다.
# Windows PowerShell
conda activate comfyui
아래 실행예시 2는 conda 가상환경이 다른 경로에 설치된 경우 활성화하는 명령어입니다. conda 가상환경을 활성화하면, 왼쪽 괄호 "( )" 안에 현재 활성화된 가상환경의 이름이 표시됩니다. 예를 들어, "conda activate comfyui"로 가상환경을 활성화한 경우, "(comfyui)"로 표시됩니다.
4) 패키지 설치
가상환경 설치가 완료되었으면 이제 ComfyUI를 작동시키기 위해 필요한 패키지들을 설치해야 합니다. 이때 사용자의 환경에 따라 설치해야 할 패키지가 조금씩 다를 수 있습니다. 저는 NVIDIA 그래픽카드를 사용하고 있으므로, NVIDIA 사용자에게 필요한 패키지를 설치하겠습니다.
패키지를 설치하기 전에 conda 가상환경이 활성화되어 있는지 확인해 주세요. conda 가상환경을 활성화한 후 패키지를 설치해야 해당 가상환경에 패키지들이 설치됩니다.
- stable pytorch 설치
# Windows PowerShell
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
아래 실행예시 3은 conda 가상환경이 활성화된 상태에서 stable pytorch 설치 명령어를 실행하여 설치가 완료된 상태입니다.
- pytorch nightly 설치
# Windows PowerShell
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu124
아래 실행예시 4는 conda 가상환경이 활성화된 상태에서 stable pytorch 설치 명령어를 실행하였으나, 이미 설치된 상태라는 메시지를 받았습니다.
- requirements 패키지 설치
추가적으로 필요한 파일들은 Github에서 다운로드한 "ComfyUI-master" 폴더의 requirements.txt 파일을 활용하여 설치하도록 하겠습니다. Windows PowerShell에서 현재 작업 디렉토리를 "ComfyUI-master" 폴더로 이동한 후, requirements.txt 파일을 설치하겠습니다.
# Windows PowerShell
cd ComfyUI-master
pip install -r requirements.txt
아래 실행예시 5는 conda 가상환경이 활성화된 상태에서 cd 명령어를 사용해 현재 작업 디렉토리를 "ComfyUI-master" 폴더로 이동한 후, requirements.txt 파일 설치 명령어를 실행하여 설치가 완료된 상태입니다.
여기까지 진행하셨다면 설치가 모두 완료됐습니다.
6. ComfyUI 실행
아래 명령어를 통해 ComfyUI를 실행시켜줍니다.
# Windows PowerShell
python main.py
아래 실행예시 6은 위 명령어를 통해 ComfyUI를 실행한 결과입니다.
아래 나타나는 주소로 접속하면 ComfyUI가 정상적으로 실행됨을 확인하실 수 있습니다.
7. AI 모델 다운 및 이미지 생성
위에서 언급했듯이, ComfyUI는 Stable Diffusion 모델을 사용하기 편리하게 해주는 시스템으로, ComfyUI 자체로는 이미지를 생성할 수 없습니다. 따라서 이미지를 생성해주는 AI 모델을 따로 다운로드해야 합니다. Stability에서 오픈 소스로 제공하고 있는 Stable Diffusion XL 모델을 다운로드하도록 하겠습니다.
- Stable Diffusion XL 모델 허깅페이스 : https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main
다운받은 모델은 "ComfyUI-master 폴더 → models 폴더 → checkpoints 폴더" 안에 위치시켜주시면 됩니다.
- 디렉토리 : /path/to/ComfyUI-master/models/checkpoints/
여기서 "/path/to/"는 설치한 위치에 맞게 수정해주시면 됩니다.
그리고 생성하고 싶은 프롬프트를 입력합니다. 이 단계에서는 긍정 프롬프트와 부정 프롬프트를 입력하는 노드를 사용하게 됩니다. 긍정 프롬프트는 생성할 이미지에 포함되어야 할 요소를 나타내고, 부정 프롬프트는 생성할 이미지에서 제외되어야 할 요소를 나타냅니다. 저는 단순히 "Cat"이라는 하나의 프롬프트만 제공했습니다.
사용할 모델 설정과 프롬프트 입력이 끝났으면 메뉴창에서 "Queue Prompt" 버튼을 클릭해줍니다. 그러면 요청한 이미지를 생성해줍니다.
ComfyUI와 Stable Diffusion XL 모델을 활용하여 고양이 이미지를 생성했습니다.
이 글에서는 ComfyUI를 로컬 환경에서 설치하고 사용하는 방법에 대해 다뤘습니다. Conda를 활용하여 가상환경을 생성하고, 필요한 패키지를 설치하는 과정을 단계별로 안내하였습니다. 이러한 과정을 통해 ComfyUI를 성공적으로 설정하고 사용할 수 있습니다.
ComfyUI를 통해 보다 직관적이고 효율적인 작업을 수행할 수 있으며, 로컬 환경에서 안정적으로 운영할 수 있습니다. 앞으로도 ComfyUI와 같은 도구를 활용하여 생산성을 높이고, 작업 흐름을 개선해 보시기 바랍니다.
다음 포스팅 글에서는 본격적으로 ComfyUI를 활용하여 이미지를 생성해보는 방법에 대해 알아보겠습니다. 감사합니다. 😊