ComfyUI 여러 장 생성하기|배치·요청 수·seed와 결과 선택

ComfyUI 왕초보 가이드 19 / 29장 · 기준: ComfyUI 0.34.0 / 프런트엔드 1.49.6 · Windows x64 / NVIDIA RTX Portable. 다른 버전에서는 메뉴와 노드 표시가 다를 수 있습니다.

이 장의 실습 자료 ZIP 내려받기 (10.0MB)
JSON·입력 PNG·본문 원본 이미지를 담았습니다. 압축을 푼 뒤 본문에 적힌 파일을 선택하세요. 모델과 프로그램은 포함하지 않습니다. 본문의 WebP는 가벼운 표시용 사본이며, PNG의 작업 정보·투명도와 원본 픽셀 비교에는 ZIP 안의 PNG를 사용하세요.

같은 조건에서 seed만 바꾼 인물 후보 네 장을 만들고, 목적에 맞는 한 장을 골라 저장한 작업으로 다시 생성합니다.

1. 만들 결과

목표는 카메라 쪽을 보는 인물 한 명, 붉은색 계열의 목폴라 니트, 단순한 배경입니다. 네 후보에서 이 조건을 먼저 확인하고, 선택한 결과의 seed와 작업 구성을 보관합니다. 마음에 드는 얼굴만 보고 옷·대상 수·경계를 놓치지 않는 연습입니다.

선택한 C를 저장한 JSON으로 다시 생성한 실제 결과 · seed 20261013. 붉은 계열 니트의 올라온 목 부분과 한 명의 정면 구도를 기준으로 골랐습니다.
선택한 C를 저장한 JSON으로 다시 생성한 실제 결과 · seed 20261013. 붉은 계열 니트의 올라온 목 부분과 한 명의 정면 구도를 기준으로 골랐습니다. 그림을 누르면 큰 화면으로 열립니다.

18장의 여섯 그룹과 연결을 이어 씁니다. 18장은 옆모습 문장과 정면 윤곽의 영향을 비교했던 작업이므로, 이번 제공 JSON은 문장을 정면 인물에 맞췄습니다. 네 후보를 비교하는 동안에는 문장·모델·크기·제어값을 모두 고정하고 seed만 바꿉니다.

용어·화면 위치쉬운 뜻이번 값
큐(Queue)계산할 작업이 기다리는 대기줄입니다. 실행 중인 작업과 대기 중인 작업이 나뉩니다.작업 네 개를 한 번에 예약
상단 실행 버튼 왼쪽의 배치 수이 버전에서는 실행을 몇 번 요청할지 정하는 수입니다. 본문에서는 요청 수라고 부릅니다.후보 생성 때 4 → 끝난 뒤 1
빈 잠재 이미지의 배치 크기(batch_size)한 작업이 한꺼번에 생성할 이미지 수입니다. 상단의 요청 수와 다른 값입니다.계속 1
seed / incrementseed는 시작 잡음의 번호입니다. increment는 다음 요청에 쓸 번호를 1씩 늘립니다.20261011, 20261012, 20261013, 20261014
fixedseed를 자동으로 바꾸지 않습니다. 선택한 결과의 조건을 유지할 때 씁니다.선택 C: 20261013 / fixed

2. 준비물

실행 중인 ComfyUI와 기존 SDXL Base·Canny 모델을 사용합니다. 모델을 이미 준비했다면 추가 다운로드나 설치가 필요 없습니다.

모델공식 파일·다운로드 위치설치 폴더 안에 넣을 곳선택할 노드처음 사용
SDXL Base 1.0sd_xl_base_1.0.safetensorsComfyUI\models\checkpoints체크포인트 로드4장
SDXL Canny Control-LoRAcontrol-lora-canny-rank256.safetensorsComfyUI\models\controlnet컨트롤넷 모델 로드16장
용도받을 파일
후보 네 장을 만들 출발 작업ch19-candidates.json (ZIP)
윤곽을 뽑을 입력 사진ch05_first_portrait_v2_00001_.png (ZIP)
선택한 C의 참고·복구용 작업ch19-selected-C.json (ZIP)

두 JSON은 역할이 다릅니다. 처음에는 ch19-candidates.json으로 시작하세요. ch19-selected-C.json은 선택·저장을 마친 참고용 완성본입니다. JSON이 글자로 열리면 링크를 오른쪽 클릭 → 다른 이름으로 링크 저장을 사용합니다.

3. 따라 하기

A. 한 장씩 네 번 생성하기

  1. 출발 작업을 엽니다. ComfyUI에서 Ctrl+O → ch19-candidates.json을 선택합니다. 그래프 → 다른 이름으로 저장에서 작업 이름을 ch19-my-candidates로 정합니다.
  2. 모델과 입력을 선택합니다. 체크포인트 로드는 sd_xl_base_1.0.safetensors, 컨트롤넷 모델 로드는 control-lora-canny-rank256.safetensors를 선택합니다. 이미지 로드 노드 안의 업로드 버튼으로 준비물 PNG를 넣습니다. 이번 단계는 작업판 전체에 PNG를 끌어놓는 동작과 다릅니다.
  3. 생성값을 확인합니다. 05 생성 그룹의 빈 잠재 이미지는 1024 × 1024 / 배치 크기 1입니다. KSampler의 시드(seed)는 20261011, 생성 후 제어는 increment로 둡니다. 숫자는 두 번 클릭해 입력하고, 모드는 값 부분을 클릭해 목록에서 고릅니다. 글자가 작으면 작업판을 확대하세요.
  4. 상단 요청 수만 4로 바꿉니다. 오른쪽 위 실행 버튼 바로 왼쪽의 숫자 칸(화면 이름: 배치 수)에 4를 입력하고 Tab을 누릅니다. 파란 실행 버튼은 한 번만 누릅니다. 기본 실행을 사용하며 자동 반복 모드는 켜지 않습니다.
  5. 네 작업이 끝나면 요청 수를 1로 돌립니다. 활성 작업 수가 0이 될 때까지 기다립니다. 요청 수를 1로 되돌려야 다음의 재현 실습에서 한 장만 요청하게 됩니다. 예약한 작업을 줄이고 싶을 때는 아래 문제 해결의 취소 순서를 따릅니다.
실제 실행 도구 모음 · 숫자 4는 네 작업을 예약하는 요청 수입니다. 빈 잠재 이미지의 배치 크기는 1을 유지했습니다.
실제 실행 도구 모음 · 숫자 4는 네 작업을 예약하는 요청 수입니다. 빈 잠재 이미지의 배치 크기는 1을 유지했습니다. 그림을 누르면 큰 화면으로 열립니다.
실제 예약 후 KSampler 화면 · increment 상태에서 다음 요청 값 20261015가 표시됩니다. 마지막 후보 D에 사용한 값은 20261014입니다.
실제 예약 후 KSampler 화면 · increment 상태에서 다음 요청 값 20261015가 표시됩니다. 마지막 후보 D에 사용한 값은 20261014입니다. 그림을 누르면 큰 화면으로 열립니다.
고정할 설정·프롬프트·연결

후보 비교 중에는 아래 값과 연결을 유지합니다. seed가 커진다고 품질이 올라가는 것은 아닙니다.

설정할 노드입력값
체크포인트 로드체크포인트 = sd_xl_base_1.0.safetensors
빈 잠재 이미지너비 = 1024
높이 = 1024
배치 크기 = 1
이미지 로드 · 입력 사진입력 파일 = ch05_first_portrait_v2_00001_.png
컨트롤넷 모델 로드제어 모델 = control-lora-canny-rank256.safetensors
Canny 경계 필터낮은 임계값 = 0.1
높은 임계값 = 0.2
컨트롤넷 적용강도 = 1.0
시작 = 0.0
종료 = 1.0
윤곽 저장 · ch19_candidates_edges파일명 접두사 = guide/ch19_candidates_edges
KSamplerseed = 20261011
생성 후 제어 = increment
steps = 28
CFG = 5.5
sampler = dpmpp_2m
scheduler = karras
denoise = 1.0
후보 인물 저장 · ch19_candidates파일명 접두사 = guide/ch19_candidates
입력할 프롬프트 전문

긍정 프롬프트

front facing studio photograph of one adult woman looking at the camera, shoulder-length dark brown hair, solid red turtleneck sweater, head and shoulders, plain light gray background, soft diffused studio light, realistic photography

부정 프롬프트

side profile, text, watermark, illustration, distorted face, duplicate person, hands in frame, blurry, low quality, patterned clothes
현재 작업의 노드·연결 목록 · 노드 12개와 연결 15개

제공 JSON에 이미 들어 있는 노드와 연결입니다. 실수로 선을 바꿨을 때 이 목록과 대조하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.

노드 역할검색할 기술 이름
체크포인트 로드CheckpointLoaderSimple
빈 잠재 이미지EmptyLatentImage
이미지 로드 · 입력 사진LoadImage
컨트롤넷 모델 로드ControlNetLoader
긍정 프롬프트CLIPTextEncode
부정 프롬프트CLIPTextEncode
Canny 경계 필터Canny
컨트롤넷 적용ControlNetApplyAdvanced
윤곽 저장 · ch19_candidates_edgesSaveImage
KSamplerKSampler
VAE 디코드VAEDecode
후보 인물 저장 · ch19_candidatesSaveImage
순서출발 출력도착 입력
1체크포인트 로드
CLIP →
긍정 프롬프트
clip
2체크포인트 로드
CLIP →
부정 프롬프트
clip
3체크포인트 로드
모델 →
KSampler
모델
4컨트롤넷 적용
긍정 →
KSampler
긍정
5컨트롤넷 적용
부정 →
KSampler
부정
6빈 잠재 이미지
잠재 데이터 →
KSampler
잠재 입력
7KSampler
잠재 데이터 →
VAE 디코드
잠재 데이터
8체크포인트 로드
VAE →
VAE 디코드
vae
9VAE 디코드
이미지 →
후보 인물 저장 · ch19_candidates
이미지
10긍정 프롬프트
조건 →
컨트롤넷 적용
긍정
11부정 프롬프트
조건 →
컨트롤넷 적용
부정
12컨트롤넷 모델 로드
컨트롤넷 →
컨트롤넷 적용
컨트롤넷
13Canny 경계 필터
이미지 →
컨트롤넷 적용
이미지
14이미지 로드 · 입력 사진
이미지 →
Canny 경계 필터
이미지
15Canny 경계 필터
이미지 →
윤곽 저장 · ch19_candidates_edges
이미지

B. 후보 네 장에서 한 장 고르기

  1. 결과 폴더를 엽니다. 설치 폴더의 ComfyUI/output/guide에서 이름이 ch19_candidates_로 시작하는 인물 PNG를 찾습니다. 새로 만든 네 파일을 이름 순서 또는 수정 시각으로 확인하고 이미지 뷰어에서 넘겨 보세요. ch19_candidates_edges_는 윤곽 그림이므로 후보에서 빼세요.
  2. 조건에 맞는지 먼저 봅니다. 인물이 한 명인지, 카메라 쪽을 보는지, 니트가 붉은 계열이고 목을 덮는 형태인지 확인합니다. 이어 눈·입과 옷의 경계가 크게 무너지지 않았는지 원본 크기로 봅니다.
  3. 이번 예제에서는 C를 선택합니다. 아래 비교표에서 C는 목을 덮는 붉은 니트와 정면 구도에 가장 잘 맞습니다. B는 붉은 니트지만 목을 덮지 않습니다. 선호와 조건 충족은 구별해서 고르세요.
후보실제 사용 seed선택 판단
A20261011회색 몸판과 붉은 목·소매가 섞여 단색 붉은 니트 조건에서 제외
B20261012붉은 니트지만 둥근 목둘레여서 목폴라 조건에서 제외
C · 선택20261013한 명의 정면 구도와 붉은 목폴라 조건에 가장 잘 맞음
D20261014니트가 회색 계열이며 목을 덮지 않아 제외

아래는 실제 후보 비교이며 프로그램 화면 캡처가 아닙니다. A·B·D는 선택에서 제외한 이유를 배우는 대조 자료입니다. 모든 후보를 성공작으로 취급하지 않습니다. 같은 시도를 무한히 반복하기보다 목적에 맞는 후보를 선택하거나, 모두 어긋났다면 문장·제어의 충돌을 한 항목씩 조정합니다.

A · 제외: 회색과 붉은색이 섞인 옷 · seed 20261011
A · 제외: 회색과 붉은색이 섞인 옷 · seed 20261011 그림을 누르면 큰 화면으로 열립니다.
B · 제외: 붉은 니트이지만 낮은 목둘레 · seed 20261012
B · 제외: 붉은 니트이지만 낮은 목둘레 · seed 20261012 그림을 누르면 큰 화면으로 열립니다.
C · 선택: 붉은 목폴라와 정면 구도 · seed 20261013
C · 선택: 붉은 목폴라와 정면 구도 · seed 20261013 그림을 누르면 큰 화면으로 열립니다.
D · 제외: 회색 니트와 낮은 목둘레 · seed 20261014
D · 제외: 회색 니트와 낮은 목둘레 · seed 20261014 그림을 누르면 큰 화면으로 열립니다.

네 장의 구도가 비슷한 것은 같은 Canny 윤곽으로 제어했기 때문입니다. seed는 얼굴 신원을 고정하는 번호가 아닙니다. 배경색도 완전히 같은 회색으로 고정되지는 않습니다. 이번 선택 기준은 붉은 목폴라·인물 수·얼굴 방향이며, 정확한 색상 맞추기는 별도 수정이 필요합니다.

C. 선택한 PNG의 작업을 복원하고 고정하기

  1. 선택한 원본 PNG를 작업으로 엽니다. ComfyUI에서 Ctrl+O → 방금 만든 후보 C의 PNG를 선택합니다. 이번에는 이미지 로드 노드의 업로드 버튼을 누르지 않습니다. PNG 안에 저장된 전체 워크플로를 열어야 합니다. 예제에서는 처음 생성한 네 인물 파일 중 세 번째였지만, 파일 뒤 자동 번호는 기존 파일 수에 따라 달라질 수 있습니다.
  2. 복원된 seed를 보고 fixed로 바꿉니다. 예제 C의 KSampler는 20261013으로 돌아옵니다. 생성 후 제어의 값 부분을 클릭해 fixed를 선택합니다. 상단 요청 수 1, 빈 잠재 이미지의 배치 크기 1도 유지합니다. 직접 고른 다른 후보라면 그 PNG에서 복원된 seed를 사용하세요.
  3. 선택 결과의 저장 이름을 구별합니다. 06 출력 그룹의 후보 인물 저장 노드에서 파일명 접두사를 두 번 클릭해 guide/ch19_selected_C로 바꿉니다. 윤곽 저장 노드의 접두사는 그대로 둡니다. 접두사는 저장 이름만 바꾸며 그림을 바꾸는 설정은 아닙니다.
  4. 일반 JSON으로 보관합니다. 왼쪽 위 그래프 → 내보내기를 누르고 이름을 ch19-my-selected-C로 입력해 확인합니다. 내보내기(API)와 구별합니다. 저장된 ch19-my-selected-C.json은 입력 PNG와 함께 보관합니다.
  5. 저장한 JSON을 다시 열어 한 번 실행합니다. Ctrl+O → ch19-my-selected-C.json → 같은 모델·입력 확인 → 실행 한 번 순서입니다. 결과는 ComfyUI/output/guide/ch19_selected_C_…png로 저장됩니다. 자동 번호가 바뀌어도 사용 seed가 바뀌었다는 뜻은 아닙니다.
실제 다시 실행한 화면 · seed 20261013과 fixed, 선택 결과용 접두사, 생성된 인물을 함께 확인할 수 있습니다.
실제 다시 실행한 화면 · seed 20261013과 fixed, 선택 결과용 접두사, 생성된 인물을 함께 확인할 수 있습니다. 그림을 누르면 큰 화면으로 열립니다.
선택 실습 · 다른 후보도 fixed로 다시 사용하기

아래 파일은 해당 후보의 실제 사용 seed를 fixed로 보관한 참고용 작업입니다. 하나를 Ctrl+O로 열고 입력·모델을 선택한 뒤 상단 요청 수 1로 실행합니다. 여러 값을 한꺼번에 바꾸기 전에 이 파일을 기준으로 삼으세요.

randomize는 다음 seed를 무작위로 바꾸는 모드입니다. 이번 네 장의 비교에는 사용하지 않았습니다. 정확한 후보 순서를 따라가려면 기본 실습처럼 increment를 사용하세요. 배치 크기를 4로 바꾸는 실습은 하지 않습니다. 한꺼번에 계산하는 장수가 늘면 메모리 사용도 커질 수 있으므로 여기서는 한 장씩 네 작업으로 진행합니다.

4. 정상 결과 확인

확인할 것정상 결과
후보 생성서로 다른 인물 결과 네 장. 입력·문장·모델·설정은 같고 seed는 네 값입니다.
선택 이유예제에서는 C가 한 명의 정면 구도와 붉은 목폴라 조건에 가장 잘 맞습니다.
재사용C의 PNG로 작업을 복원하고 seed 20261013 / fixed인 일반 JSON을 저장할 수 있습니다.
다시 실행저장한 JSON으로 생성한 결과가 선택한 C와 같은 구도·옷·얼굴을 보여줍니다.
보관 파일내 선택 JSON + 입력 PNG + 선택 결과 PNG를 보관합니다. 큰 모델은 기존 models 폴더를 사용합니다.

이 PC에서 위 네 후보를 실제 생성하고, C의 PNG에서 복원해 내보낸 일반 JSON을 다시 열어 생성했습니다. 선택 C와 다시 생성한 결과는 1024×1024 크기와 RGB 픽셀이 같았습니다. PNG 안의 저장 정보나 파일명까지 같다는 뜻은 아닙니다.

5. 자주 생기는 문제

상황해결 방법
네 번 실행했는데 모두 같은 그림이에요KSampler의 생성 후 제어가 fixed였는지 확인합니다. 후보용 JSON을 다시 열어 seed 20261011 / increment로 시작하세요. 같은 조건의 계산을 재사용하는 캐시는 오류가 아닙니다.
네 장을 원했는데 훨씬 많이 생겼어요상단 요청 수와 노드의 배치 크기를 둘 다 4로 만들었거나 실행을 여러 번 눌렀을 수 있습니다. 기본값은 상단 4, 노드 1이며 실행 한 번입니다. 여기에 윤곽 PNG도 별도로 생길 수 있습니다.
실행을 잘못 여러 번 눌렀어요활성 작업 수를 눌러 대기열을 펼칩니다. 대기 중 작업의 비우기는 예약을, 현재 실행 취소는 계산 중 작업을 멈춥니다. 다른 작업도 있으면 전체 비우기 대신 해당 작업만 취소하세요. 상단 숫자를 1로 바꾸는 것만으로 이미 예약된 작업이 없어지지는 않습니다.
seed가 20261015라서 그 값으로 다시 만들었어요그 값은 네 작업을 예약한 뒤의 다음 요청용 번호입니다. 선택한 원본 PNG를 Ctrl+O로 열어 사용 seed를 복원하고 fixed로 바꿉니다. 예제 C는 20261013입니다.
PNG를 열었는데 작업이 복원되지 않아요메신저·편집기로 저장한 사본은 작업 정보가 빠질 수 있습니다. ComfyUI/output의 원본 PNG 또는 아래 제공 JSON을 사용합니다. 캡처 이미지에서는 워크플로가 복원되지 않습니다.
결과 PNG를 입력 사진으로 넣어 버렸어요후보 C의 PNG는 전체 작업 복원용입니다. 출발 JSON 또는 선택 JSON을 다시 열고 이미지 로드에는 준비물 ch05_first_portrait_v2_00001_.png를 선택하세요.
윤곽은 한 장만 늘고 인물만 네 장 생겼어요입력과 Canny 값이 같아 윤곽 계산·저장이 캐시로 재사용될 수 있습니다. edges 파일 수로 후보 수를 세지 말고 인물 결과 네 장을 확인하세요.
C를 다시 만들었는데 달라요선택 seed·fixed·같은 입력 PNG·모델·문장·크기·제어 강도를 확인합니다. 참고 ch19-selected-C.json으로 돌아갈 수 있습니다. JSON만으로 모델과 입력 파일이 함께 이동하지는 않습니다.
배경색·옷 색이 문장과 달라요문장이 모든 요소를 정확히 고정하지는 않습니다. 후보 선택에서 제외할 조건을 정하고, 모두 어긋나면 seed만 계속 바꾸기보다 문장과 윤곽 제어를 한 항목씩 조절합니다. 부분 색 수정은 11장을 참조하세요.

공통 용어와 오류는 용어·문제 해결, seed의 기초는 9장, PNG·JSON 보관은 6장에서 다시 볼 수 있습니다.

준비 단계에서 PC 정보가 헷갈린다면 GPU·메모리 등 내 컴퓨터 사양 확인 방법을 함께 참고하세요. 이 장의 결과와 작업 JSON을 보관한 뒤 다음 실습으로 넘어가면 다시 비교하기 쉽습니다.