ComfyUI 인페인트 강도 조절|원본 보존과 마스크 경계

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

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

크림색 니트를 파란 니트로 바꾸면서 얼굴과 배경을 보존하고, 강도·수정 범위·경계 설정을 구별합니다.

1. 만들 결과

바꿀 것: 크림색 니트 → 파란 니트. 지킬 것: 얼굴·머리·바깥 배경. 옷의 짜임과 주름은 다시 만들어져도 괜찮다는 조건으로 시작합니다. 색만 바꾸고 실 한 올까지 그대로 유지하는 색 보정 실습은 아닙니다.

입력 원본 · 11장에서 사용한 가상 인물과 크림색 니트.
입력 원본 · 11장에서 사용한 가상 인물과 크림색 니트. 그림을 누르면 큰 화면으로 열립니다.
기본 완성 결과 · denoise 0.85, 확장 24, 경계 흐림 9 / 3.0. 같은 입력으로 실제 생성했습니다.
기본 완성 결과 · denoise 0.85, 확장 24, 경계 흐림 9 / 3.0. 같은 입력으로 실제 생성했습니다. 그림을 누르면 큰 화면으로 열립니다.

11장에서는 부드러운 마스크로 부분 수정을 완성했습니다. 이번에는 그 작업을 그대로 이어 얼마나 바꿀지, 어디까지 바꿀지, 원본을 어떻게 보존할지를 분리해 배웁니다. 11장의 검증된 0.85 결과를 기준으로 삼고, 낮은 강도와 마스크 설정을 새로 실행해 비교했습니다.

아래에서 말하는 목단은 니트 목둘레를 따라 붙은 가장자리입니다. 골지(ribbed)는 그 부분에 세로로 반복되는 볼록한 줄무늬를 뜻합니다. 옷색과 함께 이 가장자리가 자연스럽게 이어지는지도 봅니다.

조절하는 것쉽게 말하면이 장의 기본값
denoise · 노이즈 제거량선택한 부분을 다시 만들 때 원본에서 벗어날 여지를 조절합니다. 높이면 색뿐 아니라 짜임·주름·목둘레도 더 바뀔 수 있습니다.0.85
마스크 확장 · expand수정할 영역을 넓힙니다. 강도를 높여도 마스크 밖에 남은 옷은 수정되지 않으므로 별도로 다룹니다.24
경계 흐림 · blur_radius / sigma수정 부분과 원본이 만나는 가장자리를 서서히 섞습니다. 숫자가 크다고 항상 자연스러운 것은 아닙니다.9 / 3.0
최종 합성원본 위에 수정된 부분만 얹습니다. 얼굴과 배경의 원본 픽셀을 보존하는 마지막 단계입니다.원본을 바탕으로 사용

2. 준비물

11장에서 사용한 SDXL Base와 입력 PNG 두 장을 사용합니다. 새 모델·LoRA·커스텀 노드는 필요 없습니다. 아래 세 파일만 준비하면 기본 실습을 시작할 수 있습니다.

모델공식 파일·다운로드 위치설치 폴더 안에 넣을 곳선택할 노드처음 사용
SDXL Base 1.0sd_xl_base_1.0.safetensorsComfyUI\models\checkpoints체크포인트 로드4장
파일역할·둘 곳
ch22-inpaint.json (ZIP) 노드·설정·문장을 담은 일반 워크플로. 찾기 쉬운 실습 폴더에 보관합니다.
ch05_first_portrait_v2_00001_.png (ZIP) 수정 전 원본. ComfyUI/input에 둡니다.
ch11_knit_mask_r02_rgba.png (ZIP) 투명도에 수정 범위가 담긴 마스크 PNG. ComfyUI/input에 둡니다.
  1. 탐색기 한 창에서 ComfyUI/input 폴더를 먼저 엽니다. 다른 창에서 받은 PNG 두 장을 선택해 복사하고, 열어 둔 input 창에 붙여 넣습니다. 같은 이름의 11장 파일이 이미 있다면 그대로 사용합니다.
  2. 모델은 ComfyUI/models/checkpoints/sd_xl_base_1.0.safetensors입니다. 기존 모델을 다시 받지 않습니다. JSON을 열고 각 노드에서 파일을 선택하면 됩니다.

JSON은 작업 구성을 저장한 파일이며 모델과 입력 이미지를 모두 포함하지 않습니다. 링크가 글자로 열리면 오른쪽 클릭 → 다른 이름으로 링크 저장으로 .json 또는 .png 확장자를 유지합니다. PNG를 JPG로 바꾸거나 화면을 캡처해서 입력으로 쓰면 마스크 투명도가 사라집니다.

3. 따라 하기

A. 기본값으로 한 장 완성하기

  1. 작업을 엽니다. ComfyUI에서 Ctrl+O → ch22-inpaint.json. 기존 11장 작업은 보관하고 이 파일로 진행합니다. 노드가 잘 안 보이면 아래쪽 보기 맞춤 버튼을 누릅니다. 작은 글씨는 오른쪽 아래 배율을 올려 봅니다.
  2. 모델·입력 두 개를 선택합니다. 01 원본·모델 그룹에서 SDXL Base를 선택합니다. 입력 원본에는 ch05_first_portrait_v2_00001_.png, 옷 마스크 PNG에는 ch11_knit_mask_r02_rgba.png를 선택합니다. 새 파일이 목록에 없으면 작업을 보관한 뒤 브라우저를 새로고침합니다. 두 PNG의 역할을 바꾸지 마세요.
  3. 문장을 유지합니다. 02 문장·원본 변환의 긍정 문장은 연한 파란 니트와 파란 목단을 요청합니다. 부정 문장은 크림색 테두리·이중 목둘레 등을 피하도록 요청합니다. 제공 JSON에 들어 있으므로 기본 실습에서는 다시 입력할 필요가 없습니다.
  4. 생성 강도를 맞춥니다. 04 생성 → 옷 생성 · denoise(KSampler)의 맨 아래 노이즈 제거량을 0.85로 둡니다. 숫자를 두 번 클릭해 입력한 뒤 Enter를 누릅니다. seed 20260909, 생성 후 제어 fixed, steps 28, CFG 7, sampler dpmpp_2m, scheduler karras를 유지합니다.
  5. 마스크 기본값을 유지합니다. 03 마스크 범위·경계 → 범위 넓히기의 확장(expand)은 24, 마름모 모서리(tapered_corners)는 true. 경계 흐리기의 blur_radius는 9, sigma는 3.0입니다. 그림을 마스크로 바꾸는 채널은 red로 둡니다.
  6. 실행을 한 번 누릅니다. 상단 배치 수는 1입니다. 입력의 1024×1024 크기를 그대로 사용하며, 05 원본 보존·최종 결과 → 최종 결과 저장에 파란 니트가 나오면 완성입니다. 파일은 ComfyUI/output/guide/ch22_inpaint_final_…png에 저장됩니다. 뒤 번호는 자동으로 붙습니다.
일반 JSON을 불러와 실제 실행한 화면 · 노이즈 제거량 0.85와 최종 합성 결과. 노드 이름은 역할에 맞게 붙였습니다.
일반 JSON을 불러와 실제 실행한 화면 · 노이즈 제거량 0.85와 최종 합성 결과. 노드 이름은 역할에 맞게 붙였습니다. 그림을 누르면 큰 화면으로 열립니다.
저장 노드·접두사언제 보는 파일인가요?
최종 결과 저장 · ch22_inpaint_final이번 실습의 완성 이미지입니다. 원본과 비교하거나 다음 작업에 사용할 때 선택합니다.
확인용 · 마스크 저장 · ch22_inpaint_mask흑백으로 수정 범위를 보는 그림입니다. 완성 이미지나 입력 마스크 PNG 대신 쓰지 않습니다.
비교용 · 합성 전 저장 · ch22_inpaint_decodedVAE로 복원한 중간 결과입니다. 원본 보존을 설명하는 비교용이며 최종 파일과 구별합니다.
현재 JSON의 정확한 프롬프트·설정·노드 연결
설정할 노드입력값
SDXL Base체크포인트 = sd_xl_base_1.0.safetensors
옷 마스크 PNG · RGBA 마스크입력 파일 = ch11_knit_mask_r02_rgba.png
입력 원본 · 입력 사진입력 파일 = ch05_first_portrait_v2_00001_.png
범위 넓히기expand = 24
tapered_corners = true
경계 흐리기blur_radius = 9
sigma = 3.0
그림을 마스크로channel = red
옷 생성 · denoiseseed = 20260909
생성 후 제어 = fixed
steps = 28
CFG = 7.0
sampler = dpmpp_2m
scheduler = karras
denoise = 0.85
확인용 · 마스크 저장 · ch22_inpaint_mask파일명 접두사 = guide/ch22_inpaint_mask
비교용 · 합성 전 저장 · ch22_inpaint_decoded파일명 접두사 = guide/ch22_inpaint_decoded
원본 위에 합성x = 0
y = 0
resize_source = false
최종 결과 저장 · ch22_inpaint_final파일명 접두사 = guide/ch22_inpaint_final
입력할 프롬프트 전문

바꿀 옷의 문장

realistic portrait photo of one adult woman, wearing a (light blue knitted sweater:1.4), blue ribbed crewneck collar, solid pale blue wool garment, natural skin, gray background, soft studio light

피할 표현

text, watermark, blurry, deformed, double neckline, cream collar, beige trim, skin on sweater, plastic skin
현재 작업의 노드·연결 목록 · 노드 18개와 연결 23개

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

노드 역할검색할 기술 이름
SDXL BaseCheckpointLoaderSimple
옷 마스크 PNG · RGBA 마스크LoadImage
입력 원본 · 입력 사진LoadImage
바꿀 옷의 문장CLIPTextEncode
피할 표현CLIPTextEncode
원본을 잠재 이미지로VAEEncode
범위 넓히기GrowMask
마스크를 그림으로MaskToImage
경계 흐리기ImageBlur
그림을 마스크로ImageToMask
마스크 표시용MaskToImage
생성 범위 지정SetLatentNoiseMask
옷 생성 · denoiseKSampler
확인용 · 마스크 저장 · ch22_inpaint_maskSaveImage
생성 그림으로 변환VAEDecode
비교용 · 합성 전 저장 · ch22_inpaint_decodedSaveImage
원본 위에 합성ImageCompositeMasked
최종 결과 저장 · ch22_inpaint_finalSaveImage
순서출발 출력도착 입력
1SDXL Base
CLIP →
바꿀 옷의 문장
clip
2SDXL Base
CLIP →
피할 표현
clip
3SDXL Base
모델 →
옷 생성 · denoise
모델
4바꿀 옷의 문장
조건 →
옷 생성 · denoise
긍정
5피할 표현
조건 →
옷 생성 · denoise
부정
6생성 범위 지정
잠재 데이터 →
옷 생성 · denoise
잠재 입력
7옷 생성 · denoise
잠재 데이터 →
생성 그림으로 변환
잠재 데이터
8SDXL Base
VAE →
생성 그림으로 변환
vae
9생성 그림으로 변환
이미지 →
비교용 · 합성 전 저장 · ch22_inpaint_decoded
이미지
10입력 원본 · 입력 사진
이미지 →
원본을 잠재 이미지로
이미지
11SDXL Base
VAE →
원본을 잠재 이미지로
vae
12입력 원본 · 입력 사진
이미지 →
원본 위에 합성
바탕 그림(destination)
13생성 그림으로 변환
이미지 →
원본 위에 합성
얹을 그림(source)
14그림을 마스크로
마스크 →
원본 위에 합성
마스크
15원본 위에 합성
이미지 →
최종 결과 저장 · ch22_inpaint_final
이미지
16그림을 마스크로
마스크 →
마스크 표시용
마스크
17마스크 표시용
이미지 →
확인용 · 마스크 저장 · ch22_inpaint_mask
이미지
18옷 마스크 PNG · RGBA 마스크
마스크 →
범위 넓히기
마스크
19범위 넓히기
마스크 →
마스크를 그림으로
마스크
20마스크를 그림으로
이미지 →
경계 흐리기
이미지
21경계 흐리기
이미지 →
그림을 마스크로
이미지
22원본을 잠재 이미지로
잠재 데이터 →
생성 범위 지정
잠재 데이터
23그림을 마스크로
마스크 →
생성 범위 지정
마스크

B. 원본을 보존하는 연결 이해하기

마스크는 어디를 바꿀지 표시한 지도입니다. RGBA는 색상 RGB에 투명도 alpha가 더해진 이미지입니다. 이 작업의 이미지 로드 노드는 MASK = 1 − alpha로 읽으므로 투명한 부분이 수정할 흰 마스크가 됩니다. PNG가 화면에서 검게 비어 보이는 부분을 새로 칠할 필요는 없습니다.

실제 확장·흐림을 거친 마스크 · 흰 옷 영역은 새 생성 그림, 검정 얼굴·배경은 원본을 사용하고 회색 경계는 섞습니다. 관찰용 이미지입니다.
실제 확장·흐림을 거친 마스크 · 흰 옷 영역은 새 생성 그림, 검정 얼굴·배경은 원본을 사용하고 회색 경계는 섞습니다. 관찰용 이미지입니다. 그림을 누르면 큰 화면으로 열립니다.
연결을 읽는 설명용 도식
원본 → VAE 인코드 → 생성 범위 지정 → KSampler → VAE 디코드 → 얹을 그림(source)
원본 ─────────────────────────────→ 바탕 그림(destination)
확장·흐림을 거친 같은 마스크 → 생성 범위 지정 + 최종 이미지 합성

잠재 이미지(LATENT)는 모델이 계산하기 쉬운 압축된 표현입니다. VAE 인코드는 원본을 이 표현으로 바꾸고 VAE 디코드는 계산 결과를 보이는 그림으로 복원합니다. 이 왕복 과정만으로도 선택 영역 밖 픽셀이 조금 달라질 수 있습니다. 그래서 마지막에 합성, 즉 원본 위에 수정 부분만 얹는 작업을 합니다.

최종 합성 노드의 입력이 작업에서 연결할 것
destination · 화면의 대상입력 원본의 IMAGE. 원본을 바탕으로 깔아 둡니다.
source · 화면의 원본생성 그림으로 변환(VAE 디코드)의 IMAGE. 화면 번역은 원본이지만, 여기에는 새로 생성한 그림을 연결합니다.
mask · 마스크그림을 마스크로(ImageToMask)의 MASK. 생성 범위 지정 노드에도 같은 출력을 연결합니다.
위치·크기x 0 / y 0 / 원본 크기 조정(resize_source) false. 두 그림의 크기와 위치를 맞춥니다.

주의: 원본 보존은 denoise가 낮아서 생기는 효과와 다릅니다. 이번에는 denoise 0.85에서도 최종 유효 마스크가 정확히 0인 부분을 원본과 같게 보존합니다. 확장·흐림에 포함된 회색 경계는 조금 바뀔 수 있으므로 “처음 칠한 영역 밖은 전부 그대로”라고 해석하지 않습니다.

선택 확인 · 합성 전 그림과 최종 결과의 차이
같은 0.85 실행의 합성 전 중간 출력 · 눈으로 비슷해 보여도 얼굴·배경의 모든 픽셀이 원본과 같지는 않았습니다.
같은 0.85 실행의 합성 전 중간 출력 · 눈으로 비슷해 보여도 얼굴·배경의 모든 픽셀이 원본과 같지는 않았습니다. 그림을 누르면 큰 화면으로 열립니다.

위 그림의 미세한 변화는 실제 픽셀 비교로 확인했습니다. 위쪽 기본 완성 이미지와 구분하세요. 최종 결과 저장으로 이어지는 마지막 합성을 유지하는 것이 해결 방법입니다.

선택 비교 1 · denoise만 0.35 → 0.60 → 0.85로 바꾸기

기본 결과를 만든 뒤 진행합니다. 아래 JSON들은 원본·마스크·문장·모델·seed·연결·나머지 생성값이 같고 denoise만 다릅니다. 저장 접두사만 구별했습니다. 0.35 → 0.60 → 기본 0.85 파일을 차례로 열어 한 번씩 실행하고 각 최종 결과를 비교합니다.

조건워크플로이번 결과 판단
0.35ch22-denoise-035.json (ZIP) 미달 비교 · 크림색이 대부분 남아 목표 색 변화가 약합니다.
0.60ch22-denoise-060.json (ZIP) 미달 비교 · 파랑과 노랑·크림색이 섞이고 목단이 성겨 보입니다.
0.85ch22-inpaint.json (ZIP) 기본 선택 · 파란 니트가 분명하고 얼굴·바깥 배경을 보존합니다.
0.35 · 실행은 완료됐지만 파란 니트라는 목표에는 부족합니다.
0.35 · 실행은 완료됐지만 파란 니트라는 목표에는 부족합니다. 그림을 누르면 큰 화면으로 열립니다.
0.60 · 여러 색이 섞여 단색 파란 니트라는 목표에 못 미친 비교 결과입니다.
0.60 · 여러 색이 섞여 단색 파란 니트라는 목표에 못 미친 비교 결과입니다. 그림을 누르면 큰 화면으로 열립니다.

해결: 제공 입력에서는 0.85 기본 JSON으로 돌아갑니다. 다른 이미지에서 시도할 때는 원본에서 출발해 한 값씩 비교하고, 목표를 만족하면서 불필요한 변형이 적은 결과를 고르세요. 실패한 결과를 다음 입력으로 바꾸면 조건이 달라져 이 비교가 성립하지 않습니다. 0.85가 모든 이미지의 정답이라는 뜻은 아닙니다.

선택 비교 2 · 강도는 유지하고 마스크 확장·경계를 따로 바꾸기

denoise 0.85를 고정합니다. 첫 비교는 확장만 24 → 0, 두 번째는 기본값으로 돌아온 뒤 blur_radius만 9 → 1입니다. 두 비교 파일을 서로 비교하면 값 두 개가 달라지므로 각각 기본 파일과 비교하세요.

조건유지되는 값일반 JSON
기본 · expand 24 / radius 9denoise 0.85, sigma 3.0ch22-inpaint.json (ZIP)
확장 끔 · expand 0 / radius 9denoise 0.85, sigma 3.0ch22-expand-0.json (ZIP)
좁은 흐림 · expand 24 / radius 1denoise 0.85, sigma 3.0ch22-blur-1.json (ZIP)
기본 · 확장 24 / radius 9. 실제 결과의 목·어깨 부위를 같은 좌표에서 잘랐습니다.
기본 · 확장 24 / radius 9. 실제 결과의 목·어깨 부위를 같은 좌표에서 잘랐습니다. 그림을 누르면 큰 화면으로 열립니다.
확장 0 · 같은 위치의 잘라 보기. 왼쪽 어깨와 목둘레에 원래 크림색 띠가 남았습니다. 목표 미달을 보여주는 대조 예제입니다.
확장 0 · 같은 위치의 잘라 보기. 왼쪽 어깨와 목둘레에 원래 크림색 띠가 남았습니다. 목표 미달을 보여주는 대조 예제입니다. 그림을 누르면 큰 화면으로 열립니다.

원인과 해결: 처음 마스크에 들어가지 않은 옷 가장자리는 높은 denoise로도 바뀌지 않습니다. 기본 확장 24로 되돌려 빠진 테두리를 포함합니다. 다만 무조건 크게 넓히면 목·배경까지 수정 범위에 들어갈 수 있으므로 흑백 마스크도 함께 봅니다.

radius 1 · 확장 24는 유지. 왼쪽 목 경계가 기본보다 날카롭게 드러납니다. 넓은 화면에서는 차이가 작아 같은 부분을 함께 봅니다.
radius 1 · 확장 24는 유지. 왼쪽 목 경계가 기본보다 날카롭게 드러납니다. 넓은 화면에서는 차이가 작아 같은 부분을 함께 봅니다. 그림을 누르면 큰 화면으로 열립니다.

blur_radius는 흐림 계산에 포함할 주변 범위, sigma는 그 안에서 가까운 곳과 먼 곳을 얼마나 비슷하게 섞을지 정하는 값입니다. 이 설치 버전에서 radius의 입력 최솟값은 1입니다. 이번에는 9 / 3.0을 기본으로 선택했습니다. 흐림을 키우면 빠진 옷 영역이 자동으로 정확히 선택되는 것은 아니며, 너무 넓으면 원래 색과 새 색이 섞인 띠가 생길 수 있습니다.

전체 이미지도 열어 확인할 수 있습니다: 확장 0 전체 결과 (ZIP) · radius 1 전체 결과 (ZIP) . 비교 출력은 ComfyUI/output/guide에 ch22_d035_final, ch22_d060_final, ch22_expand0_final, ch22_blur1_final 접두사로 저장됩니다.

C. 다음에도 같은 작업으로 시작하기

  1. 기본 작업에서 그래프 → 내보내기를 선택하고 ch22-my-inpaint라는 이름으로 일반 JSON을 저장합니다. API 내보내기와 구별합니다.
  2. 다음 작업에서는 Ctrl+O로 JSON을 열고 모델·원본·마스크 파일을 선택합니다. 입력 PNG 두 장도 함께 보관합니다. 옷만 바꿀 때는 원본을 유지한 채 긍정 문장을 먼저 바꾸고, 이후 denoise를 한 값씩 비교합니다.
실제 작업의 전체 배치 · 원본·마스크·생성·최종 합성의 위치를 보는 화면입니다. 세부 수치는 위 확대 화면과 설정표를 사용하세요.
실제 작업의 전체 배치 · 원본·마스크·생성·최종 합성의 위치를 보는 화면입니다. 세부 수치는 위 확대 화면과 설정표를 사용하세요. 그림을 누르면 큰 화면으로 열립니다.

4. 정상 결과 확인

볼 곳완성 기준
옷의 변화크림색 대신 파란 니트가 분명합니다. 의도하지 않은 여러 색 실이 주된 무늬로 남지 않았습니다.
얼굴·배경원본과 같은 표정·얼굴 윤곽·머리 모양·바깥 배경입니다. 최종 저장 파일로 확인합니다.
목·어깨의 경계큰 크림색 띠나 이중 목단이 남지 않았습니다. 확대해서 목 피부와 니트가 만나는 곳도 봅니다.
입력·재사용JSON을 다시 읽었을 때 원본과 마스크의 역할, 모델, 0.85와 fixed가 유지되어 실행할 수 있습니다.

다섯 조건을 이 PC에서 실제 생성했고, 기본 일반 JSON을 ComfyUI에서 열어 다시 실행했습니다. 기본 결과는 첫 0.85 실행과 1024×1024 RGB 픽셀이 같았습니다. 최종 합성의 마스크 0 영역 685,279픽셀도 원본과 같았습니다. 회색 경계와 흰 수정 영역까지 원본과 같다는 뜻은 아닙니다.

이 예제의 범위: 니트의 짜임·주름·목단을 다시 만드는 변화는 허용했습니다. 색만 바꾸면서 의상의 구조를 정확히 고정해야 하는 작업에는 이 결과를 그대로 채택하지 마세요. 흐린 어깨 부분의 세밀한 실까지 모두 선명하게 복구하는 목표도 아닙니다. 원하는 변화와 보존 조건을 먼저 정한 뒤 그 기준으로 고릅니다.

5. 자주 생기는 문제

상황해결 방법
옷색이 거의 그대로예요같은 원본·seed에서 denoise만 비교합니다. 이번에는 0.35보다 0.85가 목표에 맞았습니다. 마스크에 옷이 포함되어 있는지도 봅니다.
얼굴도 조금 바뀌었어요decoded 대신 final 파일을 보고 있는지 확인합니다. 최종 합성의 destination은 입력 원본, source는 새 생성 그림입니다. 확장된 마스크가 얼굴까지 올라왔다면 범위도 줄입니다.
어깨에 원래 옷색이 띠처럼 남아요범위가 빠진 문제일 수 있습니다. denoise를 더 올리기 전에 기본 expand 24와 실제 흑백 마스크를 확인하세요.
목에 테두리·색 번짐이 생겨요기본 radius 9 / sigma 3.0으로 돌아가 같은 위치를 비교합니다. 과한 확장·흐림은 피부까지 섞을 수 있으므로 범위부터 다시 봅니다.
옷의 짜임이나 목 모양까지 바뀌었어요인페인트는 색 필터가 아니라 다시 생성하는 작업입니다. 구조 보존이 더 중요하면 denoise를 낮춰 비교하되 색 변화가 부족해지는지도 함께 판단합니다.
마스크가 전부 검정이거나 반대로 작동해요입력은 제공 RGBA PNG입니다. 확인용 흑백 마스크 파일이나 JPG를 넣지 않습니다. 옷 마스크 PNG 노드의 MASK 출력이 범위 넓히기로 연결되어야 합니다.
노드의 “원본” 입력에 입력 사진을 연결했어요합성 노드의 화면 번역상 “원본”은 source입니다. 이 실습에서는 새 생성 그림을 연결합니다. 입력 사진은 대상(destination) 쪽입니다.
같은 비교인데 매번 달라져요seed 20260909와 생성 후 제어 fixed를 유지합니다. 마지막 결과를 새 입력으로 쓰지 말고 제공 원본 두 장으로 다시 시작합니다.
파일이 없다는 오류가 나요Base는 checkpoints, 입력 PNG 두 장은 input에 둡니다. 작업을 보관하고 새로고침한 뒤 각 노드에서 정확한 파일명을 다시 선택합니다.

용어는 인페인트 강도·원본 보존 용어표, 마스크의 기본 연결은 11장을 참고하세요. ComfyUI 공식 인페인트 개념의 예제는 모델·구성이 다르므로 이 장의 Base 워크플로에 설정을 그대로 섞지 않습니다.

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