ComfyUI는 AI 워크플로를 만들기 위해 설계된 강력한 노드 기반 인터페이스입니다. 초보자든 숙련된 사용자든 레이아웃과 기능을 이해하는 것은 워크플로를 효율적으로 만드는 데 필수적입니다. 이 가이드는 인터페이스를 탐색하고, 핵심 작업을 익히며, 자신 있게 워크플로 만들기를 시작하는 데 도움이 됩니다.
ComfyUI 인터페이스 개요
ComfyUI를 시작하면 여러 섹션으로 나뉜 깔끔하고 직관적인 인터페이스가 표시됩니다. 주요 구성 요소를 살펴보겠습니다.

인터페이스의 주요 섹션
노드 편집기(캔버스)
- 노드를 연결하여 워크플로를 만드는 중앙 작업 공간입니다.
- 노드는 개별 작업이나 프로세스를 나타내며, 노드 간의 연결은 데이터 흐름을 정의합니다.
도구 모음(상단 메뉴)
- 워크플로를 저장, 로드, 내보내기 위한 옵션을 제공합니다.
- 실행 취소/다시 실행, 확대/축소와 같은 기본 컨트롤과 ComfyUI Manager에 대한 액세스를 포함합니다.
미리 보기 창(오른쪽 패널)
- 이미지나 처리된 결과 같은 워크플로 출력의 실시간 미리 보기를 표시합니다.
- 중간 결과나 최종 결과를 시각화하는 데 유용합니다.
설정 패널(왼쪽 패널)
- 선택한 노드의 구성 옵션을 포함합니다.
- 워크플로의 매개변수와 설정을 미세 조정할 수 있습니다.
상태 표시줄(하단)
- GPU 사용량, VRAM, 처리 상태 등의 시스템 정보를 표시합니다.
- 확대/축소, 이동, 연결 표시 전환을 위한 빠른 액세스 버튼을 포함합니다.
필수 마우스 및 키보드 작업
ComfyUI에서의 효율성은 핵심 마우스 및 키보드 작업을 익히는 데서 나옵니다. 간단히 요약하면 다음과 같습니다.
마우스 작업
- 왼쪽 클릭: 캔버스의 노드나 영역을 선택합니다.
- 오른쪽 클릭: 노드 메뉴를 열어 새 노드를 추가하거나 노드별 옵션에 액세스합니다.
- 가운데 클릭(또는 마우스 휠): 드래그하여 캔버스를 이동하고, 스크롤하여 확대/축소합니다.
- 드래그 앤 드롭: 캔버스에서 노드를 이동하거나 출력 포트에서 입력 포트로 드래그하여 노드를 연결합니다.
키보드 단축키
- Ctrl + Z / Ctrl + Y: 작업을 실행 취소/다시 실행합니다.
- Ctrl + S: 현재 워크플로를 저장합니다.
- Ctrl + O: 저장된 워크플로를 엽니다.
- Ctrl + Shift + S: 워크플로를 새 파일로 저장합니다.
- Delete / Backspace: 선택한 노드를 삭제합니다.
- Ctrl + 마우스 휠: 캔버스에서 확대/축소합니다.
- 스페이스바: 캔버스를 워크플로 중심으로 이동합니다.
노드 추가 및 관리
노드는 ComfyUI에서 워크플로의 구성 요소입니다. 노드를 효과적으로 추가, 연결, 관리하는 방법은 다음과 같습니다.
노드 추가
- 캔버스에서 오른쪽 클릭:
노드 메뉴를 열어 범주(예: Input, Processing, Output)를 탐색하고 노드를 선택합니다.
메뉴 상단의 검색 표시줄을 사용하면 빠르게 액세스할 수 있습니다.

노드 연결
- 출력에서 입력으로 드래그:
한 노드의 출력 포트에서 다른 노드의 입력 포트로 클릭하여 드래그합니다. 데이터 형식이 일치하는지 확인하세요(예: 이미지에서 이미지로, 텍스트에서 텍스트로).
노드 연결 해제
- 연결선을 오른쪽 클릭:
두 노드 사이의 연결을 삭제합니다.
노드 위치 변경
- 클릭하고 드래그:
캔버스에서 노드를 이동하여 워크플로를 정리합니다.
미리 보기 창 사용
워크플로의 출력을 볼 수 있는 곳이 바로 미리 보기 창 입니다. 최대한 활용하는 방법은 다음과 같습니다.
- 출력 미리 보기:
출력 노드(예: Preview Image)를 클릭하면 미리 보기 창에서 그 결과를 볼 수 있습니다.

- 확대/축소:
마우스 휠을 사용하여 미리 본 이미지를 확대/축소합니다. - 출력 저장:
미리 본 이미지를 오른쪽 클릭하여 컴퓨터에 저장합니다.
인터페이스 사용자 지정
ComfyUI는 워크플로 경험을 개선하기 위한 사용자 지정 옵션을 제공합니다.
캔버스 보기 조정
- 확대/축소: 마우스 휠 또는 Ctrl + 마우스 휠을 사용합니다.
- 캔버스 이동: 마우스 가운데 버튼(또는 스페이스바)을 누른 채 드래그하여 캔버스를 이동합니다.
노드 정리
- 노드 정렬: 노드를 깔끔한 행이나 열로 수동으로 드래그하여 정리를 개선합니다.
- 노드 그룹화: 색상 배경이나 레이블(지원되는 경우)을 사용하여 관련 노드를 시각적으로 그룹화합니다.
효율적인 탐색을 위한 팁
- 단축키 사용: Ctrl + Z와 Ctrl + S 같은 일반적인 단축키를 외워 워크플로를 더 빠르게 관리하세요.
- 캔버스 정리: 입력, 처리, 출력 노드를 별도의 영역에 두어 가독성을 높입니다.
- 자주 저장: Ctrl + S를 자주 사용하여 진행 상황을 저장하고 데이터 손실을 방지하세요.
- 확대/축소 수준 실험: 확대하여 노드를 자세히 편집하고, 축소하여 워크플로 전체를 파악합니다.
일반적인 문제 해결
노드가 연결되지 않음
- 한 노드의 출력 형식이 다음 노드의 입력 형식과 일치하는지 확인하세요. 예를 들어 이미지 출력은 텍스트 입력에 연결할 수 없습니다.
캔버스가 어수선하게 느껴짐
- 확대/축소 및 이동 기능을 사용하여 작업 공간을 정리하세요. 불필요한 노드나 연결을 삭제하세요.
미리 보기가 업데이트되지 않음
- 필요한 모든 노드가 연결되고 올바르게 구성되었는지 확인하세요. 일부 노드는 작동하려면 특정 입력이 필요합니다.
실습: 간단한 워크플로 만들기
다음 단계에 따라 기본 워크플로를 만드세요.
기본 노드 지우기 또는 새 워크플로 만들기.
기본 워크플로를 지우려면 Edit -> Clear Workflow 로 이동하세요.


입력 노드 추가:
캔버스에서 오른쪽 클릭하고 Input 범주로 이동한 뒤 load checkpoint 노드를 추가합니다.

KSampler 노드 추가:
필요한 두 번째 노드는 KSampler입니다. 오른쪽 클릭하고 다음으로 이동합니다.
Add Node > sampling > KSampler

KSampler는 생성 과정의 핵심입니다.

무작위 이미지 노이즈를 받아들인 뒤 노이즈 속에서 일관된 이미지를 찾으려고 합니다. 이를 '샘플링'이라고 합니다. 자신이 본다고 생각하는 것에 근거하여 이미지의 노이즈를 조금 줄인 뒤 다시 살펴봅니다. 지시한 횟수만큼 이를 반복합니다.
무작위로 자른 진흙 덩어리 속에서 모양을 상상하려는 것과 같습니다. 그런 다음 그 진흙을 조금씩 다듬어 자신이 본 것에 더 가깝게 만듭니다. 친구도 같은 것을 볼 수 있도록 설득할 수 있을 때까지 조금씩 계속 조각합니다.
노드 연결:
각 노드의 오른쪽은 해당 노드의 출력이고, 왼쪽은 입력입니다. Load Checkpoint 노드 오른쪽에 있는 MODEL 출력점을 KSampler 노드의 model 입력점에 마우스를 한 번 드래그하는 간단한 동작으로 연결하여 KSampler의 상상력을 도와줍시다.
CLIP Text Encode (Positive Prompt)
KSampler가 이제 상상할 수 있게 된 모든 것 중에서, 상상하기를 원하는 것을 어떻게 알려줄까요? 그것이 텍스트 프롬프트의 역할입니다. 빈 곳을 오른쪽 클릭하고 다음으로 이동합니다. Add Node > Conditioning > CLIP Text Encode (Prompt)

CLIP은 SDXL 파일에 내장된 또 다른 종류의 사전으로, 영어와 AI가 이해하는 언어 사이의 번역 사전처럼 작동합니다. AI는 단어로 말하지 않고 '토큰'으로 말합니다. 토큰은 모델 파일이 가진 거대한 사전의 개념에 매핑된 단어와 숫자의 의미 있는 묶음입니다.
Load Checkpoint 노드의 CLIP 출력점을 가져와 clip 입력점에 연결합니다. 그런 다음 CLIP Text Encode (Prompt) 노드 출력의 conditioning 점을 KSampler 노드의 positive 입력점에 연결합니다.

이렇게 하면 CLIP이 프롬프트 상자로 보내져 단어를 삼키고, 토큰으로 변환한 뒤 KSampler를 위한 'conditioning'을 내뱉습니다. Conditioning은 KSampler가 시작할 때 가진 무작위 노이즈 속에서 특정한 것을 찾도록 유도하는 것을 가리키는 용어입니다. KSampler는 영어에서 토큰으로 번역된 프롬프트를 사용하여 상상력을 이끌고 있습니다.
CLIP Text Encode (Negative Prompt)
Conditioning은 양방향으로 작동합니다. KSampler에게 특정한 것을 찾도록 지시하는 동시에 피해야 할 특정한 것을 지시할 수도 있습니다. 이것이 긍정 프롬프트와 부정 프롬프트의 차이입니다.
부정 프롬프트에는 두 번째 CLIP Text Encode (Prompt) 노드가 필요하므로, 빈 곳을 오른쪽 클릭하고 다시 다음으로 이동합니다.
Add Node > Conditioning > CLIP Text Encode (Prompt)

Load Checkpoint의 CLIP 출력점을 다시 연결합니다. CONDITIONING 출력점을 KSampler의 negative 입력점에 연결합니다.
Empty Latent Image
이제 KSampler에게 '빈 잠재 이미지'를 제공함으로써 명시적으로 출발점을 제공해야 합니다. 빈 잠재 이미지는 빈 스케치북 종이와 같습니다. KSampler에게 빈 종이를 제공하면 그리라고 지시한 것을 그릴 장소가 생깁니다.
빈 곳을 오른쪽 클릭하고 다음을 선택합니다.
Add Node > latent > Empty Latent Image.

LATENT 점을 KSampler의 latent_image 입력에 연결합니다.

Vae Decode
빈 잠재 이미지에는 수학적인 층과 차원이 너무 많아서 우리 인간은 일반 종이나 디지털 이미지처럼 볼 수 없습니다. 다면적인 잠재 이미지는 훨씬 더 단순한 것으로 압축되어야 합니다. 소박한 2차원 화면에 표시하기 위해 정사각형 픽셀 격자로 '디코딩'해야 합니다. 이는 'VAE'(Variational Auto Encoder)가 수행하며, VAE도 편리하게 SDXL 모델에 내장되어 있습니다.
오른쪽 클릭하고 다음으로 이동하여 VAE Decode 노드를 추가합니다.
Add Node > latent > VAE Decode.

VAE Decode 노드가 KSampler의 이미지를 인간이 볼 수 있는 PNG로 압축하는 작업을 수행하려면 두 가지가 필요합니다. KSampler가 빈 잠재 이미지 위에 그린 그림과, 그 그림을 픽셀로 다시 번역하는 방법을 정확히 알기 위한 VAE입니다.
KSampler의 LATENT 출력을 VAE Decode 노드의 samples 입력에 연결합니다. 그런 다음 Load Checkpoint 노드까지 돌아가 VAE 출력을 vae 입력에 연결합니다.

이미지 저장
아주 간단한 노드 하나만 더 추가하면 끝입니다. 이미지를 컴퓨터에 저장할 노드가 필요합니다! 빈 곳을 오른쪽 클릭하고 다음을 선택합니다.
Add Node > image > Save Image.

그런 다음 VAE Decode 노드의 출력을 Save Image 노드의 입력에 연결합니다.

워크플로
작업 공간의 모든 노드의 입력과 출력이 연결되었습니다. 워크플로가 완성되었습니다! 이제 시도해 보는 일만 남았습니다. KSampler의 'positive' 입력에 연결된 CLIP Text Encode 텍스트 상자에 무언가를 입력합니다.

이제 오른쪽에 있는 Queue Prompt를 클릭합니다.
이게 전부입니다… 이게 다입니다! 존재하는 모든 텍스트-이미지 워크플로는 이 일곱 개 노드의 확장이나 변형에 불과합니다!

결론
이제 ComfyUI 인터페이스, 필수 단축키, 기본 작업에 대해 탄탄히 이해하게 되었을 것입니다. 이러한 기술을 갖추면 자신 있게 워크플로 만들기를 시작할 수 있습니다. 다음 글에서는 노드 작업에 대해 더 깊이 알아보고 더 복잡한 워크플로를 만드는 방법을 살펴보겠습니다.