지금까지 Stable Diffusion을 1편부터 webui를 사용하는 방법을 위주로 설명했습니다. 오픈소스로 공개된 Stable Diffusion을 CLI를 사용하지 않고 쉽게 사용할 수 있어서 많은 사람들이 사용하고 있습니다.

Stable Diffusion을 이용해서 만든 이미지에는 생성할때 사용했던 프롬프트 등의 정보가 포함되어있습니다. PNGINFO 라는 기능을 통해서 확인이 가능합니다. 하지만 생성과 관련된 세부적인 설정 값은 알기가 어렵죠.

오늘 소개해드릴 ComfyUI는 이러한 설정값을 공유하기에도 아주 용이하며, 작동원리를 Node 형태로 구성할 수 있는 도구입니다. 기존에 3D툴을 좀 다뤄보신 분들은 익숙할 수도 있지만 그렇지 않다면 UI만 보고 포기하는 분도 있으리라 생각될 정도로 사용방법이 좀 어렵습니다.

ComfyUI 의 구동화면

하지만 WebUI에 이어서 더 깊이있게 공부하고자 하는 분들은 꼭 익혀보시면 좋을 것 같습니다. ComfyUI도 요즘 많은 분들이 사용하고 관련 글도 많이 생기는 추세입니다.

ComfyUI 란?

ComfyUI 는 Stable Diffusion을 사용하기 위한 Node 기반의 GUI 툴입니다. 이렇게 설명드리면 Node가 무엇인지도 설명드려야겠네요.

노드(node)의 사전적 의미

그래프는 점과 선으로 구성되는데, 이 점을 노드 또는 절점이라 한다. 선은 두 개의 노드를 연결한 것이다. 그래프는 현실 문제를 추상화한 것이기 때문에 실제로 노드는 하나의 기능 단위를, 변은 그 사이의 정보 흐름이나 관계를 나타낸다. 통신망을 나타내는 그래프에서의 노드는 단말 장치나 통신 처리 장치 등에 해당한다.
[네이버 지식백과] 노드 [node] (컴퓨터인터넷IT용어대사전, 2011. 1. 20., 전산용어사전편찬위원회)

위의 설명처럼 Node란 각각의 정보흐름이나 관계 등을 선으로 연결하는 형태로 표현합니다. node라고 검색하면 뭔 node.js만 잔뜩 나오는데, 개념적으로 보면 점, 선 이런게 중요한게 아니라 관계, 연결을 표현한다는 부분을 기억해주시면 좋을 것 같습니다.

ComfyUI vs Automatic1111

Automatic1111
ComfyUI
Meme by u/unlimitedduck

Stable Diffusion을 통해서 똑같은 이미지를 만들지만, 훨씬 더 복잡하게 할 수도 있습니다. 한번에 더 많은 일을 시킨다고 보면 됩니다.

우리는 지금까지 Prompt를 입력하고 설정값에 따라 Generate 버튼을 누르면 결과가 나올때까지 기다리기만 했죠. 다양한 샘플링 방법들을 비교할때도 결과를 기다려서 비교하는 방법 외에는 없었습니다.

ComfyUI를 사용하면 생성 프로세스의 모든 단계에서 세부적인 설정을 가능하게 합니다.

  1. 복잡하게 구성된 Work-Process 수행

SDXL은 2개의 모델과 2단계 프로세스를 가지는데, Base모델은 Noise latents를 생성하는데 사용되고 이는 denoising에 특화된 Refiner 모델로 처리됩니다. 실질적으로 이미지를 더 선명하고 자세히 만듭니다.

ComfyUI는 자유롭게 노드구성을 설정할 수 있고 GUI를 통해서 프로토타입을 제작할 수 있는 장점이 있습니다.

2. 성능과 속도

노드 구성을 통해서 Auto1111에서 불가한 방식으로 최적화가 가능합니다. 결과적으로 3~5배 정도로 속도 최적화가 된다고 보면 됩니다.

3. Stable Diffusion의 작동방식 확인

ComfyUI는 노드가 연결된 하위 프로세스의 다른 부분이 작동하는 방식을 반영하도록 되어있어서, Stable Diffusion이 실제로 어떻게 작동하는지 알 수 있습니다.

장점만 있는 건 아니겠죠. 위에서 장점으로 꼽은 세부설정의 유연함이 단점이기도 합니다. 너무 세부사항이 많아서 일반사용자들이 몰라도 되는 프로세스나 흐름까지 보여주고, 그로 인해 인터페이스가 많이 복잡합니다.

ComfyUI 설치 방법

1. Windows에서 빠른 설치 (Nvidia 사용자 추천)

Nvidia GPU를 사용중이라면 독립 실행형 버전의 ComfyUI가 있습니다. CPU사용시에 매우 느린 단점이 있습니다.

다운로드

위 링크를 누르면 7-zip 파일을 다운받는데 압축을 해제하면 ComfyUI_windows_portable폴더가 포함된 폴더가 생성됩니다 ComfyUI.

기존에 사용중인 체크포인트 모델을 ComfyUI/models/checkpoints 폴더 안에 복사해주면 됩니다. 복사하기 싫으면 Config file을 수정해서 해당 폴더를 참조하도록 수정할 수도 있습니다. (Line 4-21 수정)

run_nvidia_gpu.bat NVIDIA GPU로 실행하거나 run_cpu.bat CPU로 실행하려면 파일을 실행하세요 .

2. Windows, Linux 에서 설치하기 (Github clone)

Nvidia GPU

Windows의 경우 명령 프롬프트를 엽니다(“cmd” 검색). Linux의 경우 터미널(Ctrl+Alt+T)을 엽니다.

그런 다음 다음 명령을 하나씩 실행하십시오.

> git clone https://github.com/comfyanonymous/ComfyUI
> cd ComfyUI
> pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
> pip install -r requirements.txt

python은 이미 설치되어있어서 설치과정은 생략하고, 아래 명령어로 실행해줍니다.

python main.py

Torch not compiled with CUDA enabled 오류 발생시 해결방법

우선 torch 를 uninstall 합니다.

pip uninstall torch

그리고 아래 명령어를 쳐서 다시 설치합니다.

> pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
> pip install -r requirements.txt

AMD GPU

Windows의 경우 명령 프롬프트를 엽니다(“cmd” 검색). Linux의 경우 터미널(Ctrl+Alt+T)을 엽니다.

그런 다음 다음 명령을 하나씩 실행하십시오.

git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.6

GPU가 ROCm(6700 XT 등)에서 공식적으로 지원되지 않아 실패하는 경우 다음 명령을 실행해 볼 수 있습니다.

HSA_OVERRIDE_GFX_VERSION=10.3.0 python main.py

이제 다음 명령을 사용하여 ComfyUI를 시작할 수 있습니다.

python main.py

3. Mac 에서 설치하기 (Github clone)

최신 macOS 버전을 사용하면 Apple Mac 실리콘(M1 또는 M2)에 ComfyUI를 설치할 수 있습니다.

우선 PyTorch를 설치합니다. (Apple 가이드 문서 참고)

터미널을 열고 저장소를 복제합니다.

git clone https://github.com/comfyanonymous/ComfyUI

ComfyUI 필요 라이브러리를 설치합니다.

cd ComfyUI
pip install -r requirements.txt

Automatic1111을 사용하고 있었다면 이를 재사용할 수 있습니다.

다음을 실행하여 ComfyUI를 시작합니다.

python main.py --force-fp16

–force-fp16은 최신 pytorch를 설치한 경우에만 작동합니다.

실행화면

실행 터미널 화면
실행된 ComfyUI 화면

이렇게 ComfyUI 설치방법에 대해서 알아보았습니다. 다음 포스팅에서는 ComfyUI의 인터페이스와 새로 등장하는 개념들을 살펴보도록 하겠습니다.

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here