ComfyUI에서 SNS 사진 만드는 방법

AI 기술을 이용해 가상의 인물을 설정하고 SNS 사진을 생성해 운영하는 계정들이 많이 생겨나고 있습니다. 그만큼 생성형 AI가 만들어주는 이미지가 실사와 구분이 어려울만큼 사실적이라고 볼 수 있습니다. 하지만, 프롬프트 원클릭만으로 만들 수 있는 이미지의 구도와 느낌은 어느정도 제약이 따르기 마련입니다. 본문에서는 배경 사진만 있다면, 그 속에 인물을 그려넣는 방식으로 가상 인물 중심의 SNS 게시물용으로 사용할 이미지를 만드는 방법에 대해 살펴봅니다.

생성형 AI를 이용해 SNS 사진을 만드는 방법

생성형 AI를 이용해 SNS 사진을 만드는 방법은 다양합니다. 앞서 설명드린것처럼, 생성형 AI는 일관성 유지가 어렵고, 학습된 해상도 이상 혹은 이하에서 이미지를 제대로 생성하기 어렵기 때문에, 단순 생성 기능으로 이미지를 만들다보면 생각보다 제한적인 형태의 이미지를 생성하게 됩니다. 이는 스테이블 디퓨전, 미드저니 등 플랫폼이나 기술의 종류에 상관없이 현재의 생성형 AI 이미지툴에서 공통적으로 보이는 한계점입니다. 물론 이 한계도 매우 빠른 속도로 극복 가능할 것으로 보이고, 대규모 컴퓨팅 파워를 갖추고 연구를 이끌고 있는 대기업들은 이미 이런 한계도 극복한지 오래일 것입니다.

하지만 우리는 가정에 설치된 로컬 PC에서 작업을 합니다. 따라서 이런 한계를 극복하기 위해, 이미지 생성 보다는 이미지 수정에 초점을 맞춰야 합니다. 이미지 전체를 생성하기 보다는, 이미 존재하는 이미지를 기반으로 SNS 사진을 만들어 내는 것입니다. 이런 관점에서는 아래와 같이 크게 4가지 방식을 고려해볼 수 있습니다.

  • 인물사진에서 얼굴만 바꾸기
  • 인물사진에서 인물의 얼굴 및 의상 등을 바꾸기
  • 인물사진에서 배경을 바꾸기
  • 배경속에 인물을 새로 그려넣기

각각의 방식에 따라 장단점이 있지만, 첫번째~세번째는 모두 SNS 사진을 위해 원본 촬영이 필요하다는 공통점이 있습니다. 반면 마지막 방식은, 배경속에 인물을 새로 그려넣으면 되므로, 배경, 즉, 장소 사진만 있다면, 어떤 이미지든 SNS 사진으로 바꿀 수 있다는 장점이 있습니다. 게다가 원본 촬영을 직접 하지 않아도 되며, 타인의 이미지를 사용하지도 않으므로, 초상권 또는 저작권 문제에서도 자유롭기 때문에, 여러므로 편합니다.

그동안 WebUI를 활용해 인페인트 기술로 위의 방식을 이용해 사진을 수정하는 방법에 대해 여러차례 소개드린 바 있습니다.

오늘은 ComfyUI에서 조금 더 인페인트를 확실하게 진행하는 Zoom Inpaint 방법을 함께 살펴보고, 해당 방식으로 SNS 사진을 만들기 위해 배경속에 인물을 생성한 예시 이미지를 소개드리고자 합니다.

SNS 사진을 만들기 위한 Zoom Inpaint 기술

Zoom Inpaint라는 용어가 따로 존재하는 것은 아니고, 오늘 소개드리는 워크플로우의 동작 방식에 빗대어 만든 붙여본 이름입니다. 앞서 WebUI 인페인트 완벽정복 글에서 점찍기 기술로 인페인트 영역을 사용자가 원하는 만큼으로 확장하는 꼼수를 적용했다면, ComfyUI에서는 아예 인페인트 적용 영역을 사용자가 지정하고, 해당영역을 체크포인트 해상도에 맞게 확대한 뒤, 인페인트를 진행하고, 다시 원본 이미지에 합해주는 워크플로우를 구성할 수 있습니다.

  1. 인페인트 영역 지정(마스킹 영역 크롭)
  2. 체크포인트 모델에 맞게 영역 리사이즈(SD1.5/SDXL)
  3. 인페인트 진행
  4. 원본 이미지에 다시 축소 합성

만약 위 과정이 없이 그냥 부분 인페인트를 했을 때, 해상도가 너무 낮다면 아래와 같이 정체불명의 이미지가 만들어질 확률이 높습니다. 아래 이미지는 일반 인페인트와 Zoom Inpaint의 결과를 비교한 것입니다. 원본 이미지의 바닥부분에 작은 마스킹을 하고, 해당 부위에 고양이를 그려달라고 요청했습니다.

Zoom Inpaint 진행 스텝

일반 인페인트로 진행한 경우, 원본이미지의 마스킹 부위의 해상도가 낮기 때문에, 온전한 고양이를 그리지 못한 모습입니다. 정체를 알 수 없는 솜뭉치가 그려졌습니다. 하지만 Zoom Inpaint의 경우 마스킹 영역을 1024×1024 크기로 확대한 뒤 아래와 같이 확대된 영역에 온전한 고양이를 그리고, 다시 그 고양이를 원본에 축소합성합니다.

Zoom Inpaint 고양이

따라서 Zoom Inpaint로 고양이를 그리면, 자연스럽게 배경속에 고양이가 녹아들어가게 됩니다. 위 4단계 과정을 자동으로 진행하는 워크플로우를 아래에서 다운받을 수 있습니다.

이제 이 기술을 활용해 아무것도 없는 배경 사진에, 인물을 합성해 넣을 수 있습니다. 아래는 배경 속에 인물을 생성해 넣은 예제입니다.

SNS 사진 예시
SNS 사진 예시2

인물 사진에서 인물을 지운 것이 아니라, 반대로 배경 사진에 인물을 생성하는 작업은 일반적으로 난이도가 더 높은데요, 생성한 새로운 인물의 톤과 해상도 등이 원본과 맞아야 하고, 그외 빛의 방향이나 원본 배경이미지 속 사물들과의 경계 등이 자연스럽게 연결되어야 하기 때문입니다. 다행히 Zoom Inpaint를 활용하면, 알아서 스테이블 디퓨전이 확대된 인페인트 영역의 이미지를 고려해 그럴듯하게 인물을 생성해주기 때문에, 색감과 연결부위가 자연스러워집니다. 또한 확대상태에서 생성한 인물을 다시 축소해서 합성하는 과정에서 원본의 해상도와 인물의 해상도가 자연스럽게 맞춰지므로, 해상도 차이(디테일 차이)에 따른 어색한 부분도 많이 해소가 됩니다.

한 가지 단점이라면, 위의 예시에서 보이듯 의도찮게 인물근처 부위는 원본에 수정이 일어날 수 있다는 점입니다. 물론 포토샵 등을 활용해 살짝 리터칭을 한면 쉽게 해겨할 수 있는 부분이긴 합니다. 이처럼 오늘은 자연스럽게 인물을 배경속에 생성해넣는 방식으로 SNS 사진을 만들어보았습니다. 생성형 AI기술을 단순 이미지 생성에 그치는 것이 아니라, 기존의 이미지 수정 도구를 확장해준다는 측면에서 바라보면 더욱 활용도가 높아지는 것 같습니다.