ComfyUI란
Stable Diffusion 모델을 위한 GUI 툴
하드웨어가 낮은 컴퓨터에서도 사용할 수 있다
다양한 모델 지원
Checkpoint. Lora사용 가능
작업 환경 json으로 저장 가능
두 가지 방법 중 원하는 방법으로 설치하시면 됩니다
방법1
1. ComfyUI 설치
가상환경 만들고
github 클론
git clone https://github.com/comfyanonymous/ComfyUI.git
ComfyUI 폴더로 이동
cd ComfyUI
requirements.txt 설치
pip install -r requirements.txt
+ 추가로 해줘야 할 것
1. numpy 버전 확인
버전 1인지 확인
pip show numpy
2.
torch가 cpu 버전 torch로 깔렸기 때문에 gpu를 사용할 것이라면 삭제 후 다시 설치해야 한다
pip uninstall torch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
위의 예시는 저의 cuda 버전에 맞춘 것이기 때문에
자신의 cuda 버전에 맞게 설치하시면 됩니다
https://developer.nvidia.com/cuda-downloads
2. ComfyUI Manager 설치
custom_nodes 폴더로 이동
cd custom_nodes
https://github.com/ltdrdata/ComfyUI-Manager.git
github 클론
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
cd ..
python main.py
http://127.0.0.1:8188로 들어가면 됩니다
이런 화면이 나온다면 된 것입니다
방법2
1. ComfyUI 설치
깃허브의 Direct link to download를 눌러줍니다
압축을 풀고 실행 환경에서 그 폴더를 옮겨줍니다
그 안에
run_nvidia_gpu를 클릭하면 cmd창이 켜집니다
서버 주소가 나오면 클릭해줍니다
이런 화면이 나온다면 된 것입니다
2. ComfyUI Manager 설치
scripts > install-manager-for-portable-version.bat 클릭
download raw file 클릭
다운로드된 파일을 실행 환경에 이동시킵니다.
더블클릭하면 설치가 됩니다.
원래 cmd창을 끄고 다시 실행시키켰을 때
이렇게 뜨면 설치가 잘 된 것입니다.
ComfyUI 살펴보기
-Load Checkpoint
diffusion model checkpoint과 diffusion model을 불러옵니다.
-CLIP Text Encode (Prompt) 두 개
CLIP 모델의 텍스트 인코더를 사용하여 텍스트를 임베딩 벡터로 변환하는 단계(텍스트와 이미지의 연관성을 찾는다)
+ CLIP 모델이란: 텍스트와 이미지의 관계를 학습한 모델
2가지 구성요소
1. 텍스트 인코더: 텍스트 -> 벡터
2. 이미지 인코더: 이미지 -> 벡터
이렇게 얻은 텍스트 벡터와 이미지 벡터는 동일한 차원의 벡터 공간에 매핑되고, 대조 학습을 통해 이미지와 텍스트 간의 연관성을 학습한다.
Positive CLIP Text Encode (Prompt)에는 원하는 이미지의 프롬프트를 작성, Negative CLIP Text Encode (Prompt)에는 제거하고 싶은 요소를 쓴다.
-KSampler
이미지 생성 옵션
- seed: 랜덤으로 노이즈를 만든다(같은 노이즈라면 같은 이미지 얻을 수 있음)
- contraol_after_generate: seed 값 바꿀 수 있도록(fixed를 사용하면 고정)
- steps: 노이즈가 제거되는 denoise 과정 횟수(낮을수록 빨리 생성되지만 품질은 별로일 수 있다)
- cfg: 프롬프트를 얼마나 반영할건지(높을수록 강하게 반영. lora 모델을 넣을 때 프롬프트를 정확히 따라갈 수 있도록 하기 위해 많이 사용)
- sampler_name: 샘플링(이미지 생성) 알고리즘 종류(euler, heun, dpm 등을 많이 사용)
- scheduler: 노이즈 제거 방식과 속도를 결정하는 알고리즘 종류
- denosie: 노이즈 제거 양. (낮을수록 초기 이미지의 구조가 유지)
+ sampling은 모델이 이미지를 생성하는 전체 과정으로, denoising을 포함한 일련의 변환 단계를 모두 포함 sampler_name이 전체적인 이미지 생성의 큰 흐름을 결정한다면, scheduler는 그 흐름 내에서 노이즈 제거 방식의 세부 사항을 조정하는 역할
-Empty Latent Image
생성될 이미지의 사이즈 설정
batch_size는 생성될 이미지 장 수
-VAE Decode
VAE를 사용하여 벡터 -> 이미지 decode