콘텐츠로 이동

· 시작하기 · 이전: 프롬프트와 CLIP · 다음: 저장과 재현

첫 워크플로우 직접 만들기

연결도를 덮어두고 스스로 구성한 뒤, 저장해 언제든 같은 결과를 재현합니다.

이 장에서 배우는 것

  • 연결도를 보지 않고 7노드를 스스로 구성하기
  • 막힌 지점을 진단 순서로 좁혀 스스로 해결하기
  • 목표에 맞는 변수를 골라 한 번에 하나만 바꾸기
  • 결과가 이상할 때 원인을 좁히는 진단 순서

대상 예제를 따라 만들어 봤고, 이제 참고 없이 스스로 구성하려는 사용자 · 사전 이해 빠른 시작의 7노드 실습, 워크플로우 이해하기의 설정값 의미 · 시간 40분

이럴 때 읽으세요 예제는 돌아가는데 내 의도대로 바꾸지 못하거나, 어제 만든 워크플로우를 다시 못 만들 때.

빠른 시작과 무엇이 다른가

빠른 시작 이 장
연결 연결도를 보며 따라 만듭니다 도식을 덮고 기억으로 만듭니다
설정값 표에 있는 안전한 시작값을 넣습니다 목표를 정하고 바꿀 값을 스스로 고릅니다
막혔을 때 증상별 대처 표를 봅니다 진단 순서로 원인을 좁혀 갑니다
결과물 이미지 한 장 다시 열어 재현되는 워크플로우 파일

기억으로 재구성하기

빈 캔버스에서 시작합니다. 빠른 시작 문서와 연결도를 닫고, 아래 노드 이름만 보고 직접 연결하세요. 막히는 지점이 곧 아직 이해하지 못한 부분입니다.

추가할 노드 7개입니다.

Load Checkpoint · CLIP Text Encode × 2 · Empty Latent Image · KSampler · VAE Decode · Save Image

먼저 스스로 시도합니다. 막힌 뒤에 아래 힌트를 펼칩니다.

힌트 1 — 어디서부터 연결할까

모든 데이터는 Load Checkpoint에서 출발합니다. 이 노드가 MODEL·CLIP·VAE 세 갈래를 내보내고, 각 갈래의 도착지가 서로 다릅니다. 세 출력이 각각 어디로 가야 하는지부터 정하면 나머지가 따라옵니다.

힌트 2 — KSampler에 들어가는 입력은 4개

model, positive, negative, latent_image입니다. 이 중 세 개는 다른 노드의 출력이고, 하나는 크기를 정하는 노드에서 옵니다. 4개가 다 연결되지 않으면 실행되지 않습니다.

힌트 3 — VAE는 어디서 오고 어디로 가는가

VAE는 Load Checkpoint에서 나와 KSampler를 거치지 않고 VAE Decode로 바로 갑니다. Latent를 눈에 보이는 픽셀로 바꾸는 마지막 단계에서만 필요하기 때문입니다.

힌트 4 — CLIP 하나를 두 곳으로

Load Checkpoint의 CLIP 출력 하나를 Positive와 Negative 두 노드에 모두 연결합니다. 출력 포트 하나에서 여러 선을 뽑을 수 있습니다.

자기 점검

  • 연결도를 보지 않고 노드 7개를 배치했다.
  • KSampler의 입력 4개를 모두 연결했다.
  • 실행 전 경고로 표시되는 노드가 없다.
  • Run으로 실행이 끝까지 진행되고 이미지가 나왔다.

네 개를 모두 만족하지 못했다면, 어긋난 항목이 다음 절의 어느 진단 항목에 해당하는지 확인하세요.

막혔을 때 진단 순서

증상을 보고 바로 값을 바꾸지 말고, 아래 순서로 원인을 좁힙니다. 순서를 지키면 엉뚱한 값을 건드려 문제를 키우는 일이 줄어듭니다.

연결선이 붙지 않는다

ComfyUI는 타입이 다른 포트끼리 연결되지 않도록 막습니다. 선을 끌어다 놓아도 붙지 않으면 타입이 다른 포트에 가져간 것입니다.

  1. 방향을 확인합니다. 노드 오른쪽 출력 → 다음 노드 왼쪽 입력이며, 반대 방향으로는 이어지지 않습니다.
  2. 색을 비교합니다. 같은 타입은 같은 색입니다. 색이 다르면 타입이 다릅니다.
  3. 타입을 바꿔야 하는 경우에는 변환 노드가 필요합니다. 이미지를 Latent로 넣으려면 VAE Encode, Latent를 이미지로 꺼내려면 VAE Decode를 거칩니다.

실행이 시작되지 않는다

필수 입력이 비어 있으면 ComfyUI가 실행 전에 막고 문제가 있는 노드를 표시합니다.

  1. 표시된 노드를 찾습니다.
  2. 그 노드의 입력 포트 중 비어 있는 것을 연결합니다.
  3. 연결 문제가 아니라 ckpt_name 같은 선택 목록이 비어 있는 경우라면, 해당 폴더에 모델 파일이 없는 것입니다. 설치 가이드의 모델 배치를 확인하세요.

이미지 대신 노이즈처럼 보인다

VAE Decode 자체를 빠뜨리는 실수는 타입이 맞지 않아 애초에 연결되지 않습니다. 아래 순서로 확인합니다.

  1. VAE를 먼저 확인합니다. 노이즈나 검은 화면은 VAE에서 시작되는 경우가 많습니다. 별도 Load VAE를 사용하고 있다면 파일이 지정되어 있는지, 모델과 같은 계열인지 봅니다. 별도 VAE를 사용할 이유가 없다면 체크포인트가 내보낸 VAE를 그대로 사용합니다. 계열이 다른 VAE를 물리면 색이 뒤집히거나 화면이 검게 나옵니다.
  2. VAE Decode의 samples가 KSampler의 출력에서 오는지 확인합니다. Empty Latent Image에서 곧바로 이어도 둘 다 LATENT 타입이라 선이 붙습니다. 이때 KSampler는 출력이 어디에도 사용되지 않아 실행 자체를 건너뛰고(ComfyUI는 출력 노드에서 거꾸로 필요한 노드만 실행합니다), 0으로 채워진 빈 Latent가 그대로 디코딩되어 아무 형태도 없는 단색 화면이 나옵니다. 자주 생기지는 않지만 오류 없이 통과하는 배선 실수라 눈에 띄지 않습니다.
  3. steps가 극단적으로 낮지 않은지 확인합니다. 형태가 잡히기 전에 끝나면 노이즈가 남은 채로 디코딩됩니다.

결과가 뿌옇고 형태가 덜 잡힌다

노이즈와는 다른 증상입니다. denoise부터 확인합니다.

Empty Latent Image는 노이즈가 아니라 0으로 채운 Latent를 내보내고, 노이즈는 KSampler가 seed로 만들어 넣습니다. 그래서 빈 Latent에서 denoise를 1.0 미만으로 두면 시작 시점의 노이즈 양과 실제 샘플링 스텝 수가 함께 줄어듭니다. 형태를 새로 만들 여지가 작아져 평평하고 뿌연 결과가 나옵니다.

  • 텍스트로 이미지를 만드는 작업에서는 denoise1.0 으로 둡니다.
  • 1.0 미만은 기존 이미지의 일부만 바꾸는 이미지→이미지 작업에서 사용합니다.
  • denoise가 1.0인데도 흐릿하면 steps를 올립니다.

결과가 매번 완전히 달라진다

KSampler의 seed 아래 control_after_generate 값 때문입니다.

동작 사용 시점
fixed seed를 그대로 유지 변수 하나만 바꿔 비교할 때
randomize 실행마다 새 seed 다양한 결과를 탐색할 때
increment / decrement seed를 1씩 증감 인접한 결과를 순서대로 훑을 때

비교 실험 중이라면 fixed가 기본입니다. 하나라도 통제되지 않은 값이 있으면 무엇이 결과를 바꿨는지 알 수 없습니다.

메모리 부족(OOM), 속도, 오류 메시지 등 그 밖의 문제는 문제 해결 가이드에 정리되어 있습니다. Flux 모델 관련 문제(로드 실패, CFG·Guidance 설정, 폴더 경로)는 Flux 가이드Flux 빠른 참조에 있습니다.

목표를 정해 값 고르기

빠른 시작에서는 CFG 하나만 바꿔 변수를 통제했습니다. 이번에는 "이 결과를 어떻게 바꾸고 싶은가"에서 출발해 바꿀 변수를 스스로 고릅니다.

먼저 목표를 한 문장으로 적습니다. 예: "구도는 유지하고 인물 얼굴만 더 선명하게." 그다음 그 목표에 대응하는 변수를 고릅니다.

지금 결과의 문제 먼저 만질 것 이유
프롬프트에 적은 요소가 안 보인다 Positive 프롬프트를 구체화한 뒤, 그다음 cfg 프롬프트에 없는 정보를 cfg로 만들어낼 수는 없습니다
원하지 않는 요소가 계속 섞인다 Negative 프롬프트 제외할 특징을 명시적으로 적습니다
색·대비가 과장되고 형태가 깨진다 cfg 낮추기 조건을 과하게 밀어붙인 상태입니다
형태가 덜 잡히고 흐릿하다 steps 올리기 다듬는 횟수가 부족합니다
구도는 좋은데 디테일만 아쉽다 schedulerkarras 저노이즈 구간에 스텝이 더 배분됩니다
구도 자체가 마음에 들지 않는다 seed 변경 조건은 그대로 두고 시작점만 바꿉니다
인물·건물 비율이 자주 깨진다 해상도를 모델 기본값으로 학습 해상도에서 크게 벗어나면 구조가 무너집니다

왜 프롬프트가 cfg보다 먼저인가

cfg이미 프롬프트에 있는 조건을 얼마나 강하게 따를지만 조절합니다. 원하는 요소를 적지 않은 상태에서 cfg만 올리면, 있지도 않은 조건을 강하게 밀어붙여 대비만 과해집니다. 순서를 바꾸면 원인을 잘못 짚게 됩니다.

한 번에 하나만 바꾸고, 바꾼 값과 결과를 기록합니다. 두 개를 동시에 바꾸면 어느 쪽이 효과를 냈는지 판단할 수 없습니다.

완료 기준

네 가지를 모두 만족했다면 이 장을 끝냈습니다.

  • 연결도를 보지 않고 워크플로우를 완성했다.
  • 막힌 지점을 진단 순서에 따라 스스로 해결했다.
  • 목표를 문장으로 적고, 바꿀 변수를 골라 한 번에 하나만 바꿨다.
  • 실행 전 경고로 표시되는 노드가 없다.

다음 단계


· 시작하기 · 이전: 프롬프트와 CLIP · 다음: 저장과 재현