처음 실행할 때 마주하는 ComfyUI 기본 워크플로우의 각 노드들의 기능을 살펴보고, ComfyUI에서 기본적으로 이미지를 생성하고 업스케일링(Upscale)으로 해상도를 키우는 부분까지 진행하는 워크플로우를 작성해보도록 하겠습니다. 모든 노드 각각의 역할에 대해 간략하게 살펴봄으로써 ComfyUI를 막 입문하신 분들께는 그 동작 원리를 이해하시는데 도움이 될 것입니다.
본문에서는 우선 기본 워크플로우를 하나하나 뜯어서 살펴본 뒤 노드를 추가해 업스케일까지 진행할 예정인데요, 이 과정을 한 번만 잘 이해하시면, 추후 얼마든지 ComfyUI에서 원하는대로 워크플로우를 구성하고 활용하실 수 있습니다.
ComfyUI 기본 워크플로우 노드 분석
아래 이미지는 ComfyUI를 실행하면 만날 수 있는 기본 워크플로우입니다. 다른 워크플로우를 이용하신 기록이 있다면, ComfyUI 기본메뉴에서 Load Default를 누르면 다시 아래와 같은 워크플로우를 불러올 수 있습니다.
ComfyUI 기본 워크플로우에서 보이는 각 노드들을 하나씩 살펴보겠습니다.
Load Checkpoint
체크포인트(모델)을 불러오는 노드입니다. 해당노드에는 모델 자체를 전달하는 Model, 프롬프트를 입력받는 CLIP, 그리고 VAE 출력점이 있습니다. VAE는 모델에 포함되어 있지 않는 경우 따로 VAE 로더 노드를 불러와야 합니다.
CLIP Text Encode (Prompt)
프롬프트를 작성하는 노드입니다. Load Checkpoint 노드에 동일한 2개의 CLIP Text Encode 노드가 연결되는데, 각각 긍정프롬프트(positive), 부정프롬프트(negative)를 담당합니다.
KSampler
실제로 그림을 그려내는 역할을 하는 노드입니다. 총 4개의 입력값을 받는데 이 중 3개의 입력값(model, positive, negative)은 앞선 2개 노드의 출력값으로 받아옵니다. 한편 latent_image는 빈 노이즈 이미지로 아래의 노드에서 받아옵니다.
Empty Latent Image
스테이블 디퓨전의 원리를 되짚어보면, 노이즈 이미지로부터 완성형 이미지를 만들어내는 방식입니다.
따라서 일단 노이즈 이미지를 샘플러 노드로 전달해야 이미지 생성이 시작될 수 있습니다. Empty Latent Image 노드에서는 샘플러 노드로 전달하는 노이즈 이미지의 해상도(width, height)와 노이즈 이미지의 개수(batch_size)를 설정해서 전달할 수 있습니다. 여기서 전달하는 해상도와 배치 크기에 의해 출력되는 결과물의 해상도와 이미지 수가 결정됩니다.
VAE Decode
샘플러에서 생성한 Latent 이미지와 VAE를 받아와 우리가 보는 픽셀로 이뤄진 최종 이미지로 만들어주는 노드입니다. 만약 최초 Load Checkpoint에서 불러온 모델에 VAE값이 제대로 포함되어 있지 않다면 앞서 언급한 것처럼 VAE 로더에서 따로 VAE를 불러와서 VAE Decode 노드로 입력해주면 됩니다.
Save Image
최종 이미지를 파일로 저장하는 노드입니다. 저장하는 이미지 파일명을 설정해주면 해당 파일명_숫자_(예를 들어 위 예시 그림에서는 ComfyUI_00001_.png) 형식으로 저장되며 기본 저장경로는 ComfyUI설치폴더 내 output 폴더입니다.
ComfyUI 업스케일 노드 추가
이번에는 기본 노드에 업스케일 과정을 더하기 위해 아래와 같이 VAE Decode ~ Save Image 노드 사이에 2개의 노드를 추가로 생성해주었습니다.
ComfyUI에서 노드 추가는 마우스 우클릭 > add node에서 원하는 노드를 찾아 클릭만 하면 되기 때문에 누구든 쉽게 따라하실 수 있습니다. 위에서 업스케일을 위해 추가한 각 노드를 간략히 살펴보면 다음과 같습니다.
Load Upscale Model
Load Upscale Model 노드는 add node > loaders에서 찾을 수 있으며, 말 그대로 업스케일링에 사용할 모델을 지정해주는 노드입니다. 업스케일 모델은 따로 다운을 받은 뒤 ComfyUI 설치폴더 > models > upscale_models 폴더에 옮겨주시면 됩니다. 기본적으로 ESRGAN_4x.pth 모델이 설치되어 있으며, 필요하신 경우 아래의 업스케일 모델을 추가로 다운받아 사용하시면 됩니다.
Upscale Image (using model)
Upscale Image(using Model) 노드는 add node > image > upscaling에서 찾아서 추가할 수 있습니다. 해당 노드는 이미지와 업스케일 모델을 입력값으로 받아 실제로 업스케일(해상도 올리기) 과정을 진행한 뒤 출력이미지를 내보냅니다.
ComfyUI 기본 워크플로우와 업스케일 진행까지 살펴보았습니다. ComfyUI를 기반으로 스테이블 디퓨전 이미지 생성을 제대로 즐기시기 위해서는 우선 ComfyUI Manager를 설치하시는 것을 권장드립니다. ComfyUI Manager를 설치한 후 다양한 커스텀 노드들을 추가하고 본인만의 워크플로우를 구성하다보면 스테이블 디퓨전의 매력을 더욱 제대로 느끼실 수 있을 것입니다.