어두운 배경이 싫으시다면 페이지 우측 하단에 보이는 초승달 모양의 아이콘을 클릭하면 화이트모드로 변경됩니다. 초승달 모양 버튼 : `화이트/다크 모드` 전환 |
WebUI의 기능들 중 'img2img'에서 사용할 수 있는 편집 기능으로 특정한 부분을 수정하거나 다르게 편집하고 싶을 때 사용하는 기능입니다. 이름에서도 보듯이 페인트를 칠하듯 수정할 부위를 칠해주면 그 부분만 이미지를 편집해서 생성합니다.
해당 기능은 img2img 기능과 유사한 옵션들이 있으므로 이에 대한 자세한 설명은 이전에 제가 작성한 포스팅에서 설명해놓았으니 참고하시길 바랍니다.
🔸img2img 기능 사용법
1. 테스트 이미지 생성 및 불러오기
'img2img'에서 이미지를 편집하기 위해서는 이미지가 필요합니다. 이미지를 넣는 방법은 아래와 같이 2가지 방식이 있는데 본인이 편한 방식으로 선택해서 이미지를 'img2img'의 'inpaint' 탭에 넣어주시면 됩니다.
🟦 이미지 생성 후 Inpaint 보내기
먼저 이미지를 'txt2img'에서 생성을 합니다. 본인이 원하는 이미지를 생성하셔도 되고 아래 제가 작성한 프롬프트를 참고하여 이미지를 생성하셔도 됩니다.
🔹사용 프롬프트
(masterpiece, best quality, highres, highest detailed), fashion photography, (extremely detailed CG, 8k wallpaper, professional photograph), (illustration, colorful, dim colors, official art), looking at viewer, outdoors, fortress background, battlegrounds, siege warfare, destroyed, medieval, far away castle, looking at viewer, dynamic angle, BREAK 1girl, knight, lower body, medium breasts, long hair, blonde hair, blush, lipgloss, standing, alternate costume, alternate hairstyle, armored dress, body armor, shoulder armor, bridal gauntlets, detailed armor, hip armor, knight belt, emblem on armor, BREAK cinematic lighting, bloom, dramatic
🔸부정 프롬프트 (임베딩은 취향껏 추가)
(worst quality, low quality:1.4), (navel:1.3)
그리고 아래와 같이 생성한 이미지의 Preview 아래 아이콘들 중에서 🎨 모양을 클릭합니다. 그러면 'img2img'의 'inpaint' 탭으로 해당 이미지와 함께 프롬프트, 일부 Generation 옵션 값들이 같이 넘어갑니다.
🟦 이미지 직접 Inpaint에 업로드하기
'img2img'의 'inpaint' 탭으로 이동하여 직접 이미지를 넣는 영역에 드래그 또는 클릭해서 업로드하여 이미지를 넣을 수 있습니다.
2. Inpaint 기능
'Inpaint' 탭에 이미지를 넣었다면 아래에 옵션들이 보일 겁니다. 이 옵션들을 설정하여 색칠한 영역에 대한 이미지를 편집하여 생성합니다. 색칠 관련 설명안 아래 3번에서 하고, 옵션에 대한 내용을 먼저 살펴보겠습니다.
🟦 Inpaint 옵션 설정 설명
🔹Resize mode
'Resize mode'에 관해서는 'img2img'를 설명하는 제 포스팅에서 자세히 설명하였는데, 간단하게 설명하면 아래와 같습니다.
- Just resize : 말 그대로 사이즈를 Resize to 또는 Resize by의 사이즈로 변경하게 됩니다.
- Crop and resize : 사이즈를 변경할 때 영역이 줄어든 부분은 잘라버립니다. (중앙을 기준으로 사이즈 조정)
- Resize and fill : 사이즈를 변경할 때 늘어난 부분을 채웁니다.
- Just resize (latent upscale) : 'Just resize'를 수행하면서 latent 방식으로 업스케일링을 별도로 해줍니다.
주로 'Just resize'를 사용하고, 상황에 따라서 'Crop and resize'와 'Resize and fill'을 사용합니다.
🔹Mask blur
색칠한 부위의 끝부분의 블러(흐릿한) 영역을 픽셀 단위로 설정합니다. 보통 깔끔한 처리를 위해서 0 ~ 4 정도로 낮은 값을 사용하기도 하고, 적당히 부드럽게 이음새를 만들고 싶다면 16, 32, 64와 같이 2진수의 값으로 설정해주면 좋습니다.
🔹Mask mode
'Inpaint masked'는 색을 칠한 부분만을 고치는 옵션. 'Inpaint not masked'는 반대의 개념으로 색칠한 부분만 빼고 나머지를 고치는 방식입니다.
🔹Mask content
4가지 옵션 중 'original'을 주로 사용합니다. 가장 기본 옵션인데, 다른 옵션들은 사실 그 기능에 대해서 잘 알려지지 않아 정확한 설명은 힘듭니다. 일단 제가 이해한 걸로 표현하면 아래와 같습니다.
- fill : 프롬프트의 변경에 따른 내용을 색칠한 영역에 강제로 집어넣습니다. 프롬프트 변경이 없다면 원본 이미지보다는 프롬프트의 내용을 중점적으로 해석하여 이미지를 생성.
- original : 프롬프트 내용 및 원본 이미지와 가장 유사하게 이미지를 생성
- latent noise : 프롬프트 내용과 별개로 잠재적 유사 특성을 찾아 전혀 다른 이미지를 생성. (비추천)
- latent nothing : latent noise와는 정 반대로 특성을 최대한 제거하고 원본 이미지의 주변 사물과 유사하면서 단순한 부분만을 참고하여 이미지를 생성합니다.
아래는 각각의 옵션별로 원본 이미지의 뒤쪽 배경을 칠한 뒤 생성한 모습입니다. (동일한 프롬프트)
🔹Inpaint area
- Whole picture : 원본 전체 이미지와 프롬프트를 기반으로 색칠한 부분에 대해서만 재해석해서 전체이미지를 완성
- Only masked : 색칠한 부분에 대해서만 재해석하고 원본 이미지에 붙여버림. 그림속의 그림이라고 이해하면 됨
해당 옵션 아래에 있는 'Only masked padding, pixels' 옵션의 값을 높이면 'Only masked' 옵션을 선택했을 때 정확도를 높일 수 있습니다. (최대한 원본 이미지와 유사하게)
'Whole picture' 옵션을 선택했을 때에는 기본값 32로 설정하면 좋습니다.
🔹Denoising strength
이 값은 hires나 img2img에서 많이 보셨듯, 이미지에 노이즈를 얼마나 적용하여 원본 이미지와 다르게 혹은 유지하면서 이미지를 생성할지 강도를 조절하는 옵션입니다. 0 ~ 1 사이의 값을 적용하며, 0에 가까울수록 원본과 유사하게, 1에 가까울수록 원본과 다르게 이미지를 생성합니다.
3. Inpaint로 이미지 수정하기
이제 Inpaint로 이미지를 생성해보도록 하겠습니다. 위에서 이미지를 생성해서 'Inpaint'로 보낸 경우, 프롬프트가 적용되어 있겠지만, 직접 이미지를 넣은 경우 프롬프트가 비어 있을 겁니다.
이때 생성한 이미지를 직접 넣은 경우, 상단 메뉴에 보면 'PNG Info' 카테고리가 있습니다. 여기서 이미지를 드래그해서 넣으면 우측에 해당 이미지에서 사용한 프롬프트부터 각종 옵션값들의 정보가 나타납니다. 그리고 그 아래 버튼들 중에서 'Send to inpaint'를 눌러서 전송하면 프롬프트와 일부 옵션들이 적용됩니다.
※ PNG Info는 WebUI를 통해서 생성한 이미지만 분석할 수 있습니다.
🟦 Inpaint 도구
'Inpaint'에서 이미지가 들어간 부분을 보면 우측 상단에 작은 아이콘들이 보입니다. 그리고 좌측 상단에 보면 ❗모양 위로 마우스를 올리면 간단한 단축키에 대한 사용법을 알려주는 안내창이 뜹니다.
우측 상단에 보이는 아이콘은 각각 '되돌리기 (Undo)', '지우기 (Clear)', '이미지 제거 (Remove image)', '브러시 크기 (Use Brush)' 입니다. 브러시 크기는 아이콘을 클릭하면 슬라이드바가 토글로 나왔다 사라졌다 합니다.
단축키에 대한 설명은 아래와 같습니다. 각각의 단축키는 이미지 위에 마우스를 올려놓은 상태에서 동작합니다.
- Alt + wheel : 이미지 크기 조절(확대/축소)
- Ctrl + wheel : 브러시 크기 조절(확대/축소)
- R : 크기 및 위치 원상복구(색칠한 영역은 유지)
- S : 이미지 최대 크기로 보기 (토글키)
- F : 이미지 위치 이동 (이미지 위에 마우스를 올리고 F키를 누른상태로 마우스를 움직이면 이미지가 움직임)
단축키를 이용하여 브러시 크기를 줄이고 이미지를 확대하여 세세하게 색칠할 수도 있고, 가운데로 옮기고 싶다면 F키를 이용하여 캔버스 이미지창을 옮길 수 있습니다.
브러시를 원하는 위치에서 마우스를 클릭하면 색칠할 수 있고, 잘못 그렸다 싶으면 '되돌리기 (Undo)' 버튼을 눌러 되돌릴 수 있습니다.
본인이 수정하고 싶은 영역을 색칠하고 아래 옵션을 설정한 뒤에 'Generate' 버튼을 눌러 이미지를 생성하면 됩니다. 생성한 이미지 결과물은 [outputs] 폴더의 [img2img-images] 폴더 안에 저장됩니다.
이미지를 수정하면서 계속해서 🎨 버튼을 눌러서 생성한 이미지를 다시 'Inpaint'로 옮기고, 다시 수정하고를 반복하면서 이미지를 수정해나가면 보다 괜찮은 이미지를 완성해 나갈 수 있습니다.
🎨 버튼으로 다시 'Inpaint'로 이미지를 옮겨도 이미 색칠한 영역은 그대로 유지되므로 다시 칠하고 싶다면 '지우기 (Clear)' 버튼을 눌러 초기화하고 다시 색칠하시면 됩니다.
아래는 제가 한 8번? 정도 해서 'Inpaint'로 수정을 반복한 뒤 나온 결과물 예시입니다.
브러시 크기를 조정하면서 세세하게 해도 되고, 약간 영역을 크게 설정해서 그려도 되고, 정답은 없습니다. 계속 하면서 터득하는게 제일 빠릅니다.
옵션 값은 주로 'Whole picture'와 'Only masked'를 적절히 선택하면서 'Only masked padding, pixels' 값을 조절하면서 계속 칠하고 지우고 생성하고 다시 'inpaint'로 옮기고 다시 칠하고를 반복하는 수밖에 없습니다.
특정 영역이 자꾸 비슷하게 나온다 싶으면 'original' 대신에 'fill'을 선택하고 하면 강제로 그 부분을 지우고 주변과 유사하게 그려버립니다. (위 이미지에서 양손과 손으로 잡고 있는 것들을 그런 식으로 수정함)
그리고 'Denoising strength' 값은 어차피 수정을 목적으로 하기 때문에 0.7 이상으로 높게 주는 것이 좋습니다. 나중에 완성된 뒤에 이미지의 크기만 키우고 싶다면 Denoising 값을 0.1같이 작은 값으로 하고 사이즈를 키우고 생성하면 됩니다.
구독 및 좋아요는 컨텐츠를 생산하는데 많은 도움이 됩니다. 😊
감사합니다.