메인 콘텐츠로 건너뛰기
이 기사에서는 AI 이미지 생성에서 인페인팅의 개념을 소개하고, ComfyUI에서 인페인팅 워크플로우를 만드는 방법을 안내합니다. 다음 내용을 다룹니다:
  • 이미지를 수정하는 데 인페인팅 워크플로우 사용하기
  • ComfyUI 마스크 편집기를 사용해 마스크 그리기
  • VAE 인코더 (인페인팅용) 노드

인페인팅에 대하여

AI 이미지 생성 과정에서 우리는 종종 전체적인 이미지는 만족스럽지만 원치 않거나 오류가 있는 요소들이 있는 상황을 마주하게 됩니다. 단순히 재생성하면 완전히 다른 이미지가 나올 수 있기 때문에 특정 부분을 고치는 데 인페인팅을 사용하는 것이 매우 유용합니다. 이는 마치 **예술가(인공지능 모델)**가 그림을 그렸는데, 특정 세부사항이 아직 만족스럽지 않은 경우와 같습니다. 우리는 예술가에게 어떤 영역을 조정할지(마스크) 알려주고, 이후 그대로 **다시 그려(인페인트)**하도록 요청하는 것입니다. 일반적인 인페인팅 시나리오는 다음과 같습니다:
  • 결함 보수: 원치 않는 객체 제거, 잘못된 AI 생성 신체 부위 수정 등
  • 세부사항 최적화: 국소적인 요소 정밀 조정(옷감 질감 변경, 얼굴 표정 조정 등)
  • 그 외 다양한 시나리오

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

모델 및 리소스 준비

1. 모델 설치

512-inpainting-ema.safetensors 파일을 다운로드하여 ComfyUI/models/checkpoints 폴더에 넣으세요:

2. 인페인팅 자산

입력으로 사용할 다음 이미지를 다운로드하세요: ComfyUI 인페인팅 입력 이미지
이 이미지는 이미 알파 채널(투명도 마스크)을 포함하고 있으므로 따로 마스크를 그릴 필요가 없습니다. 이번 튜토리얼에서는 마스크 편집기를 이용해 마스크를 그리는 방법도 다룰 예정입니다.

3. 인페인팅 워크플로우

아래 이미지를 다운로드한 후 ComfyUI로 드래그하여 워크플로우를 불러오세요: ComfyUI 인페인팅 워크플로우
워크플로우 JSON이 메타데이터에 포함된 이미지는 바로 ComfyUI로 드래그하거나 메뉴 워크플로우 -> 열기(ctrl+o)를 통해 로드할 수 있습니다.

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

아래 다이어그램의 단계를 따라 워크플로우가 올바르게 실행되도록 하세요. ComfyUI 인페인팅 워크플로우
  1. 체크포인트 로드에서 512-inpainting-ema.safetensors가 로드되었는지 확인하세요
  2. 입력 이미지를 이미지 로드 노드에 업로드하세요
  3. 를 클릭하거나 Ctrl + Enter를 사용해 생성하세요
비교를 위해 v1-5-pruned-emaonly-fp16.safetensors 모델을 사용한 결과는 다음과 같습니다: SD1.5 인페인팅 결과 512-inpainting-ema.safetensors 모델로 생성한 결과가 더 나은 인페인팅 효과와 자연스러운 전환을 보여줍니다. 이는 해당 모델이 인페인팅에 특화되어 있어 생성 영역을 더 잘 제어할 수 있고, 결과적으로 인페인팅 효과가 개선되기 때문입니다. 앞서 사용했던 비유를 기억하시나요? 서로 다른 모델은 각각 다른 능력을 가진 예술가와 같으며, 각 예술가는 자신의 한계를 가지고 있습니다. 적합한 모델을 선택하면 더 나은 생성 결과를 얻을 수 있습니다. 다음 접근법을 시도해 더 나은 결과를 얻을 수 있습니다:
  1. 긍정적·부정적 프롬프트를 더 구체적인 설명으로 수정하세요
  2. KSampler에서 서로 다른 시드를 사용해 여러 번 실행해 다양한 생성 결과를 얻어보세요
  3. 이번 튜토리얼에서 마스크 편집기를 배운 후, 생성된 결과를 다시 인페인팅해 만족스러운 결과를 얻을 수 있습니다.
다음으로는 마스크 편집기 사용법을 알아봅시다. 우리의 입력 이미지는 이미 알파 투명도 채널(편집하려는 영역)을 포함하고 있으므로 따로 마스크를 그릴 필요는 없지만, 실무에서는 종종 마스크 편집기를 사용해 마스크를 만들게 됩니다.

마스크 편집기 사용하기

먼저 이미지 저장 노드를 우클릭하고 복사(Clipspace)를 선택하세요: 이미지 클립보드 복사 그런 다음 이미지 로드 노드를 우클릭하고 붙여넣기(Clipspace)를 선택하세요: 이미지 붙여넣기 다시 이미지 로드 노드를 우클릭하고 마스크 편집기에서 열기를 선택하세요: 마스크 편집기 열기 마스크 편집기 데모
  1. 오른쪽 패널에서 브러시 파라미터를 조정하세요
  2. 지우개를 사용해 실수를 수정하세요
  3. 완료되면 저장을 클릭하세요
그린 내용은 VAE 인코더 (인페인팅용) 노드의 마스크 입력으로 사용되어 인코딩됩니다. 그런 다음 프롬프트를 조정하고 다시 생성해 만족스러운 결과를 얻을 때까지 반복하세요.

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

이 워크플로우를 텍스트-이미지이미지-이미지와 비교해 보면, 주요 차이점은 VAE 섹션의 조건부 입력에 있음을 알 수 있습니다. 이번 워크플로우에서는 인페인팅에 특화된 VAE 인코더 (인페인팅용) 노드를 사용해 생성 영역을 더 잘 제어하고 더 나은 결과를 얻을 수 있도록 돕습니다. VAE 인코더 (인페인팅용) 노드 입력 유형
파라미터 이름기능
픽셀잠재 공간으로 인코딩할 입력 이미지입니다.
vae이미지를 픽셀 공간에서 잠재 공간으로 인코딩하는 데 사용되는 VAE 모델입니다.
마스크어떤 영역을 수정해야 하는지 지정하는 이미지 마스크입니다.
마스크 확장원래 마스크를 외부로 확장하는 픽셀 값으로, 마스크 주변에 전환 영역을 만들어 인페인팅 영역과 원본 영역 간에 딱딱한 경계가 생기지 않도록 합니다.
출력 유형
파라미터 이름기능
잠재VAE에 의해 잠재 공간으로 인코딩된 이미지입니다.