brunch

You can make anything
by writing

C.S.Lewis

by 야근요정 Apr 22. 2024

AI로 옷 모델 이미지 바꾸기

(1) 스테이블 디퓨전으로 의류 쇼핑몰 이미지 만드는 방법

"팀장님.. 저희 모델컷 새로 찍으면 안 될까요..?"


 퍼포먼스 마케팅은 소재와의 싸움입니다. 검색광고(SA)는 대부분 키워드와 CPC 전략을 중점적으로 다루지만, 배너광고(DA)는 어떤 이미지로 어떤 카피를 사용하는지에 따라 성과가 천차만별로 나뉘죠.


 그러나 광고 성과를 개선하기 위해 제품 이미지를 새로 촬영하기에는 우리의 예산이 너무나 작고 소중합니다. 더군다나 단순 누끼컷이 아니라, 연출컷이나 모델컷이 필요한 상황이라면..? 생각만 해도 눈이 핑글핑글 돌아가는 상황이네요.


이미지컷 촬영 예산이 저희 광고비보다 높다구요...?


 제품 이미지 촬영에 많은 예산이 필요하다 보니, 한 번 이미지를 촬영하기 위해 너무나 많은 업무가 추가되기도 합니다. 내부의 리소스를 줄이고자 포토그래퍼(혹은 스튜디오)에게 촬영 기획을 의뢰할 수도 있지만, 한 푼이 아쉬운 상황에서 기획비를 추가 지출하기란 쉽지 않죠.


 이러한 이유 때문에 별도의 촬영 없이 예전에 촬영했던 사진으로 카피와 디자인만 교체하며 광고를 운영하는 일이 많습니다. C-Level, 혹은 관리자 입장에서는 "예전에 촬영한 거 쓰면 되잖아?"라고 생각하지만, 직접 소재를 제작해야 하는 마케터와 디자이너는 언제나 새로운 이미지를 원합니다.


왼쪽은 원본 이미지, 오른쪽은 Ai로 생성한 이미지입니다. 꽤 그럴싸하지 않나요?


 이러한 상황에서 위와 같이 AI를 통해 모델과 배경만 바꾸는 형태로 이미지를 생성할 수 있다면 어떨까요? AI를 사용하다 보니 비록 어색한 부분이 있을 수 있지만, 광고 이미지를 제작하거나 상세페이지를 구성하는 데 많은 도움이 될 것은 분명해 보입니다.


 오늘은 생성형 AI인 스테이블 디퓨전(Stable Diffusion)으로 제품의 모델과 배경을 바꾸는 방법에 대해 알아보겠습니다. 포토샵과 스테이블 디퓨전에 익숙하지 않은 분들을 위해 자세하게 과정을 서술하지만, 스테이블 디퓨전 설치 방법은 깊게 다루지 않겠습니다.


마스크, 누끼 이미지 생성하기

오픈포즈(Openpose)로 모델 포즈 결정하기

캐니(Canny)로 제품 이미지 고정하기

스테이블 디퓨전으로 모델 및 배경 생성하기




1. 소스 이미지 만들기

 스테이블 디퓨전을 활용해 이미지를 수정하려면 원본 제품의 이미지 소스가 필요합니다. 먼저 여성 의류 쇼핑몰에서 모델컷을 변경하는 방법에 대해 알려드리기 위해, 구글에서 '여자 블라우스' 키워드를 검색한 뒤, 이미지를 다운로드하였습니다.


오늘의 실습 이미지(광고 아님)


 특정 이미지(제품)의 모델과 배경을 바꾸기 위해선 아래의 이미지 소스가 모두 필요합니다. 어도비 결제를 진행하지 않은 사용자도 많을 테니 무료 웹 포토샵인 포토피아에서 이미지 소스 3종을 생성하겠습니다. 또한, 포토샵에 익숙하지 않은 분들을 위해 진행 방법을 자세히 서술합니다.


(1) 포토피아 접속하기

 이미지 누끼를 따는 방법은 많지만, 마스크 이미지도 함께 생성해야 하므로 처음부터 포토샵을 활용하여 작업하는 게 편합니다. 무료 온라인 포토샵인 포토피아에 접속하고, 원본 이미지를 넣어주세요.


(2) 제품 영역 지정하기

 먼저, 포토피아에서 누끼 이미지를 생성하겠습니다. 좌측 메뉴의 위에서 네 번째 '마법봉'을 클릭하고 이미지에 포함해야 할 제품을 선택해 주세요. 제품을 클릭한 상태로 좌/우 드래그를 하면 선택 영역이 변경됩니다. 꼭 한 번에 완료해야 하는 건 아니므로, 이상한 영역까지 선택된다면 클릭을 떼고 부족한 부분을 채워주는 식으로 수정해 주세요.


포토피아 단축키

화면 확대 : [Ctrl] + [+]

화면 축소 : [Ctrl] + [-]

화면 이동 : [Space]


마법봉을 클릭한 뒤, 좌/우로 드래그하며 제품을 선택합니다.


(3) 이미지 누끼 레이어 생성하기

 마법봉으로 제품을 모두 선택했다면, 선택한 영역을 우클릭한 뒤 '복사한 내용을 레이어로' 메뉴를 선택해 주세요. 우측 레이어 영역에 [원본 이미지(Background)]와 [누끼 이미지(레이어 1)]가 있을 텐데, 누끼 이미지 레이어를 우클릭하고 레이어를 하나 더 복사해 주세요.


여기까지 진행했다면 레이어가 총 3개입니다.

누끼 이미지(복사)

누끼 이미지

원본 이미지


선택한 영역을 우클릭하여 '복사한 내용을 레이어로'를 선택한 뒤, 레이어(누끼)를 하나 더 복사합니다.


(4) 마스크 이미지 생성하기

 복사한 누끼 레이어(레이어 1 Copy)에서 다시 마법봉을 누르고, 배경을 클릭합니다. 선택된 배경을 우클릭하고 '반전' 메뉴를 클릭하면 제품 영역만 선택되는데, 이 상태로 [Alt] + [Delete] 단축키를 눌러주세요. 그러면 제품 영역이 검은색으로 칠해진 마스크 이미지가 생성됩니다(좌측 맨 밑의 색상 메뉴를 클릭하고, 검은색으로 변경해야 합니다).


 '원본', '누끼', '마스크' 3가지 이미지를 모두 제작했다면 좌측 상단 '파일' 메뉴를 클릭하고 '내보내기 형식 - PNG'를 눌러 이미지를 다운로드하세요. 이미지 소스 준비가 끝났습니다.


최종적으로 아래의 이미지 3개가 준비되었습니다.

이미지 원본(좌) / 누끼 이미지(중) / 마스크(우)




2. 컨트롤넷(ControlNet) 세팅하기

 이제 스테이블 디퓨전에서 이미지 소스를 인식할 수 있도록 다양한 컨트롤넷을 사용할 예정입니다. 하지만 컨트롤넷 이전에 스테이블 디퓨전부터 설치해야겠죠? 만약 스테이블 디퓨전이 설치되어 있지 않다면 설치해 줍니다.


 스테이블 디퓨전을 사용하기 위해선 (1)스테이블 디퓨전 (2)파이썬 (3)깃(Git)을 모두 설치해야 합니다. 저는 예전에 Visual Studio가 꼭 필요하다고 해서 다운 받았는데, 아직 어디에 사용하는지는 확인하지 못했습니다.


스테이블 디퓨전 설치 방법은 외부 블로그 포스트에 잘 정리된 내역이 있어서, 해당 링크로 대체합니다.

https://m.post.naver.com/viewer/postView.naver?volumeNo=37110908&memberNo=25379965


 스테이블 디퓨전 설치가 끝났다면, 컨트롤넷을 추가로 설치해야 합니다. 컨트롤넷은 부가서비스 같은 개념으로, 스테이블 디퓨전에 추가로 설치하여 각각의 기능을 추가로 사용할 수 있도록 도와줍니다. 우리에게 필요한 건 모델의 포즈를 잡아주는 openpose마스크의 형태와 범위를 잡아주는 canny 모델입니다.


아래 외부 링크를 참고하여, 두 개의 컨트롤넷 모델을 다운로드하세요.

https://flatsun.tistory.com/3560


(1) img2img - Inpaint upload

 본격적으로 이미지를 만들기 전에, 꼭 기억해야 할 내용이 있습니다. 생성형 AI는 '내가 원하는 이미지를 만들도록 완벽하게 세팅하는 것' 보다, '내 마음에 들 때까지 계속 돌린다'는 마음가짐이 필요합니다. 내 머릿속에 있는 걸 하찮은 데이터 쪼가리가 어떻게 꿰뚫고 있겠어요.


 AI 이미지 제작은 무수한 리트(Retry)를 통해 내가 원하는 이미지를 찾아가는 과정이므로, 처음부터 완벽하게 세팅하겠다는 마음가짐은 고이 접어두는 편이 좋습니다. 따라서, 일단 정상적으로 이미지가 생성하는지 확인한 뒤에 퀄리티를 높이는 방향으로 진행하는 편이 정신건강에 좋습니다.


 우리는 이미지를 바탕으로, 다른 이미지를 생성하는 과정이므로 상단의 img2img 탭을 클릭해 주세요. 이후, Generation 영역에서 Inpaint upload를 선택한 후 위에는 아까 만들었던 원본 이미지, 아래에는 검은색으로 칠한 마스크 이미지를 넣어줍니다.



하단의 항목들은 아래와 같이 설정해 주세요.

Resize mode : Resize and fill을 선택해 주세요.

Mask blur : 우리가 씌운 마스크(블라우스)의 가장자리르 부드럽게 해 줍니다. 20 이상으로 높여주세요.

mask mode : 우리는 마스크 밖의 부분을 색칠해야 합니다. inpaint not mask를 선택합니다.

mask content : 기본적으로 fill을 추천합니다. 만약 채도가 너무 낮게 생성된다면, latent noise로 진행해 주세요.

sampling steps : 30 이상으로 높여줍니다. 컴퓨터의 성능을 가장 많이 타는 항목이므로, 컴퓨터 성능이 비교적 괜찮다면 숫자를 높여도 괜찮습니다(이미지 퀄리티가 올라갑니다).

CFG Scale : 너무 높이면 이미지가 이상하게 출력됩니다. 7로 설정해 주세요.

Denoising strength : 이미지의 창의성(?) 같은 영역입니다. 숫자가 높을수록 AI가 이미지를 창조하는 비중이 높아집니다. 0.8로 설정해 주세요.


(2) Openpose

 스크롤을 조금 내리다 보면 ControlNet v1.1.xxxx 라는 토글이 나타나는데, 이 항목에서 아까 설치했던 Openpose와 Canny를 활용합니다. 컨트롤넷을 펼친 뒤, 아래의 순서로 진행해 주세요.


Control Type : OpenPose 체크

Upload independent control image 체크

Allow Preview 체크

왼쪽 [Image]에 원본 사진 업로드

Preprocessor : openpose_full

preprocessor : 드롭박스 우측의 폭발 이모지 클릭



 폭발(프리뷰) 이모지를 잘 눌렀다면, 원본 이미지를 자동으로 인식하여 오른쪽처럼 모델의 포즈가 나타납니다. 오른쪽 포즈 모양은 Preview 영역으로, 만약 다른 포즈 모양이 나타난다면 우측의 작은 Edit 버튼을 눌러서 포즈를 수정해 주세요. 프리뷰 이미지의 각 점과 선을 드래그하여 포즈를 수정할 수 있습니다.


(3) Canny

 스테이블 디퓨전은 한 번에 최대 3개의 컨트롤넷 사용을 지원합니다. 컨트롤넷 토글박스 바로 밑에 있는 ControlNet Unit 1을 클릭해 주세요. 컨트롤넷 유닛 0은 오픈포즈를, 컨트롤넷 유닛 1은 캐니를 사용합니다.


 위 오픈포즈 컨트롤넷과 동일하게, 아래의 순서로 진행해 주세요.

Control Type : Canny 체크

Upload independent control image 체크

Allow Preview 체크

왼쪽 [Image]에 누끼 이미지 업로드

Preprocessor : canny

preprocessor 드롭박스 우측의 폭발 이모지 클릭



 오른쪽 이미지처럼 스케치 이미지가 출력된다면 성공입니다! 이제 모든 준비가 끝났습니다. 두근두근한 가슴을 안고 페이지의 맨 위에 있는 주황색 Generate 버튼을 클릭하면 이미지가 생성됩니다.


 지금까지의 설정이 올바른지 확인하기 위해, 프롬프트에 대충 beautiful korean girl을 입력하고, 이미지를 생성해 봅니다.



 우리의 제품(블라우스)을 입고 있긴 한데, 이미지 퀄리티가 굉장히 아쉬운 수준이네요. 이대로는 실무에서 사용하기 어려워 보입니다. 그러나 (1)스테이블 디퓨전이 제품을 인식했고 (2)모델의 포즈가 알맞게 걸쳐져 있으며 (3)제품의 모습이 고스란히 옮겨진 모습을 확인할 수 있습니다.


 이제 남은 건 실전에서 활용할 수 있을 만큼 이미지 퀄리티를 높이는 일이겠네요.




3. 이미지 품질 높이기

 이제 막 스테이블 디퓨전을 다운로드한 우리가 능수능란하게 실사와 같은 수준의 고퀄리티 이미지를 생산하기는 너무나 요원한 일입니다. 그러나 다행스럽게도 세상에는 금손이 너무나 많죠. 우리는 금손님들께서 잘 차려주신 밥상에서 좋아하는 반찬만 쏙쏙 골라먹으며 시간을 절약할 수 있습니다.


 스테이블 디퓨전에서 이미지를 생성하기 위해서는 Cheakpoint와 Lora라는 개념을 알아야 하는데요. 간략히 말하자면 


(1) Civitai에서 이미지 찾기

  Civitai는 세계 최대 규모의 스테이블 디퓨전 커뮤니티입니다. 여기서 우리가 생각하는 이미지(output)와 가장 유사한 퀄리티의 이미지를 찾아서 해당 이미지에서 사용한 프롬프트를 그대로 복사하여, 고품질의 이미지를 빠르게 생성할 계획입니다.


 Civitai에서 블라우스를 입힐 모델 이미지를 찾던 중, 아래와 같은 이미지를 발견했습니다. 명암과 전체적인 실사풍 퀄리티가 나쁘지 않네요. 친절하게도 이미지를 생성한 모델과 프롬프트, 세팅값을 고스란히 남겨주셨습니다. 창작자분께 감사한 마음을 가슴에 품고 이 이미지를 입혀보겠습니다.


(2) Cheakpoint, Lora

 스테이블 디퓨전의 체크포인트와 로라는 해당 이미지의 뼈대와 전체적인 톤 앤 매너, 얼굴형 등을 결정짓는 중요한 요소입니다. 미드저니는 프롬프트만으로 거의 대부분의 이미지를 생성할 수 있지만, 스테이블 디퓨전은 체크포인트와 로라를 무엇을 쓰는지에 따라 결과물이 천차만별로 달라지기 때문에 정말 중요한 요소예요. 위의 참고 이미지에서 사용한 체크포인트와 로라를 다운 받아 줍니다. 


체크포인트 : Beautiful Realistic Asians

https://civitai.com/models/25494?modelVersionId=177164


로라 : HeArt_FilmStyle

https://civitai.com/models/331752/heartfilmstyle?modelVersionId=371683


*체크포인트와 로라의 종류는 정말 셀 수 없을 만큼 많으니, 본인의 취향에 따라 다운로드 받아주세요.


체크포인트와 로라를 다운로드 받았다면, 아래 경로에 넣어주세요.

Cheakpoint 경로 :... stable diffusion > stable-diffusion-webui > models > Stable-diffusion

Lora 경로 :... stable diffusion > stable-diffusion-webui > models > Lora

체크포인트와 로라 모두 [models] 폴더에 있습니다.


(3) Prompt 복사하기

 참고 이미지에서 사용한 체크포인트와 로라 밑에 Generation Data 영역이 있었죠? 거기서 긍정 프롬프트와 부정 프롬프트를 그대로 복사하여, 위에서 openpose와 canny를 설정해 둔 우리의 스테이블 디퓨전에 붙여 넣기 해줍니다.


 프롬프트 외에도 Sampler, CFG scale, Clip skip 등의 정보를 제공하는데요. 시드(Seed) 번호 빼고는 모두 동일한 컨디션으로 맞춰줍니다. 시드 번호는 해당 이미지의 고유한 번호이므로, 복사할 필요가 없습니다.



 성공적으로 이미지가 생성되었네요. 아까 생성했을 때와 달리, 꽤 괜찮은 퀄리티의 아웃풋이 출력됩니다. 다만, AI의 고질적인 문제인 '손' 표현은 아직 어려워 보이네요. 손은 따로 크롭 하거나, 별도의 Inpaint 과정을 거쳐서 수정한 뒤에 활용할 수 있습니다.



마치며

 예시에서 사용한 이미지는 미들샷으로 촬영한 이미지여서, 몸과 배경만 바꾸는 수준이었는데요. 만약 얼굴까지 나온 이미지를 활용한다면 AI로 생성한 이미지 아웃풋 퀄리티가 더 높을 겁니다(물론 Inpaint 기능을 활용해 딥페이크는 입혀야겠지만요).


 이미지 원본 소스는 유지한 채, 다른 배경만 입히는 기능은 스테이블 디퓨전이 거의 독보적이어서 꼭 한번 활용해 보셨으면 좋겠습니다. 단순히 옷만 입히는 게 아니라 제품컷, 연출컷, 패밀리컷 등 다양한 이미지에서 활용할 수 있기 때문이죠.


 기회가 된다면 의류 쇼핑몰이 아닌, 뷰티 제품의 연출컷을 변경하는 과정에 대해서도 다뤄보겠습니다.

매거진의 이전글 (2) GPT로 업무 자동화 하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari