이전 글에서 소개드린 WebUI와 컨트롤넷을 사용하는 방법과 달리 ComfyUI에서 원하는 의상을 바로바로 쇼핑몰 AI 피팅 모델에 입혀보는 방법에 대해 소개드리도록 하겠습니다.
AI 쇼핑몰 모델 생성
스테이블 디퓨전을 공부 및 사용하면서 아무래도 가장 많이 고려하는 부분이 바로 활용성일 것입니다. 현업에서 디지털 아티스트로 활동중인 분들은 포토샵이나 일러스트, 블렌더 등에 접목해 이미 그 활용 방식을 굳건히 하고 계시겠지만, 디자이너가 아닌 일반 사용자가 자신의 사업에 적용할 때 가장 먼저 떠오르는 활용처가 바로 쇼핑몰 모델입니다. 오늘은 ComfyUI에서 쇼핑몰 AI 피팅 모델을 먼저 생성하고, 생성한 피팅 모델에게 IP-Adapter를 적용해 여러 다양한 옷을 입혀보도록 하겠습니다.
작업 흐름 요약
모델에게 옷을 입히는 과정을 요약하면 아래와 같습니다. 먼저 모델이 될 인물사진을 생성한 뒤 IP-Adapter를 설치하고 ComfyUI에서 하단과 같이 워크플로우를 구성하여 옷을 입히게 됩니다.
이제 아래에서는 각 단계별 진행을 위한 구체적인 준비 사항 및 과정을 살펴보겠습니다.
AI 피팅 모델 준비
먼저 쇼핑몰 모델로 활용할 인물을 생성합니다. 인물 사진은 SD1.5 또는 SDXL중 편한 방법으로 생성하시면 됩니다. 단, 인물의 상하의를 입혀볼 예정이므로 전신 이미지를 생성하는 것을 권장드리며, 추후 옷을 입혔을 때 스테이블 디퓨전이 조금 더 자연스럽게 표현 가능하도록 되도록 팔과 다리가 교차하지 않는 이미지가 좋습니다. 같은 이유로 모델이 될 인물이 입고 있는 옷은 최대한 덜 화려한 것이 좋습니다. 본인의 체형 밖으로 벗어나는 부피가 큰 옷이나, 체형을 가리는 펑퍼짐한 옷(?)을 입고 있는 모델은 아무래도 다른 옷을 입힐 때 스테이블 디퓨전이 체형을 제대로 분석하지 못할 수도 있기 때문입니다. 아래는 본문에서 AI 피팅 모델로 사용할 인물을 다양하게 생성해본 예시입니다.
IP-Adapter Plus설치(SDXL)
먼저 ComfyUI에서 IP-Adapter plus라는 커스텀노드를 설치해야 합니다. 아래와 같이 ComfyUI Manager에서 ipadapter를 검색해 나오는 첫번째 커스텀노드(제작자: cubiq)를 설치합니다. 또는 아래 깃허브 페이지 주소로 수동으로 설치해줍니다.
깃 주소 : https://github.com/cubiq/ComfyUI_IPAdapter_plus.git
전용 모델 다운로드
커스텀 노드를 설치한 뒤에는 IP-Adapter를 사용하기 위한 전용 모델들을 다운받아야 합니다. 아래 안내처럼 깃허브 페이지에서 안내되어 있는대로 필요 모델을 받아 특정위치에 옮겨줘야하는데요, 우리는 SDXL 체크포인트 모델을 사용할 것이므로 SDXL용으로 다운받습니다.
Clip vision model
Clip Vision 모델은 다운로드 받으면 파일명이 model.saftensors로 바뀌는데요, 위의 이름(CLIP-Vit-H-14-laion2B-s32B-b79K.safetensors)으로 바꿔준 뒤 ComfyUI가 설치된 폴더의 models에 clip_vision 폴더로 옮겨줍니다. 만약 clip_vision 폴더가 없다면 직접 만들어주시면 됩니다.
Ipadapter model
Ip-adapter 모델은 SDXL용인 ip-adapter-plust_sdxl_vit-h.saetensors를 다운받습니다. 마찬가지로 ComfyUI가 설치된 폴더의 models에 ipadapter 폴더로 옮겨줍니다. 만약 ipadapter 폴더가 없다면 직접 만들어주시면 됩니다.
IP-Adapter Workflow 구성
이제 옷을 입히기 위한 워크플로우를 다음과 같이 구성해봅니다. 필요하신 분은 아래에서 다운 받을 수 있습니다.
위의 워크플로우는 언뜻 보면 매우 복잡해보일 수 있지만 이해하고 나면 크게 어렵지 않습니다. 각 구성을 따로따로 순서대로 살펴보면 다음과 같습니다.
AI 피팅 모델 및 모델 로딩
가장 먼저 체크포인트 및 VAE 모델, 그리고 준비해둔 원본 이미지인 AI 피팅 모델 이미지를 로딩하는 영역입니다.
위 이미지를 참고하여 워크플로우를 구성하고, 원본 이미지에는 옷을 바꿔입을 영역만 인페인트 마스킹 해줘야 합니다. 마스킹은 이미지를 먼저 업로드한 뒤 마우스 우클릭, Open in Maskeditor를 선택한 뒤 팝업창에서 직접 진행하시면 됩니다. 기본적으로 클릭+드래그로 마스크 칠이 가능하며, 마우스 우클릭+드래그로 칠한 부분을 지울수 있습니다. 마스킹 영역 전체를 지울때는 좌측 아래 Clear를 눌러줍니다. 마스킹을 마쳤다면 우측 아래 Save to node를 눌러줍니다.
IP Adapter 영역
이제 우측에는 아래와 같이 실제 입히고 싶은 옷 이미지를 적용하는 IP-Adapter를 구성해줘야 합니다.
위 예시에는 3개 영역을 나눴는데요, 각각 전신, 상의, 하의로 니뉩니다. 지금 예시에서는 상의만 갈아 입히기 때문에 전신과 하의는 이미지 처리를 하지 않기 위해 우회(Bypass)를 걸어둔 상태입니다.
따라서 입히고 싶은 옷의 위치에 따라 원하시는대로 바이패스를 끄고 켜는 것으로 제어가 가능합니다. 일단 예시에서는 상의 노드만 살펴보겠습니다. 아래는 로딩 영역과 IP-Adapter 상의 영역만 확대하여 붙여놓은 이미지입니다.
앞서 설치했던 IP-Adapter Plus 커스텀노드에서 IPAdapter Unified Loader와 IPAdapter Advanced 노드를 추가한 뒤 두 노드를 이어줍니다. IPAdapter Advanced 노드에는 Load Image 노드를 새로 만들어 입히고자 하는 상의를 올려줍니다. 새로운 Load Image 노드를 만들어 상의만 다시 마스킹한 뒤 mask 출력단을 IPAdapter Advanced의 attn_mask 입력단으로 연결해줍니다.
Text Encoder & ControlNet 영역
하단의 텍스트 인코더와 컨트롤넷 영역입니다. 여기서는 먼저 프롬프트를 작성하고, 컨트롤넷 오픈포즈를 적용하기 위해 아래와 같이 노드를 구성해줘야 합니다.
주의할 것은 IPAdapter를 적용하기 위해 SDXL용 모델으로 컨트롤넷을 구성해야 합니다. 컨트롤넷을 구성하는 방법에 대해 익숙하지 않으신 분들은 아래 글을 참고해주시기 바랍니다.
KSampler 및 이미지 생성
마지막으로 컨트롤넷과 최초 로드한 이미지로부터 입력을 받아 아래와 같이 이미지 생성 및 저장 노드를 구성합니다.
최초 로딩한 이미지로부터 VAE Encode > Set Latent Noise Mask > KSampler로 이어지는 연결은 최초 이미지에서 마스킹해준 영역만 인페인트를 진행하기 위함입니다.
AI 피팅 모델 의상 입힌결과
먼저 위 예시 워크플로우를 그대로 진행한 결과입니다. 몽클레어 폴로 티셔츠를 원본 모델에게 입히자 원본의 흰 티셔츠가 감쪽같이 폴로티로 바뀐 것을 볼 수 있습니다.
이번에는 모델의 자세를 정면이 아닌 측면으로 돌려본 결과입니다.
중요한 점은 의상은 정면을 바라보고 있고, 인물은 측면을 보고 있지만 여전히 그럴듯하게 의상이 입혀진다는 점입니다. 즉, 모델의 포즈를 어느정도 자유롭게 바꿔도 적용이 가능하다는 것입니다.
이번에는 배경과 포즈가 더 자유로운 모델에게 상의화 하의를 모두 적용해본 결과입니다.
각각 상의만, 하의만, 둘 모두를 적용했을 때 모두 큰 이질감 없이 옷을 갈아입는 모습입니다.
맺음말
오늘은 스테이블 디퓨전으로 가상의 AI 쇼핑몰 모델을 생성하고, IP-Adapter를 활용해 실제 온라인에서 판매중인 상의 및 하의 이미지를 모델에게 입혀보았습니다. 워크플로우 구성만 할 수 있다면, 옷을 바꿔입히는 것이 매우 쉽고, 간편한데다 빠르기 때문에 실제 수요가 있는 분들에게는 꽤 괜찮은 기능이라고 생각됩니다. 특히 원본 옷 이미지가 정면을 바라보고 있더라도 측면 모델에게도 입힐 수 있다는 점은 기대하지 못한 부분인만큼 앞으로 기술이 발전함에따라 더욱 그 활용도가 높아질 것으로 보입니다.
단, 여러 장점에도 불구하고 본문에서 다룬 내용에서 조금 더 나아가 여러 시도를 해보다보면 그 단점도 드러납니다. 예를 들어 예시 모델이 입고 있는 옷의 형태와 실제로 입히고자 하는 옷의 형태가 다른 경우(본문처럼 소재만 다른 것은 상관 없지만 형상이 다른 경우)에는 추가적인 작업을 해줘야 쓸만한 이미지를 얻을 수 있었습니다. 또한 IP-Adapter는 이미지 프롬프트 어뎁터, 즉 사용자가 제공한 이미지를 스테이블 디퓨전에게 참고하라고 주는 방식이므로, 제시한 이미지가 100% 동일하게 재현되는 것은 아닙니다. 예를 들어 위에서도 몽클레어 폴로 티셔처의 브랜드 로고가 유사하게는 생성되었지만, 확대해보면 100% 동일하지는 않습니다. 따라서 아직까지는 100% 상업용으로 사용할 수준은 못되지만, 이런 부분은 조금 더 구체적인 워크플로우를 추가하거나, 개선된 기술로 곧 해결이 가능한 부분으로 보입니다. IP-Adapter를 이용한 AI 쇼핑몰 모델 관련해 더욱 자세한 내용이 궁금하신 분들은 전자책을 참고해주시기 바랍니다.