지난 글에서 컨트롤넷 타일리샘플의 설치 방법과 기본 설정 방법에 대해 자세히 알아보았습니다. 이번에는 타일리샘플을 활용해 디즈니 실사화에 도전해보도록 하겠습니다. 타일리샘플 기술을 활용하면 복잡한 단계를 거치지 않고도 원본 애니메이션에 기반한 굉장히 사실적인 실사를 그려낼 수 있습니다.
디즈니 실사화 타일리샘플
스테이블 디퓨전을 활용해 디즈니 공주님들을 실사화하여 다시 그려보고자 합니다. 조금 더 자연스러운 실사화를 위해 컨트롤넷 타일리샘플과 img2img 탭의 인페인트 기능을 함께 사용하고자 합니다.
타일리샘플 설정값
Resize mode : Just resize
Sampling method : DPM++ 2S a Karras
Sampling steps: 20
Resize by : 1
CFG Scale : 3
Denoising Strength : 0.9
Control Weight : 0.6~0.8
S/E Control Step : 0~1
Down Sampling Rate : 1
Control Mode : Balanced/My prompt is more important
위의 설정값을 고정했으니, 실제로 이제 그림을 바꾸는 요소는 사용하는 모델 및 시드값 정도일 것입니다. 컨트롤넷 타일리샘플의 기본적인 설치 및 설정 관련한 내용에 대해 자세한 설명이 필요하신 분들은 아래 글을 참고해주시기 바랍니다.
위의 설정값을 토대로 전체 이미지를 타일리샘플하는 것으로도 어느정도 실사화가 가능하지만, 원본 이미지의 해상도, 디테일에 따라 타일리샘플 외 다른 설정값들을 함께 건드려야할 수 있습니다.
디즈니 실사화 작업과정
이제 전체적인 작업 과정을 살펴보도록 하겠습니다. 본 예시에서는 실사화 작업에 구도, 디테일, 얼굴 이렇게 크게 3가지를 고려했습니다.
구도
먼저 2D 이미지를 실사화 할 때 이미지의 전반적인 구도를 유지하는데는 컨트롤넷의 Canny 기능을 함께 사용하는 것이 좋습니다. 원본 이미지가 실사인 경우라면 Depth나 Openpose 등을 함께 사용하는 것도 좋지만, 애니메이션에서는 보통 Depth보다는 외곽선을 따는 Canny가 유리하며, Openpose는 인물의 포즈는 잡을 수 있더라도 배경에는 관여하지 못한다는 단점이 있습니다.
디테일
오래된 디즈니 공주를 실사화한다면 원본 이미지의 해상도가 낮은 경우가 대부분입니다. 이럴 때는 스테이블 디퓨전이 이미지 내에 위치한 각 요소들을 제대로 파악하지 못하고 엉뚱하게 그려낼 수가 있습니다. 이를 보완하기 위해서는 upscale을 진행해 해상도를 높이고, 프롬프트를 자세하게 작성하는 것이 좋은 방법이 될 수 있습니다.
얼굴
디즈니 공주마다 고유의 얼굴이 있지만, 이를 실사화 할 때는 사용하는 모델(체크포인트)의 특성에 따라 얼굴이 달라질 수 밖에 없습니다. 여기서는 개인 학습 얼굴을 적용하기 위해 인페인트 작업을 추가로 진행합니다.
디즈니 공주 실사화 결과
위에서 설명드린 내용을 기반으로 디즈니 공주님들을 실사화한 이미지를 차례로 살펴보면서 구체적인 세팅 및 주의사항 등을 살펴보도록 하겠습니다.
백설공주
백설공주를 실사화 하기 위해 위에서 먼저 낮은 해상도의 원본 이미지를 2배 사이즈로 타일리샘플을 진행했습니다. 타일리샘플을 진행할 때 Canny도 함께 설정하여 컨트롤넷은 아래와 같이 2개를 활성화하여 사용했습니다.
Canny는 Control mode를 Balanced로 사용했습니다. 이렇게 설정하여 생성한 결과를 얼굴 부분만 다시 인페인트한 결과가 바로 아래 이미지입니다. Canny를 사용하지 않은 경우 백설공주가 왼손으로 붙잡고 있는 막대와, 오른손 위의 작은 새가 제대로 표현되지 않습니다.
신데렐라
이번에는 12시가 되면 사라진다는 신데렐라를 동일한 설정과 과정으로 그려보았습니다.
유리구두를 들고 의자에 앉아있는 구도와 자세가 완벽하게 동일합니다. 반면 배경의 계단은 조금 다른 형상으로 실사화가 진행되었습니다. 또한 첫 단계에서 타일리샘플을 진행할 때 해상도의 제한으로 의자에 새겨진 문양이라든지 기타 전반적인 디테일이 떨어져 조금은 밋밋한 느낌이 드는 사진이 되었습니다. 이를 극복하기 위해서는 아마도 얼굴을 인페인트해서 디테일을 살린 것처럼 타일리샘플 구간을 나눠서 진행하는 것도 좋은 방법이 될 것 같습니다.
겨울왕국 엘사
위의 두 경우와 엘사는 조금 다른 점이 있습니다. 백설공주와 신데렐라가 역사와 전통을 가진 오래된 디즈니 공주인 반면 엘사는 비교적 최신 공주님이죠. 겨울왕국 엘사는 애초에 등장할 때부터 3D 캐릭터로 등장했습니다. 즉, 실사까지 사실적이지는 않더라도 평면이 아니라 볼륨이 표현되는 캐릭터라는 것입니다. 따라서 위의 두 경우와 달리 타일리샘플과 함께 Canny가 아닌 Depth를 사용했습니다. 아래는 컨트롤넷 Depth 설정 이외의 다른 설정은 동일하게 진행한 결과입니다.
애니 실사화 주의사항
백설공주, 신데렐라 및 엘사 실사화를 진행했던 방식과 동일하게 다른 공주님들을 디즈니 실사화 진행한 결과는 아래와 같습니다. 일반적으로 각각의 원본 이미지 해상도와 이미지의 형태 등을 고려해 위에서 살펴본 방식을 유연하게 적용하면 사실적인 실사 공주님들을 만들어낼 수 있지만, 디즈니 실사화 및 기타 다른 애니메이션을 실사화 할 때 꼭 주의해야 할 부분이 하나 있습니다.
바로 애니메이션 속 인물의 신체 비율이 현실과는 많이 다르다는 점입니다. 위의 이미지는 인어공주가 다리를 얻고 바다에서 걸어나오는 모습과 라푼젤이 머리를 풀고 거울을 들여다보는 모습을 타일리샘플을 통해 실사화한 것입니다. 앞서 백설공주, 신데렐라, 엘사의 경우, 상반신만 자른 구도, 또는 비교적 신체 비율이 현실과 비슷한 공주님들이었습니다. 반면 똑같은 디즈니 실사화인데, 위의 백설공주와 라푼젤은 신체 비율이 비현실적이라 어딘가 모르게 인물이 어색한 것을 느끼실 수 있습니다.
미녀와 야수의 벨의 경우 그래도 매우 현실적인 신체비율로 실사화가 가능하지만, 알라딘의 자스민 공주는 애니메이션을 그대로 실사화 하면 이렇게 안어울리는 대두가 탄생할 수가 없습니다. 특히 자스민 공주의 경우 얼굴이 매우 크게 그려져 의도적으로 이런 이미지를 만들어야 하는 상황이 아니라면 실사화가 매우 곤란합니다. 이럴 때는 이미지의 일관성을 조금 포기하더라도 비슷한 포즈로 인물을 새로 그려넣는 것이 그나마 대안이 될 수 있습니다.
위 이미지와 같이 오픈포즈를 활용해 먼저 원본 이미지의 인물의 포즈를 추출하고, 추출한 포즈를 토대로 프롬프트를 잘 작성하여 인페인트를 통해 새로운 인물을 그려 넣습니다.
물론, 원본의 자스민 공주와는 사뭇 느낌이 다르기에 디즈니 실사화라는 말이 무색하지만… 이런 방식으로 같은 자리에 실사 인물을 대체할 수 있다는 정도로 봐주시면 감사하겠습니다.