ComfyUI ControlNet 강도 설정|적용 구간·영역 조건 비교

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

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

17A에서 제어 강도와 적용 구간의 차이를 비교하고, 선택 17B에서 인물과 화분을 좌우에 배치한 그림을 만듭니다.

1. 만들 결과

17A에서 제어 강도와 적용 구간의 차이를 비교하고, 선택 17B에서 인물과 화분을 좌우에 배치한 그림을 만듭니다.

제어 강도는 윤곽 조건의 영향 크기, 시작·종료는 그 조건을 적용할 생성 구간입니다. 종료 0.5는 전체 생성 과정의 앞 구간에 적용한다는 뜻이며 0.5초를 뜻하지 않습니다. 영역 조건은 문장의 영향을 줄 사각형 위치를 정하는 방법입니다. 픽셀을 오려 붙이거나 영역 밖의 생성을 완전히 막는 기능은 아닙니다.

2. 준비물

ComfyUI를 실행한 상태에서 시작합니다. 아래 모델이 이미 같은 폴더에 있으면 다시 받을 필요가 없습니다.

모델공식 파일·다운로드 위치설치 폴더 안에 넣을 곳선택할 노드처음 사용
SDXL Base 1.0sd_xl_base_1.0.safetensorsComfyUI\models\checkpoints체크포인트 로드4장
SDXL Canny Control-LoRAcontrol-lora-canny-rank256.safetensorsComfyUI\models\controlnet컨트롤넷 모델 로드16장
역할파일정확한 이름
실습 JSON실습 JSON 내려받기 (ZIP) ch17-control-C0.json
입력 PNG입력 PNG 내려받기 (ZIP) ch05_first_portrait_v2_00001_.png

파일 링크는 이 장의 실습 자료 ZIP으로 연결됩니다. 한 번 내려받아 압축을 푼 뒤 표에 적힌 JSON·PNG 파일을 선택하세요. JSON은 Ctrl+O로 열고, 입력 PNG는 해당 LoadImage에서 업로드합니다.

이번 기본 JSON이 저장할 파일

설치 폴더의 ComfyUI/output 아래에 다음 접두사로 저장됩니다. 뒤에는 자동 번호와 .png가 붙습니다. 이미 같은 이름이 있으면 번호가 올라갑니다.

  • guide/ch16_control_B_edges_00001_.png
  • guide/ch16_control_B_00001_.png

3. 따라 하기

  1. 17A — 윤곽 제어: 기본 C0 JSON을 Ctrl+O로 열고, 제공 인물 PNG·SDXL Base·Canny 제어 모델을 선택합니다. 16장의 B를 이미 만들었다면 같은 결과를 C0로 비교해도 됩니다.
  2. C0: 강도 1.0 / 시작 0.0 / 종료 1.0입니다. Canny는 0.1/0.2, seed=20261013, 28 steps, CFG 5.5, dpmpp_2m, karras, denoise 1을 확인하고 실행합니다. 정상 결과는 카메라 쪽을 보는 인물입니다.
기본 실습 뒤 선택 비교·추가 조작
  1. 선택 C1 JSON은 강도만 0.15, C2 JSON은 종료만 0.1로 바꿉니다. 각각 새 탭에서 입력 사진과 모델을 확인한 뒤 실행하세요. C0–C1, C0–C2를 비교합니다. C1과 C2끼리는 두 값이 다르므로 단일 변수 비교가 아닙니다.
  2. 17B — 영역 조건(선택): 아래 영역 JSON을 별도 탭에서 엽니다. 이 작업에는 ControlNet과 입력 사진이 없습니다. SDXL Base만 선택합니다.
  3. G는 전체 장면·조명, L은 왼쪽 인물, R은 오른쪽 화분 문장입니다. 아래 프롬프트 전문을 사용하세요. 얼굴·어깨 위주 구도와 두 대상이 선명한 장면을 요청합니다.
  4. 빈 잠재 이미지는 1216×832입니다. L은 너비 704·높이 832·x=0·y=0, R은 너비 640·높이 832·x=576·y=0, 두 영역 강도는 1.0입니다. 겹치는 구간은 x=576부터 703까지 128픽셀입니다. L/R 결합 뒤 G와 결합해 긍정 입력으로 보냅니다.
  5. 17B: seed=20261016 / fixed / 30 steps / CFG 5.5 / dpmpp_2m / karras / denoise 1로 실행합니다. guide/ch17_area_portrait 접두사의 결과에서 대상 수·좌우 위치·의상·화분·배경을 봅니다.

이번 실습의 설정

설정할 노드입력값
체크포인트 로드체크포인트 = 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
이미지 저장 · ch16_control_B_edges파일명 접두사 = guide/ch16_control_B_edges
KSamplerseed = 20261013
생성 후 제어 = fixed
steps = 28
CFG = 5.5
sampler = dpmpp_2m
scheduler = karras
denoise = 1.0
이미지 저장 · ch16_control_B파일명 접두사 = guide/ch16_control_B
입력할 프롬프트 전문

긍정 프롬프트

side profile studio photograph of one adult woman facing left, nose pointing to the left edge of the image, only one eye visible, shoulder-length dark brown hair, solid red turtleneck sweater, head and shoulders, plain light gray background, soft diffused studio light, realistic photography

부정 프롬프트

front view, facing camera, text, watermark, illustration, distorted face, duplicate person, hands in frame, blurry, low quality, patterned clothes
직접 구성하기 · 노드 12개와 연결 15개

빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.

노드 역할검색할 기술 이름
체크포인트 로드CheckpointLoaderSimple
빈 잠재 이미지EmptyLatentImage
이미지 로드 · 입력 사진LoadImage
컨트롤넷 모델 로드ControlNetLoader
긍정 프롬프트CLIPTextEncode
부정 프롬프트CLIPTextEncode
Canny 경계 필터Canny
컨트롤넷 적용ControlNetApplyAdvanced
이미지 저장 · ch16_control_B_edgesSaveImage
KSamplerKSampler
VAE 디코드VAEDecode
이미지 저장 · ch16_control_BSaveImage
순서출발 출력도착 입력
1체크포인트 로드
CLIP →
긍정 프롬프트
clip
2체크포인트 로드
CLIP →
부정 프롬프트
clip
3체크포인트 로드
모델 →
KSampler
모델
4컨트롤넷 적용
긍정 →
KSampler
긍정
5컨트롤넷 적용
부정 →
KSampler
부정
6빈 잠재 이미지
잠재 데이터 →
KSampler
잠재 입력
7KSampler
잠재 데이터 →
VAE 디코드
잠재 데이터
8체크포인트 로드
VAE →
VAE 디코드
vae
9VAE 디코드
이미지 →
이미지 저장 · ch16_control_B
이미지
10긍정 프롬프트
조건 →
컨트롤넷 적용
긍정
11부정 프롬프트
조건 →
컨트롤넷 적용
부정
12컨트롤넷 모델 로드
컨트롤넷 →
컨트롤넷 적용
컨트롤넷
13Canny 경계 필터
이미지 →
컨트롤넷 적용
이미지
14이미지 로드 · 입력 사진
이미지 →
Canny 경계 필터
이미지
15Canny 경계 필터
이미지 →
이미지 저장 · ch16_control_B_edges
이미지
선택 17B · 여성과 화분을 좌우에 배치하기

영역 실습 JSON 내려받기 (ZIP)

전체 1216×832
L: x=0, y=0, 704×832 / R: x=576, y=0, 640×832
가운데 x=576부터 703까지 128픽셀이 겹칩니다.

영역은 사진을 잘라 붙이는 틀이 아니라 문장의 영향을 줄 범위입니다. G는 두 대상·배경·조명을 함께 설명하고, L/R은 각각 인물/화분을 설명합니다. 얼굴과 어깨를 크게 담는 구도이므로 손·무릎 묘사 실습은 포함하지 않습니다.

영문 프롬프트의 head and shoulders는 얼굴·어깨 구도, turtleneck은 목을 덮는 니트, deep focus는 두 대상을 함께 선명하게 보이도록 하는 요청입니다. f/16은 사진에서 조리개를 나타내는 표현이며, 여기서는 실제 카메라 설정이 아닌 프롬프트 단어입니다.

설정할 노드입력값
체크포인트 로드체크포인트 = sd_xl_base_1.0.safetensors
빈 잠재 이미지너비 = 1216
높이 = 832
배치 크기 = 1
L · 여성 영역너비 = 704
높이 = 832
x = 0
y = 0
강도 = 1.0
R · 화분 영역너비 = 640
높이 = 832
x = 576
y = 0
강도 = 1.0
KSamplerseed = 20261016
생성 후 제어 = fixed
steps = 30
CFG = 5.5
sampler = dpmpp_2m
scheduler = karras
denoise = 1.0
이미지 저장 · ch17_area_portrait파일명 접두사 = guide/ch17_area_portrait
입력할 프롬프트 전문

L · 여성 상반신

close-up head and shoulders portrait of one adult woman, brown hair, pale blue turtleneck sweater, looking at camera, natural skin texture, shoulders cropped at bottom, sharp focus

부정 프롬프트

blurry, blurred plant, bokeh, shallow depth of field, soft focus, multiple pots, extra vase, bowl, duplicate plant, duplicate person, two people, collage, split image, text, watermark, full body, waist, legs, knees, hands, fingers, arms, illustration, painting

G · 전체 분위기

photograph of one adult woman on the left and one small potted green plant on the right, both subjects in sharp focus, deep focus photography, f/16, plain light gray background, soft diffused light, realistic photograph

R · 화분

one green rubber plant with distinct oval leaves and a visible stem, one white cylindrical ceramic flowerpot, entire pot visible on a wooden pedestal, sharp detailed product photograph, deep focus
직접 구성하기 · 노드 13개와 연결 17개

빈 작업판을 두 번 클릭해 아래 기술 이름으로 검색하고 노드를 추가합니다. 값 입력 뒤, 오른쪽 출력 점을 왼쪽 입력 점으로 끌어 연결하세요. 이름이 같은 노드는 역할·파일명으로 구별합니다.

노드 역할검색할 기술 이름
체크포인트 로드CheckpointLoaderSimple
빈 잠재 이미지EmptyLatentImage
L · 여성 상반신CLIPTextEncode
부정 프롬프트CLIPTextEncode
G · 전체 분위기CLIPTextEncode
R · 화분CLIPTextEncode
L · 여성 영역ConditioningSetArea
R · 화분 영역ConditioningSetArea
결합 1 · L + RConditioningCombine
결합 2 · G + 영역ConditioningCombine
KSamplerKSampler
VAE 디코드VAEDecode
이미지 저장 · ch17_area_portraitSaveImage
순서출발 출력도착 입력
1체크포인트 로드
CLIP →
L · 여성 상반신
clip
2체크포인트 로드
CLIP →
부정 프롬프트
clip
3체크포인트 로드
모델 →
KSampler
모델
4결합 2 · G + 영역
조건 →
KSampler
긍정
5부정 프롬프트
조건 →
KSampler
부정
6빈 잠재 이미지
잠재 데이터 →
KSampler
잠재 입력
7KSampler
잠재 데이터 →
VAE 디코드
잠재 데이터
8체크포인트 로드
VAE →
VAE 디코드
vae
9VAE 디코드
이미지 →
이미지 저장 · ch17_area_portrait
이미지
10체크포인트 로드
CLIP →
G · 전체 분위기
clip
11체크포인트 로드
CLIP →
R · 화분
clip
12L · 여성 상반신
조건 →
L · 여성 영역
조건
13R · 화분
조건 →
R · 화분 영역
조건
14L · 여성 영역
조건 →
결합 1 · L + R
조건 1
15R · 화분 영역
조건 →
결합 1 · L + R
조건 2
16G · 전체 분위기
조건 →
결합 2 · G + 영역
조건 1
17결합 1 · L + R
조건 →
결합 2 · G + 영역
조건 2
17B · 1216×832 실제 생성 결과. 여성 한 명은 왼쪽, 흰 화분 하나는 오른쪽에 있습니다. 얼굴·어깨 구도를 사용해 손·무릎은 화면에 들어오지 않습니다.
17B · 1216×832 실제 생성 결과. 여성 한 명은 왼쪽, 흰 화분 하나는 오른쪽에 있습니다. 얼굴·어깨 구도를 사용해 손·무릎은 화면에 들어오지 않습니다. 그림을 누르면 큰 화면으로 열립니다.
기능무엇을 제어하나요?
ControlNet윤곽 지도 같은 입력 조건으로 생성에 영향을 줌
영역 조건사각형 영역에 문장 조건의 영향을 배치
마스크 합성마스크 값에 따라 원본과 생성 픽셀을 섞음

4. 정상 결과 확인

C0는 양쪽 눈이 보이는 정면에 가까운 구도, C1은 왼쪽 옆모습, C2는 왼쪽으로 돌아간 얼굴과 달라진 턱·목선이 보입니다. 숫자가 품질 점수인 것은 아닙니다. 17B는 여성 한 명이 왼쪽, 흰 화분 하나가 오른쪽에 있고, 얼굴·니트·화분을 구별할 수 있으며 배경에 뚜렷한 접합선이 없는지 확인합니다.

17A 기준 C0 · 강도 1.0 / 시작 0.0 / 종료 1.0. 16장 B와 같은 결과를 기준으로 사용합니다.
17A 기준 C0 · 강도 1.0 / 시작 0.0 / 종료 1.0. 16장 B와 같은 결과를 기준으로 사용합니다. 그림을 누르면 큰 화면으로 열립니다.
선택 비교 · 17A의 강도와 종료 구간
C0 · 강도 1.0 / 종료 1.0. 기준 정면 구도
C0 · 강도 1.0 / 종료 1.0. 기준 정면 구도 그림을 누르면 큰 화면으로 열립니다.
C1 · 강도 0.15 / 종료 1.0. 왼쪽 옆모습
C1 · 강도 0.15 / 종료 1.0. 왼쪽 옆모습 그림을 누르면 큰 화면으로 열립니다.
C2 · 강도 1.0 / 종료 0.1. 왼쪽으로 돌아간 얼굴
C2 · 강도 1.0 / 종료 0.1. 왼쪽으로 돌아간 얼굴 그림을 누르면 큰 화면으로 열립니다.

C0–C1은 강도만, C0–C2는 종료 구간만 다릅니다. C1·C2의 옆모습은 의도한 비교 결과입니다. 강도와 종료는 서로 다른 방식으로 제어를 약하게 하며, 수치가 같거나 낮다고 같은 변화가 생기는 것은 아닙니다.

비교 조건별 JSON
조건JSON
C1 · 강도 0.15 / 종료 1.0ch17-control-C1.json (ZIP)
C2 · 강도 1.0 / 종료 0.1ch17-control-C2.json (ZIP)

각 JSON은 별도 탭에서 열고 입력 이미지·모델을 다시 선택하세요. 기본 실습과 선택 비교를 구별해 필요한 조건을 사용합니다.

5. 자주 생기는 문제

상황확인할 곳
종료 0.1이 0.1초인가요?시간이 아니라 모델의 생성 진행 구간입니다. 1.0은 끝까지 적용, 0.1은 초반 짧은 구간에 적용하는 설정입니다. 28단계의 정확히 2.8단계라는 뜻도 아닙니다.
강도 0.15도 윤곽을 그대로 따라야 하나요?윤곽의 영향이 약해져 문장의 옆모습 요구가 더 반영될 수 있습니다. 이 비교는 그 차이를 보는 정상 대조 실험입니다. 원본 구도를 강하게 따르려면 C0로 돌아갑니다.
영역 밖에 물체가 생기거나 화분이 늘어요영역은 문장의 영향 범위이며 대상 수를 강제로 고정하는 마스크가 아닙니다. 우선 제공 JSON의 세 문장·영역 크기·seed·생성값을 함께 맞춥니다. 다른 구도를 실험할 때도 완성 후 대상 수를 셉니다.
17B에 ControlNet이 연결되어 있어요17B JSON을 새 탭에서 엽니다. 17A 그래프에 영역 노드를 덧붙이는 실습이 아닙니다.

공통 오류와 용어는 용어·문제 해결에서 찾을 수 있습니다.

공식 참고 자료

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