> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# ComfyUI 인페인팅 워크플로우

> 이 가이드에서는 ComfyUI의 인페인팅 워크플로우를 소개하고, 인페인팅 예시를 따라가며 마스크 편집기 사용법과 같은 주제를 다룹니다.

이 기사에서는 AI 이미지 생성에서 인페인팅의 개념을 소개하고, ComfyUI에서 인페인팅 워크플로우를 만드는 방법을 안내합니다. 다음 내용을 다룹니다:

* 이미지를 수정하는 데 인페인팅 워크플로우 사용하기
* ComfyUI 마스크 편집기를 사용해 마스크 그리기
* `VAE 인코더 (인페인팅용)` 노드

## 인페인팅에 대하여

AI 이미지 생성 과정에서 우리는 종종 전체적인 이미지는 만족스럽지만 원치 않거나 오류가 있는 요소들이 있는 상황을 마주하게 됩니다. 단순히 재생성하면 완전히 다른 이미지가 나올 수 있기 때문에 특정 부분을 고치는 데 인페인팅을 사용하는 것이 매우 유용합니다.

이는 마치 \*\*예술가(인공지능 모델)\*\*가 그림을 그렸는데, 특정 세부사항이 아직 만족스럽지 않은 경우와 같습니다. 우리는 예술가에게 **어떤 영역을 조정할지(마스크)** 알려주고, 이후 그대로 \*\*다시 그려(인페인트)\*\*하도록 요청하는 것입니다.

일반적인 인페인팅 시나리오는 다음과 같습니다:

* **결함 보수:** 원치 않는 객체 제거, 잘못된 AI 생성 신체 부위 수정 등
* **세부사항 최적화:** 국소적인 요소 정밀 조정(옷감 질감 변경, 얼굴 표정 조정 등)
* 그 외 다양한 시나리오

## ComfyUI 인페인팅 워크플로우 예시

### 모델 및 리소스 준비

#### 1. 모델 설치

[512-inpainting-ema.safetensors](https://huggingface.co/Comfy-Org/stable_diffusion_2.1_repackaged/resolve/main/512-inpainting-ema.safetensors) 파일을 다운로드하여 `ComfyUI/models/checkpoints` 폴더에 넣으세요:

#### 2. 인페인팅 자산

입력으로 사용할 다음 이미지를 다운로드하세요:

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/input.png?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=a6557da482429ba4feff636d36f1bb54" alt="ComfyUI 인페인팅 입력 이미지" width="1024" height="1024" data-path="images/tutorial/basic/inpaint/input.png" />

<Note>이 이미지는 이미 알파 채널(투명도 마스크)을 포함하고 있으므로 따로 마스크를 그릴 필요가 없습니다. 이번 튜토리얼에서는 마스크 편집기를 이용해 마스크를 그리는 방법도 다룰 예정입니다.</Note>

#### 3. 인페인팅 워크플로우

아래 이미지를 다운로드한 후 **ComfyUI로 드래그**하여 워크플로우를 불러오세요:

![ComfyUI 인페인팅 워크플로우](https://raw.githubusercontent.com/Comfy-Org/example_workflows/refs/heads/main/image/basic/sd1.5_inpaint.png)

<Tip>
  워크플로우 JSON이 메타데이터에 포함된 이미지는 바로 ComfyUI로 드래그하거나 메뉴 `워크플로우` -> `열기(ctrl+o)`를 통해 로드할 수 있습니다.
</Tip>

### ComfyUI 인페인팅 워크플로우 예시 설명

아래 다이어그램의 단계를 따라 워크플로우가 올바르게 실행되도록 하세요.

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint_workflow.png?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=eec79976ea5771763a00668de7c15bc3" alt="ComfyUI 인페인팅 워크플로우" width="2000" height="1108" data-path="images/tutorial/basic/inpaint/inpaint_workflow.png" />

1. `체크포인트 로드`에서 `512-inpainting-ema.safetensors`가 로드되었는지 확인하세요
2. 입력 이미지를 `이미지 로드` 노드에 업로드하세요
3. `큐`를 클릭하거나 `Ctrl + Enter`를 사용해 생성하세요

비교를 위해 [v1-5-pruned-emaonly-fp16.safetensors](https://huggingface.co/Comfy-Org/stable-diffusion-v1-5-archive/blob/main/v1-5-pruned-emaonly-fp16.safetensors) 모델을 사용한 결과는 다음과 같습니다:

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint_sd1.5_pruned_emaonly.png?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=36916904f9884b5bc3c62f6b60ec17e8" alt="SD1.5 인페인팅 결과" width="1024" height="1024" data-path="images/tutorial/basic/inpaint/inpaint_sd1.5_pruned_emaonly.png" />

[512-inpainting-ema.safetensors](https://huggingface.co/Comfy-Org/stable_diffusion_2.1_repackaged/resolve/main/512-inpainting-ema.safetensors) 모델로 생성한 결과가 더 나은 인페인팅 효과와 자연스러운 전환을 보여줍니다. 이는 해당 모델이 인페인팅에 특화되어 있어 생성 영역을 더 잘 제어할 수 있고, 결과적으로 인페인팅 효과가 개선되기 때문입니다.

앞서 사용했던 비유를 기억하시나요? 서로 다른 모델은 각각 다른 능력을 가진 예술가와 같으며, 각 예술가는 자신의 한계를 가지고 있습니다. 적합한 모델을 선택하면 더 나은 생성 결과를 얻을 수 있습니다.

다음 접근법을 시도해 더 나은 결과를 얻을 수 있습니다:

1. 긍정적·부정적 프롬프트를 더 구체적인 설명으로 수정하세요
2. `KSampler`에서 서로 다른 시드를 사용해 여러 번 실행해 다양한 생성 결과를 얻어보세요
3. 이번 튜토리얼에서 마스크 편집기를 배운 후, 생성된 결과를 다시 인페인팅해 만족스러운 결과를 얻을 수 있습니다.

다음으로는 **마스크 편집기** 사용법을 알아봅시다. 우리의 입력 이미지는 이미 `알파` 투명도 채널(편집하려는 영역)을 포함하고 있으므로 따로 마스크를 그릴 필요는 없지만, 실무에서는 종종 마스크 편집기를 사용해 마스크를 만들게 됩니다.

### 마스크 편집기 사용하기

먼저 `이미지 저장` 노드를 우클릭하고 `복사(Clipspace)`를 선택하세요:

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint_copy_clipspace.png?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=7d1bfea21723437c4ca09bba34edd1ed" alt="이미지 클립보드 복사" width="751" height="1112" data-path="images/tutorial/basic/inpaint/inpaint_copy_clipspace.png" />

그런 다음 **이미지 로드** 노드를 우클릭하고 `붙여넣기(Clipspace)`를 선택하세요:

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint_paste_clipspace.png?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=42c942d88b97c696f6f2ed59f7ff9bc8" alt="이미지 붙여넣기" width="750" height="947" data-path="images/tutorial/basic/inpaint/inpaint_paste_clipspace.png" />

다시 **이미지 로드** 노드를 우클릭하고 `마스크 편집기에서 열기`를 선택하세요:

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint_open_in_maskeditor.jpg?fit=max&auto=format&n=OltlUSVBSNcJsDMs&q=85&s=682a66f54e0f61366c42e553d50f4e76" alt="마스크 편집기 열기" width="894" height="1000" data-path="images/tutorial/basic/inpaint/inpaint_open_in_maskeditor.jpg" />

<img src="https://mintcdn.com/dripart/OltlUSVBSNcJsDMs/images/tutorial/basic/inpaint/inpaint-maskeditor.gif?s=217f481d8cd4e22183c0dd1551f3e831" alt="마스크 편집기 데모" width="960" height="720" data-path="images/tutorial/basic/inpaint/inpaint-maskeditor.gif" />

1. 오른쪽 패널에서 브러시 파라미터를 조정하세요
2. 지우개를 사용해 실수를 수정하세요
3. 완료되면 `저장`을 클릭하세요

그린 내용은 VAE 인코더 (인페인팅용) 노드의 마스크 입력으로 사용되어 인코딩됩니다.

그런 다음 프롬프트를 조정하고 다시 생성해 만족스러운 결과를 얻을 때까지 반복하세요.

## VAE 인코더 (인페인팅용) 노드

이 워크플로우를 [텍스트-이미지](/ko/tutorials/basic/text-to-image) 및 [이미지-이미지](/ko/tutorials/basic/image-to-image)와 비교해 보면, 주요 차이점은 VAE 섹션의 조건부 입력에 있음을 알 수 있습니다. 이번 워크플로우에서는 인페인팅에 특화된 **VAE 인코더 (인페인팅용)** 노드를 사용해 생성 영역을 더 잘 제어하고 더 나은 결과를 얻을 수 있도록 돕습니다.

<img src="https://mintcdn.com/dripart/Rig0_LOInmwVbVSB/images/comfy_core/latent/inpaint/vae_encode_for_inpainting.jpg?fit=max&auto=format&n=Rig0_LOInmwVbVSB&q=85&s=2eeecee7cf23a0e1ab7b1a996256278f" alt="VAE 인코더 (인페인팅용) 노드" width="854" height="440" data-path="images/comfy_core/latent/inpaint/vae_encode_for_inpainting.jpg" />

**입력 유형**

| 파라미터 이름  | 기능                                                                                 |
| -------- | ---------------------------------------------------------------------------------- |
| `픽셀`     | 잠재 공간으로 인코딩할 입력 이미지입니다.                                                            |
| `vae`    | 이미지를 픽셀 공간에서 잠재 공간으로 인코딩하는 데 사용되는 VAE 모델입니다.                                       |
| `마스크`    | 어떤 영역을 수정해야 하는지 지정하는 이미지 마스크입니다.                                                   |
| `마스크 확장` | 원래 마스크를 외부로 확장하는 픽셀 값으로, 마스크 주변에 전환 영역을 만들어 인페인팅 영역과 원본 영역 간에 딱딱한 경계가 생기지 않도록 합니다. |

**출력 유형**

| 파라미터 이름 | 기능                           |
| ------- | ---------------------------- |
| `잠재`    | VAE에 의해 잠재 공간으로 인코딩된 이미지입니다. |
