사용자가 원하는 고품질 이미지를 얻기 위해 WEBUI에서 확장기능인 BMAB을 설치하면 간단한 설정으로 간편하게 이미지 후처리 기능을 활용할 수 있습니다. 본 글에서는 BMAB 사용법에 대해 자세히 살펴보도록 하겠습니다.
BMAB이란
일반적으로 프롬프트, 로라, 컨트롤넷 등을 잘 활용하면 충분히 사용자가 원하는 이미지를 그려낼 수 있습니다. 보통 WebUI의 다양한 설정값을 잘 세팅한 상태에서 스테이블 디퓨전으로 생성한 그림은 상당한 퀄리티를 자랑하지만, 간혹 막상 이렇게 막 생성한 그림이 어딘가 2% 부족한 느낌을 받을 때가 있습니다.
가장 대표적인 예가 바로 인물 전신을 한 번에 그릴 때 얼굴 또는 손, 발 등 부위의 디테일이 떨어져 이미지 뭉개짐이 발생하는 현상입니다. 아래 글은 일전에 이런 뭉개짐 현상의 이유와 해결 방법에 대해 따로 작성한 포스팅으로, 해당 포스팅에서도 이러한 현상을 극복하는 한 방안으로 BMAB을 언급한 적이 있습니다.
BMAB은 아카라이브 개인 회원인 포르투(portu)님이 직접 개발해 배포하는 WebUI용 확장기능입니다. BMAB은 기본적으로 스테이블 디퓨전으로 생성이 완료된 이미지의 후처리 자동화 기능을 시작으로 개발이 되어 현재는 수없이 많은 업데이트를 통해 이미지 전처리, 후처리, 업스케일 및 아웃페인팅 등 더욱 다양하고 막강한 기능을 제공하고 있습니다. 아래에서는 BMAB 사용법 및 설치 방법에 대해 자세히 살펴보겠습니다.
BMAB 설치 방법
앞서 말씀드린 것처럼 BMAB 또한 WebUI용 확장기능으로 아래 깃허브 URL을 Extentions > Install from URL에 붙여넣어 설치할 수 있습니다.
늘 그렇듯 확장기능을 설치한 뒤 WebUI를 재시작해주는 것이 좋으며, 정상적으로 설치를 마치면 txt2img 또는 img2img 생성창에서 아래와 같이 BMAB 설정 항목들이 나타납니다.
WebUI 확장기능 설치 방법에 대해 익숙하지 않거나 자세한 설명이 필요하신 분들은 아래 글을 참고하시기 바랍니다.
BMAB 사용법
사실 BMAB은 그 기능이 너무 많기 때문에 본문에서 모든 사용법을 확인하기에는 어려움이 있습니다. 따라서 개인적으로 이미지 생성 시 자주 사용하게 되는 대표적인 기능들만 추려 BMAB 사용법에 대해 살펴보도록 하겠습니다.
Basic 기능 활용하기
BMAB 설정 항목 중 BMAB 항목의 Basic 탭을 보면 아래와 같이 생성될 이미지의 대비, 밝기, 선예도, 색온도 등을 설정할 수 있습니다.
개발자인 portu님이 추천한 세팅값으로는 대비(Contrast)를 1.2, 밝기(Brightness)를 0.9, 선예도(Sharpness)를 1.5 정도로 주면 생성되는 이미지가 훨씬 입체적으로 만들 수 있다고 합니다. 아래는 해당 설정값 적용 전 후를 비교한 예시 이미지입니다.
확실히 설정값을 미적용(좌)한 이미지 대비 적용(우)한 이미지의 명암이 짙어지면서 조금 더 입체적인 느낌이 살아나긴 하지만, 어두운 부분의 디테일은 오히려 지워지는 느낌입니다. 따라서 사용자의 취향에 맞게 설정값을 변경해가며 사용해야할 것 같습니다.
Basic 기능은 결국 생성된 이미지를 직접 포토샵이나 기타 이미지 편집 프로그램으로 불러와 다시 한 번 손봐야 하는 수고를 덜어주는 차원에서 활용 가능한데요, 이 점에 잘 착안하여 아래와 같이 세팅하면 아날로그 필름 느낌의 빈티지 이미지를 만들어 낼 수도 있습니다.
인물 보정 기능
인물을 전신으로 한 번에 그리는 경우 얼굴 및 손, 발 등의 디테일이 부족한 경우가 대부분입니다. 특히 인물이 전체 그림 속에서 차지하는 비율이 더 적을수록 심하게 나타나는 현상으로 스테이블 디퓨전이 한정된 능력으로 그림 전체에서 인물의 중요도를 낮게 여기거나 반대로 배경에 더욱 힘을 쓰기 때문입니다.
먼저 Person과 Face 탭에서 위와 같이 가장 상단의 Enable 항목을 활성화해주면 그림 생성시 알아서 동작하게 됩니다.
Person
Person의 경우 전체 이미지에서 인물이 차지하는 비율(Large person area limit)을 지정해주면 해당 비율보다 작은 인물을 사용자가 설정한 Upscale Ratio 만큼 확대해 그린 뒤 다시 원래 이미지에 합성해주는 기능입니다. Limit은 그림 내에서 인물이 한 명 이상일 때 몇명까지 이 작업을 진행할 지를 설정합니다.
Face
Face는 말 그대로 인물의 얼굴을 다시 한 번 보정하는 기능입니다. 확실한 차이를 위해 예시 이미지에서는 Prompt에 smile을 입력하고 그림을 생성해보았습니다.
위 예시 이미지는 BMAB을 적용하지 않은 그림, Person만 적용, Face까지 적용한 이미지를 비교한 것입니다. 조금 더 명확한 비교를 위해 각 그림에서 인물만 다시 크롭해서 비교해보면 다음과 같습니다.
인물 전신을 그냥 생성하다보니 확실히 얼굴 뭉개짐이 심한데요, Person을 적용한 경우 인물을 4배 확대 생성해서 원본에 다시 붙여넣어 얼굴을 비롯해 인물의 옷차림 등 전반적인 디테일이 살아난 느낌입니다. 여기서 face탭을 활성화하여 smile 프롬프트를 한번 더 적용하면서 얼굴의 표정과 디테일이 살아난 모습입니다.
인물 기준 아웃페인팅
마지막으로 인물을 기준으로 배경을 확장하는 기능에 대해 살펴보고자 합니다. 스테이블디퓨전으로 인물 그림을 그리는 경우 대부분 인물이 주 피사체로 그려내기 때문에 컨트롤넷 등 다른 확장프로그램의 도움 없이 배경을 살리는 그림을 그리기가 쉽지 않습니다. BMAB의 전처리 기능 중 Resize를 사용하면 간편하게 이를 해결할 수 있습니다. 우선 그 설정값을 살펴보면 다음과 같습니다.
BMAB Preprocessor > Reszie 탭에서 Enable reszie(intermediate)와 Resized by person을 체크하여 활성화해줍니다. 이후 아래 Method는 inpaint+lama를 선택, 확장 방향(Alignment)는 자유롭게 선택 가능하지만, 개인적으로는 기본값인 bottom을 선호합니다. 이후 Resize by person intermediate 값이 바로 전체 사진에서 인물의 비율을 선택하는 부분입니다. Denosing Strength for inpaint and inpaint+lama의 경우 말 그대로 인물의 크기를 바탕으로 그림을 확대할 때 디노이즈 강도를 설정하는 부분입니다. 아래는 Resize 기능을 활성화하여 생성한 결과 이미지를 비교한 것입니다.
위에서부터 순서대로 BMAB Preprocessor미적용 / Resize 0.85 + Denoise 0.75 / Resize 0.7 + Denoise 0.75 / Resize 0.7 + Denoise 0.85 설정으로 생성한 그림입니다. 위에서 BMAB의 Person과 Face 설정값을 그대로 두었기 때문에 Resize후에 인물 디테일링도 적용이 된 모습입니다. 자세히 보면 Resize 0.7에서 디노이징 강도를 그대로 0.75로 진행하면 확장된 배경이 원본 그림과 연결되는 부위가 조금 부자연스러운 것을 볼 수 있습니다. 이를 완화하기 위해 마지막 그림은 디노이징 강도를 조금더 올려 0.85를 주고 생성했으며, 예상대로 그림의 부자연스러운 연결 부위를 어느정도 해소할 수 있었습니다.