ComfyUI 왕초보 가이드 9 / 29장 · 기준: ComfyUI 0.34.0 / 프런트엔드 1.49.6 · Windows x64 / NVIDIA RTX Portable. 다른 버전에서는 메뉴와 노드 표시가 다를 수 있습니다.
이 장의 실습 자료 ZIP 내려받기 (11.8MB)
JSON·입력 PNG·본문 원본 이미지를 담았습니다. 압축을 푼 뒤 본문에 적힌 파일을 선택하세요. 모델과 프로그램은 포함하지 않습니다. 본문의 WebP는 가벼운 표시용 사본이며, PNG의 작업 정보·투명도와 원본 픽셀 비교에는 ZIP 안의 PNG를 사용하세요.
한 번에 설정 하나만 바꾸며 어떤 변화가 생기는지 확인합니다.
1. 만들 결과
한 번에 설정 하나만 바꾸며 어떤 변화가 생기는지 확인합니다.
seed(시드)는 처음 쓸 무작위 잡음의 출발 번호, steps는 계산 단계 수, CFG는 문장 조건에 따라 결과를 유도하는 강도입니다. fixed는 실행 뒤 seed를 자동 변경하지 않는 설정입니다. seed는 인물 고유번호가 아니며 steps·CFG가 크다고 항상 더 좋은 그림이 되지는 않습니다.
2. 준비물
ComfyUI를 실행한 상태에서 시작합니다. 아래 모델이 이미 같은 폴더에 있으면 다시 받을 필요가 없습니다.
| 모델 | 공식 파일·다운로드 위치 | 설치 폴더 안에 넣을 곳 | 선택할 노드 | 처음 사용 |
|---|---|---|---|---|
| SDXL Base 1.0 | sd_xl_base_1.0.safetensors | ComfyUI\models\checkpoints | 체크포인트 로드 | 4장 |
| 역할 | 파일 | 정확한 이름 |
|---|---|---|
| 실습 JSON | 실습 JSON 내려받기 (ZIP) | ch0809-A-baseline.json |
파일 링크는 이 장의 실습 자료 ZIP으로 연결됩니다. 한 번 내려받아 압축을 푼 뒤 표에 적힌 JSON·PNG 파일을 선택하세요. JSON은 Ctrl+O로 열고, 입력 PNG는 해당 LoadImage에서 업로드합니다.
이번 기본 JSON이 저장할 파일
설치 폴더의 ComfyUI/output 아래에 다음 접두사로 저장됩니다. 뒤에는 자동 번호와 .png가 붙습니다. 이미 같은 이름이 있으면 번호가 올라갑니다.
guide/ch0809_A_portrait_00001_.png
3. 따라 하기
- 8장의 기준 A JSON을 엽니다. 아래 기준값으로 한 번 실행해 A를 저장합니다. 같은 조건의 A를 이미 만들었다면 그 PNG를 비교 기준으로 사용해도 됩니다.
- 기본 비교 D: A를 복제하고 seed만 20260910으로 바꿉니다. 생성 후 제어는 fixed로 유지합니다. 접두사는
guide/ch0809_D_portrait로 저장하고 한 번 실행합니다. - A와 D를 비교합니다. seed는 계산 시작의 난수 기준이며 인물 고유번호가 아닙니다.
기본 실습 뒤 선택 비교·추가 조작
- 선택 비교 E: A를 다시 열고 steps만 30으로 바꿉니다. seed는 20260909입니다.
guide/ch0809_E_portrait접두사로 저장하고 실행합니다. - 선택 비교 F: A에서 CFG만 5로 바꿉니다. steps는 20입니다.
guide/ch0809_F_portrait접두사로 저장하고 실행합니다. - 선택 비교 G: A에서 빈 잠재 이미지의 너비 1152 / 높이 896만 바꿉니다. CFG는 7입니다.
guide/ch0809_G_portrait접두사로 저장하고 실행합니다. 각 비교는 직전 변경본이 아닌 A에서 출발합니다.
이번 실습의 설정
| 설정할 노드 | 입력값 |
|---|---|
| 빈 잠재 이미지 | 너비 = 1024 높이 = 1024 배치 크기 = 1 |
| 체크포인트 로드 | 체크포인트 = sd_xl_base_1.0.safetensors |
| KSampler | seed = 20260909 생성 후 제어 = fixed steps = 20 CFG = 7 sampler = euler scheduler = normal denoise = 1 |
| 이미지 저장 · ch0809_A_portrait | 파일명 접두사 = guide/ch0809_A_portrait |
입력할 프롬프트 전문
긍정 프롬프트
photographic beauty portrait of a beautiful 22-year-old adult woman, youthful face, delicate balanced facial features, bright expressive eyes, subtle closed-mouth smile, light natural makeup, one person, close-up head and shoulders, looking at the camera, shoulder-length dark hair, wearing a simple cream-colored knit sweater, soft diffused window light, plain light gray background, natural skin texture, realistic photography
부정 프롬프트
text, watermark, blurry, low quality, distorted face, duplicate person, mature-looking face, deep facial lines, heavy makeup, exaggerated smile, open mouth, visible teeth, hands in frame, plastic skin
직접 구성하기 · 노드 7개와 연결 9개
빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.
| 노드 역할 | 검색할 기술 이름 |
|---|---|
| 긍정 프롬프트 | CLIPTextEncode |
| 부정 프롬프트 | CLIPTextEncode |
| 빈 잠재 이미지 | EmptyLatentImage |
| 체크포인트 로드 | CheckpointLoaderSimple |
| VAE 디코드 | VAEDecode |
| KSampler | KSampler |
| 이미지 저장 · ch0809_A_portrait | SaveImage |
| 순서 | 출발 출력 | 도착 입력 |
|---|---|---|
| 1 | 체크포인트 로드 모델 → | KSampler 모델 |
| 2 | 체크포인트 로드 CLIP → | 긍정 프롬프트 clip |
| 3 | 체크포인트 로드 CLIP → | 부정 프롬프트 clip |
| 4 | 긍정 프롬프트 조건 → | KSampler 긍정 |
| 5 | 부정 프롬프트 조건 → | KSampler 부정 |
| 6 | 빈 잠재 이미지 잠재 데이터 → | KSampler 잠재 입력 |
| 7 | 체크포인트 로드 VAE → | VAE 디코드 vae |
| 8 | VAE 디코드 이미지 → | 이미지 저장 · ch0809_A_portrait 이미지 |
| 9 | KSampler 잠재 데이터 → | VAE 디코드 잠재 데이터 |
4. 정상 결과 확인
A–D처럼 기준과 한 조건을 짝지어 비교합니다. steps·CFG를 높이는 것이 항상 보기 좋은 결과를 뜻하지 않으며, 다른 크기는 구도까지 바꿀 수 있습니다.
D에서는 얼굴 방향과 머리 길이가 달라집니다. E의 20→30단계 차이는 작습니다. F에서는 얼굴·머리·니트 표현이 함께 바뀌고, G에서는 가로 화면에 손과 상체 구도가 달라집니다. 큰 변화가 없다는 관찰도 비교 결과이며, 단계 수 증가를 무조건 품질 향상으로 해석하지 않습니다.

비교 조건별 JSON
| 조건 | JSON |
|---|---|
| D · seed | ch0809-D-seed.json (ZIP) |
| 선택 E · steps | ch0809-E-steps.json (ZIP) |
| 선택 F · CFG | ch0809-F-cfg.json (ZIP) |
| 선택 G · 크기 | ch0809-G-size.json (ZIP) |
각 JSON은 별도 탭에서 열고 입력 이미지·모델을 다시 선택하세요. 기본 실습과 선택 비교를 구별해 필요한 조건을 사용합니다.
D · seed의 문장·설정
| 설정할 노드 | 입력값 |
|---|---|
| 체크포인트 로드 | 체크포인트 = sd_xl_base_1.0.safetensors |
| 빈 잠재 이미지 | 너비 = 1024 높이 = 1024 배치 크기 = 1 |
| KSampler | seed = 20260910 생성 후 제어 = fixed steps = 20 CFG = 7 sampler = euler scheduler = normal denoise = 1 |
| 이미지 저장 · ch0809_D_portrait | 파일명 접두사 = guide/ch0809_D_portrait |
입력할 프롬프트 전문
부정 프롬프트
text, watermark, blurry, low quality, distorted face, duplicate person, mature-looking face, deep facial lines, heavy makeup, exaggerated smile, open mouth, visible teeth, hands in frame, plastic skin
긍정 프롬프트
photographic beauty portrait of a beautiful 22-year-old adult woman, youthful face, delicate balanced facial features, bright expressive eyes, subtle closed-mouth smile, light natural makeup, one person, close-up head and shoulders, looking at the camera, shoulder-length dark hair, wearing a simple cream-colored knit sweater, soft diffused window light, plain light gray background, natural skin texture, realistic photography
직접 구성하기 · 노드 7개와 연결 9개
빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.
| 노드 역할 | 검색할 기술 이름 |
|---|---|
| 부정 프롬프트 | CLIPTextEncode |
| 체크포인트 로드 | CheckpointLoaderSimple |
| VAE 디코드 | VAEDecode |
| 빈 잠재 이미지 | EmptyLatentImage |
| 긍정 프롬프트 | CLIPTextEncode |
| KSampler | KSampler |
| 이미지 저장 · ch0809_D_portrait | SaveImage |
| 순서 | 출발 출력 | 도착 입력 |
|---|---|---|
| 1 | 체크포인트 로드 모델 → | KSampler 모델 |
| 2 | 체크포인트 로드 CLIP → | 긍정 프롬프트 clip |
| 3 | 체크포인트 로드 CLIP → | 부정 프롬프트 clip |
| 4 | 긍정 프롬프트 조건 → | KSampler 긍정 |
| 5 | 부정 프롬프트 조건 → | KSampler 부정 |
| 6 | 빈 잠재 이미지 잠재 데이터 → | KSampler 잠재 입력 |
| 7 | 체크포인트 로드 VAE → | VAE 디코드 vae |
| 8 | VAE 디코드 이미지 → | 이미지 저장 · ch0809_D_portrait 이미지 |
| 9 | KSampler 잠재 데이터 → | VAE 디코드 잠재 데이터 |
선택 E · steps의 문장·설정
| 설정할 노드 | 입력값 |
|---|---|
| 체크포인트 로드 | 체크포인트 = sd_xl_base_1.0.safetensors |
| 빈 잠재 이미지 | 너비 = 1024 높이 = 1024 배치 크기 = 1 |
| KSampler | seed = 20260909 생성 후 제어 = fixed steps = 30 CFG = 7 sampler = euler scheduler = normal denoise = 1 |
| 이미지 저장 · ch0809_E_portrait | 파일명 접두사 = guide/ch0809_E_portrait |
입력할 프롬프트 전문
부정 프롬프트
text, watermark, blurry, low quality, distorted face, duplicate person, mature-looking face, deep facial lines, heavy makeup, exaggerated smile, open mouth, visible teeth, hands in frame, plastic skin
긍정 프롬프트
photographic beauty portrait of a beautiful 22-year-old adult woman, youthful face, delicate balanced facial features, bright expressive eyes, subtle closed-mouth smile, light natural makeup, one person, close-up head and shoulders, looking at the camera, shoulder-length dark hair, wearing a simple cream-colored knit sweater, soft diffused window light, plain light gray background, natural skin texture, realistic photography
직접 구성하기 · 노드 7개와 연결 9개
빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.
| 노드 역할 | 검색할 기술 이름 |
|---|---|
| 부정 프롬프트 | CLIPTextEncode |
| 체크포인트 로드 | CheckpointLoaderSimple |
| VAE 디코드 | VAEDecode |
| 빈 잠재 이미지 | EmptyLatentImage |
| 긍정 프롬프트 | CLIPTextEncode |
| KSampler | KSampler |
| 이미지 저장 · ch0809_E_portrait | SaveImage |
| 순서 | 출발 출력 | 도착 입력 |
|---|---|---|
| 1 | 체크포인트 로드 모델 → | KSampler 모델 |
| 2 | 체크포인트 로드 CLIP → | 긍정 프롬프트 clip |
| 3 | 체크포인트 로드 CLIP → | 부정 프롬프트 clip |
| 4 | 긍정 프롬프트 조건 → | KSampler 긍정 |
| 5 | 부정 프롬프트 조건 → | KSampler 부정 |
| 6 | 빈 잠재 이미지 잠재 데이터 → | KSampler 잠재 입력 |
| 7 | 체크포인트 로드 VAE → | VAE 디코드 vae |
| 8 | VAE 디코드 이미지 → | 이미지 저장 · ch0809_E_portrait 이미지 |
| 9 | KSampler 잠재 데이터 → | VAE 디코드 잠재 데이터 |
선택 F · CFG의 문장·설정
| 설정할 노드 | 입력값 |
|---|---|
| 체크포인트 로드 | 체크포인트 = sd_xl_base_1.0.safetensors |
| 빈 잠재 이미지 | 너비 = 1024 높이 = 1024 배치 크기 = 1 |
| KSampler | seed = 20260909 생성 후 제어 = fixed steps = 20 CFG = 5 sampler = euler scheduler = normal denoise = 1 |
| 이미지 저장 · ch0809_F_portrait | 파일명 접두사 = guide/ch0809_F_portrait |
입력할 프롬프트 전문
부정 프롬프트
text, watermark, blurry, low quality, distorted face, duplicate person, mature-looking face, deep facial lines, heavy makeup, exaggerated smile, open mouth, visible teeth, hands in frame, plastic skin
긍정 프롬프트
photographic beauty portrait of a beautiful 22-year-old adult woman, youthful face, delicate balanced facial features, bright expressive eyes, subtle closed-mouth smile, light natural makeup, one person, close-up head and shoulders, looking at the camera, shoulder-length dark hair, wearing a simple cream-colored knit sweater, soft diffused window light, plain light gray background, natural skin texture, realistic photography
직접 구성하기 · 노드 7개와 연결 9개
빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.
| 노드 역할 | 검색할 기술 이름 |
|---|---|
| 부정 프롬프트 | CLIPTextEncode |
| 체크포인트 로드 | CheckpointLoaderSimple |
| VAE 디코드 | VAEDecode |
| 빈 잠재 이미지 | EmptyLatentImage |
| 긍정 프롬프트 | CLIPTextEncode |
| KSampler | KSampler |
| 이미지 저장 · ch0809_F_portrait | SaveImage |
| 순서 | 출발 출력 | 도착 입력 |
|---|---|---|
| 1 | 체크포인트 로드 모델 → | KSampler 모델 |
| 2 | 체크포인트 로드 CLIP → | 긍정 프롬프트 clip |
| 3 | 체크포인트 로드 CLIP → | 부정 프롬프트 clip |
| 4 | 긍정 프롬프트 조건 → | KSampler 긍정 |
| 5 | 부정 프롬프트 조건 → | KSampler 부정 |
| 6 | 빈 잠재 이미지 잠재 데이터 → | KSampler 잠재 입력 |
| 7 | 체크포인트 로드 VAE → | VAE 디코드 vae |
| 8 | VAE 디코드 이미지 → | 이미지 저장 · ch0809_F_portrait 이미지 |
| 9 | KSampler 잠재 데이터 → | VAE 디코드 잠재 데이터 |
선택 G · 크기의 문장·설정
| 설정할 노드 | 입력값 |
|---|---|
| 체크포인트 로드 | 체크포인트 = sd_xl_base_1.0.safetensors |
| KSampler | seed = 20260909 생성 후 제어 = fixed steps = 20 CFG = 7 sampler = euler scheduler = normal denoise = 1 |
| 빈 잠재 이미지 | 너비 = 1152 높이 = 896 배치 크기 = 1 |
| 이미지 저장 · ch0809_G_portrait | 파일명 접두사 = guide/ch0809_G_portrait |
입력할 프롬프트 전문
부정 프롬프트
text, watermark, blurry, low quality, distorted face, duplicate person, mature-looking face, deep facial lines, heavy makeup, exaggerated smile, open mouth, visible teeth, hands in frame, plastic skin
긍정 프롬프트
photographic beauty portrait of a beautiful 22-year-old adult woman, youthful face, delicate balanced facial features, bright expressive eyes, subtle closed-mouth smile, light natural makeup, one person, close-up head and shoulders, looking at the camera, shoulder-length dark hair, wearing a simple cream-colored knit sweater, soft diffused window light, plain light gray background, natural skin texture, realistic photography
직접 구성하기 · 노드 7개와 연결 9개
빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.
| 노드 역할 | 검색할 기술 이름 |
|---|---|
| 부정 프롬프트 | CLIPTextEncode |
| 체크포인트 로드 | CheckpointLoaderSimple |
| VAE 디코드 | VAEDecode |
| 긍정 프롬프트 | CLIPTextEncode |
| KSampler | KSampler |
| 빈 잠재 이미지 | EmptyLatentImage |
| 이미지 저장 · ch0809_G_portrait | SaveImage |
| 순서 | 출발 출력 | 도착 입력 |
|---|---|---|
| 1 | 체크포인트 로드 모델 → | KSampler 모델 |
| 2 | 체크포인트 로드 CLIP → | 긍정 프롬프트 clip |
| 3 | 체크포인트 로드 CLIP → | 부정 프롬프트 clip |
| 4 | 긍정 프롬프트 조건 → | KSampler 긍정 |
| 5 | 부정 프롬프트 조건 → | KSampler 부정 |
| 6 | 빈 잠재 이미지 잠재 데이터 → | KSampler 잠재 입력 |
| 7 | 체크포인트 로드 VAE → | VAE 디코드 vae |
| 8 | VAE 디코드 이미지 → | 이미지 저장 · ch0809_G_portrait 이미지 |
| 9 | KSampler 잠재 데이터 → | VAE 디코드 잠재 데이터 |
5. 자주 생기는 문제
| 상황 | 확인할 곳 |
|---|---|
| seed 숫자가 저절로 바뀌어요 | KSampler의 생성 후 제어를 fixed로 바꿉니다. |
| 어떤 값 때문에 달라졌는지 모르겠어요 | 각 비교를 A JSON에서 시작하고 해당 항목 하나만 바꾸세요. 파일 접두사 변경은 보관을 위한 변경입니다. |
공통 오류와 용어는 용어·문제 해결에서 찾을 수 있습니다.
공식 참고 자료
준비 단계에서 PC 정보가 헷갈린다면 GPU·메모리 등 내 컴퓨터 사양 확인 방법을 함께 참고하세요. 이 장의 결과와 작업 JSON을 보관한 뒤 다음 실습으로 넘어가면 다시 비교하기 쉽습니다.


