본문 바로가기

stable diffusion

스테이블 디퓨전 초심자를 위한 inpaint 설명

img2 img에 이어 inpaint에 대해 알아보겠습니다.

 

img2 img 글을 안 보셨다면 아래 링크를 통해 보실 수 있습니다.

 

2023.08.22 - [stable diffusion] - 스테이블 디퓨전 초심자를 위한 img2img 설명

 

스테이블 디퓨전 초심자를 위한 img2img 설명

스테이블 디퓨전 초심자라면 img2 img 말로만 듣고 어떻게 사용하는지 모를 겁니다. img2 img 개념설명과 활용예시까지 한번 알아보겠습니다. 스테이블 디퓨전을 하다 보면 많이 사용하는 기능 중

ibmun00.tistory.com

 

inpaint

 

 

 

스테이블 디퓨전을 사용하다 보면 이런 생각 한 번쯤 드셨을 겁니다.

 

"아 다른 건 다 완벽한데 딱 요 부분만 바꾸고 싶다"

 

inpaint 기능은 이런 아쉬움을 해결해 줄 수 있는 기능입니다.

 

바로 특정 부분만 지정한 뒤 그 부분만 다시 그려주는 기능이죠.

 

 

 


1. inpaint 사용방법

 

본격적으로 inpaint 사용방법에 대해 알아보겠습니다.

 

img2 img와 마찬가지로 img2 img 탭을 눌러줍니다.

img2img

 

 

아래 기능들 중 Inpaint 탭을 눌러줍니다.

inpaint

 

img2 img와 마찬가지로 바꾸고 싶은 이미지를 직접 넣어주거나

 

txt2 img에서 뽑은 이미지를 send to inpaint를 통해 이미지를 넣어주면 됩니다.

sendtoinpaint

 

resizemode설정메뉴

 


2. 기능 소개

 

Resize mode는 img2 img와 동일합니다.

 

Just resize는 넣어준 이미지의 비율과 상관없이 resize 하는 기능

 

crop and resize는 넣어준 이미지의 비율은 유지하지만, 출력 이미지의 비율에 맞춰서 잘라내는 기능

 

resize and fill은 넣어준 이미지의 비율을 유지하고, crop과 달리 잘라내는 것이 아닌 여백을 자동으로 채워주는 기능

 

Just resize (latent upscale) 은 Just resize에서 latent로 upscale 한 것입니다.

 

img2 img처럼 잘 모르겠다 싶은 분들은 그냥 Just resize 쓰시면 됩니다.

 

 


3. img2 img와 차이점

 

img2 img와 다른 점을 하나씩 살펴보자면

 

 

mask blur는 지정한 영역을 주변과 얼마나 잘 어울리게 변화시키는 가에 대한 값입니다.

 

기본값은 4이며, mask blur가 낮으면 주변하고 차이가 눈에 띄며, 높으면 주변과 잘 어울립니다.

 

 

 

masked mode 중

 

inpaint masked는 지정한 영역만 바꾸는 기능이고

 

inpaint no masked는 지정한 영역을 뺀 나머지 부분을 바꾸는 기능입니다.

 

 

 

masked content 중

 

fill 은 주변과 비슷한 색상으로 채우는 기능이고

 

original 은 원본과 비슷하게 채워지는 기능

 

latent nosie는 랜덤 노이즈로 채워지는 기능=원본과 다르게 나오는 기능

 

latent nothing 원하지 않은 요소를 제거할 때 사용하는 기능입니다.

 

 

 

Inpaint area 중

 

Whole picture 은 그림 전체를 다시 그려주는 기능이며

 

only masked는 지정한 영역만 다시 그려주는 기능입니다.

 

Whole picture로 해둬야 전체적으로 자연스럽게 나오는 편입니다.

 

 

 

Only masked padding, pixels는 기본값 32로 해두시면 됩니다.

 

 

 

Denoising strength 값이 역시 제일 중요합니다.

 

원본과 비슷하게 만들고 싶다, 조금만 변형하고 싶다면 Denoising strength 값을 낮게 (0.3 정도)

 

아예 다르게 만들고 싶다 하면 Denoising strength 값을 높게 (0.7 정도) 설정하시면 됩니다.

 

이 수치는 이미지마다 조금씩 다르니 직접 수치를 조정하면서 이미지를 뽑아보시는 게 가장 좋습니다.

 

 

 

그 외 나머지는 txt2 img와 동일합니다.

 

 


4. inpaint 활용예시

 

txt2 img로 이미지를 뽑은 뒤, send to inpaint를 눌러줍니다.

이미지

 

프롬프트 long hair를 short hair로 바꾼 뒤 머리를 지정해 주었습니다.

지정

 

Denoising strength 값을 바꿔가면서 이미지를 뽑아봤습니다.

 

0.40.5
0.60.7

 

차례대로 Denoising strength 값은 0.4, 0.5, 0.6, 0.7입니다.

 

확실히 Denoising strength 값이 높을수록 긴 머리에서 짧은 머리로 변화되는 것을 볼 수 있습니다.

 

참고로 inpaint 한 이미지를 다시 send to inpaint 하고 다시 영역 지정하는 식으로 자주 사용합니다.

sendtoinpaint2

 


 

스테이블 디퓨전을 하면서 무조건 사용해야 하는 기능 중 하나인 inpaint를 알아봤습니다.

 

손, 발이 이상하게 나오는 경우 inpaint를 이용하여 이쁜 손, 발 만들어 봅시다!