안녕하세요 Allan입니다.
이번 포스팅 주제는 webui 인페인트(inpaint) 기능입니다.
인페인트 기능이란 스테이블 디퓨전 webui의 큰 장점 중 하나로
본인이 선택한 영역을 다시 생성한다거나,
본인이 선택한 영역외의 부분을 다시 생성할 수 있는 기능입니다.
예를 들면,
정말 마음에 드는 이미지가 생성되었는데
손 부분이 이상하게 생성된 이미지 같은 경우,
나머지 부분은 그대로 두고
손 부분만 인페인트 기능을 활용하면
다시 생성할 수 있게 됩니다.
그럼 인페인트 기능에 대해서 알아보도록 하겠습니다.
먼저, Stable Diffusion webui 사용법 총정리 가이드를 참고하여 순서대로 배워 보시는 것을 추천드립니다.
Ⅰ. inpaint 탭으로 들어가기
인페인트 탭으로 들어가기 위한 방법은 두 가지가 있습니다.
1. t2i에서 inpaint으로 보내기
다음과 같이 t2i에서 이미지가 생성된 부분 아래에 보면 Send to inpaint버튼이 있습니다.
이 버튼을 클릭하면 생성한 이미지를 바로 inpaint창으로 보낼 수 있습니다.
2. i2i > inpaint
두 번째 방법은 i2i탭으로 들어간 후 Inpaint버튼을 클릭해 주는 방법입니다.
다음 이미지에서 보이는 것처럼 Inpaint 버튼을 클릭한 후
업로드 창에 이미지를 인페인팅할 이미지를 업로드해주시면 됩니다.
Ⅱ. 인페인트 탭 기능 알아보기
1. Resize mode
- Just resize : 말 그대로 사이즈만 바꿔주는 기능입니다.
- Crop and resize : 사이즈에 맞게 Crop하여 리사이즈해줍니다.
- Resize and fill : 리사이즈하면서 비율에 맞게 남는 부분을 채워줍니다.
- Just resize (latent upscale) : 리사이즈와 latent upscale을 해줍니다.
2. mask blur
0~4로 맞추어 작업하시는 것을 추천드립니다.
3. Mask mode
- Inpaint masked : 우리가 색칠한 부분을 고쳐줍니다.
- Inpaint not masked : 우리가 색칠한 부분을 제외하고 고쳐줍니다.
4. Mask content
각 Mask content에 대한 비교 이미지는 다음과 같습니다.
정확한 기능 차이는 저도 잘 몰라서 넘어가도록 하겠습니다...
아무튼, 여기서는 original을 사용하도록 하겠습니다.
5. Inpaint Area / Only masked padding, pixels
Only masked : 마스크 칠한 부분만 다시 그려줌
Whole picture : 그림 전체를 다시 그려줌
대부분의 경우 Whole picture이 자연스럽게 인페인트되니 Whole picture을 적용해 주도록 하겠습니다.
Only masked padding, pixels는 32로 설정해 주겠습니다.
6. 그 외
그 외의 기능들은 t2i와 동일합니다.
단, Sampling Steps는 좀 더 높게 설정하는 것이 좋다고 하니 40 정도로 맞추어 줍니다.
인페인트에서는 본인의 니즈에 맞게 디노이지 강도를 변경하면서 인페인팅을 하는 것이 핵심입니다.
예를 들면 완전히 새로운 부분을 추가하고 싶다거나 지우고 싶은 경우에는
디노이징 강도를 높이 설정하고
어색한 부분을 살짝만 수정하고 싶은 경우에는
디노이징 강도를 낮게 설정하는 식으로
인페인팅을 진행해 주셔야 합니다.
저의 경우에는 아예 새로운 부분을 추가하고 싶거나
기존에 존재하던 부분을 제거하는 경우에는 디노이징 강도를 0.7~1로 설정하고
살짝 수정만 하고 싶을 때에는 0.3~0.5 정도로 설정을 합니다.
인페인팅 작업은 워낙 타율이 좋지 않아
이것저것 설정을 바꾸어 가면서 돌려보시는 것을 추천드립니다.
다른 부분은 t2i와 동일하게 설정해 줍니다.
추가적으로
Settings> Stable Diffusion에 들어가
"Apply color correction to img2img results to match original colors."
항목에 체크를 해줍니다.
(원본 이미지와 인페인팅한 부분의 색감이 다르게 생성되는 것을 방지해 줍니다.)
Ⅲ. 인페인트 활용 해보기
이제 인페인트를 해보도록 하겠습니다.
먼저 t2i로 돌아가 이미지를 하나 생성해 보겠습니다.
다음은 생성한 이미지의 정보입니다.
궁금하신 분들만 참고해 주세요.
prompt : 1girl, masterpiece,casual
Negative prompt : easynegative,bad_prompt_version2,(worst quality, low quality:1.4),multiple views, multiple panels,(hands:2),Bangs
Steps: 30
Sampler: DPM++ SDE Karras
CFG scale: 7
Seed: 141816320
Size: 512x512
Model: yorrrlmix_,
Used embeddings: easynegative [119b], bad_prompt_version2 [afea]
그럼 이 이미지를 인페인팅해서 옷을 바꿔보도록 하겠습니다.
생성된 이미지 아래 'Send to inpaint'버튼을 눌러주겠습니다.
먼저 설정을 해주도록 하겠습니다.
다시 한번 말씀드리지만 설정값들은 이게 정답이 아니고
상황에 맞게 언제든지 값을 바꾸어서 작업하셔야 합니다.
일단 저는 이렇게 설정을 하고 마스크칠을 해보도록 하겠습니다.
이렇게 옷 부분을 마스크칠 해준 후 프롬프트에 'blouse'를 추가해 줍니다.
추가해 준 후 이미지를 생성해 주겠습니다.
저는 Batchcount를 4로 설정하여 이미지가 4장이 나왔습니다.
(이렇게 하면 한 번에 많은 결과물을 받아볼 수 있어서 좋습니다.)
이렇게 인페인트 기능을 활용하는 방법에 대해서 알아보았습니다.
기회가 된다면 인페인트 기능을 응용한 여러 가지 예시에 대한 포스팅도 올려보겠습니다.
인페인트로 배경만 바꾸는 방법
webui inpaint/outpaint 배경 바꾸는 법 : StableDiffusion
인페인트 활용/응용
webui 인페인팅 및 i2i 응용/활용/손 고치는 방법
Allan의 모든 경험과 노하우가 담긴 [미드저니&스테이블 디퓨전의 모든 것] 전자책 구매 링크
[미드저니&스테이블 디퓨전의 모든 것] : 올인원 가이드북
도움이 되셨다면 광고 한번씩 클릭해 주시면 정말 감사하겠습니다. :)