ControlNet 종류 중 하나인 Depth의 사용방법에 대한 상세한 설명
안녕하세요 Allan입니다.
이번 포스팅 주제는 ControlNet의 종류 중 하나인 Depth입니다.
Depth는 레퍼런스 이미지의 깊이감을 추출한 이미지를 기반으로 새로운 이미지를 생성하게 해 줍니다.
아직 ControlNet의 기능 및 종류에 대해서 잘 모르신다면
아래 포스팅을 꼭 먼저 읽고 오시는 것을 추천드립니다.
webui ControlNet(컨트롤넷) 다운/기능/사용방법/종류/설치방법
Ⅰ. Depth란?
Depth란 이미지에서 피사체가 화면에서 얼마나 떨어져 있는지를 나타냅니다.
입체감을 표현할 수 있다는 면에서 Normal map과 비슷합니다만,
Depth는 피사체 뿐만 아니라 주변 사물들까지 표현하고 싶을 때 효과적이고,
Normal map은 피사체의 입체감을 집중적으로 표현하고 싶을 때 효과적입니다.
Depth 이미지에서 하얀색은 화면에 좀 더 가까운 것을 나타내고,
어두운 색은 화면에서 더 멀리 떨어져 있다는 것을 나타냅니다.
즉, 다음 그림 에서 컵이 화면에서 가장 가깝다고 볼 수 있겠습니다.
또한 preprocessor에 보시면
depth와 depth_leres 두 가지가 있는 것을 볼 수 있습니다.
depth_leres는 이미지에서 3D장면을 재구성 하도록 업그레이된 버전입니다.
두 경우 모두 civitai에서 받은 depth모델로 사용가능합니다.
Ⅱ. 옵션값 설정
1. depth
ControlNet 옵션값 설정 모델별로 거의 유사하나 조금씩 다른 부분이 있습니다.
Depth에서는 Midas Resolution이 있는 것을 볼 수 있습니다.
Midas Resolution은 Depth이미지의 해상도를 조절하는 기능입니다.
다음 이미지는
위에서부터 원본, 그리고 Midas Resolution를 각각 250,384,600으로 설정한 결과입니다.
보시는 것처럼 Midas Resolution값이 높아질수록 해상도가 높아져 깊이감이 선명하게 보이게 됩니다.
따라서, 원본 이미지의 깊이감을 더 반영하고 싶다면 Midas Resolution값을 높이셔서 사용하시면 될 것 같습니다.
2. depth_leres
- LeRes Resolution : Midas와 동일하게 Depth이미지의 해상도를 조절합니다.
- Remove Near%, Remove Background% : 말 그대로 가까운 부분 혹은 뒷부분을 제거해 줍니다.
정확한 기능은 확실하게 말씀드리기 어렵기 때문에 0,0으로 두고 패스하겠습니다.
depth_leres로 생성한 Depth 이미지는 다음과 같습니다.
depth로 생성한 이미지와 살짝 다른 것을 볼 수 있습니다.
depth_leres가 업그레이드된 버전이라고 하니 생성한 이미지도 조금 더 좋은 것 같아 보이긴 합니다.
Ⅲ. 이미지 생성
depth는 피사체의 표정과 같은 디테일한 부분까지 원본이미지와 동일하게 구현하기에는 적합하지 않습니다.
다만, 피사체뿐만 아니라 이미지 전체의 입체감을 표현하는 데는 정말 효과적이니
상황에 맞게 Canny 혹은 Normal map등과 같은 Controlnet 중에 선택하셔서 사용하시는 것을 추천드립니다.
원본 이미지를 스케치형태로 추출해 주는 Canny에 대해서 궁금하시다면 아래 포스팅을 참고해 주세요.
webui ControlNet(컨트롤넷) - Canny 사용방법 완벽정리