어두운 배경이 싫으시다면 페이지 우측 하단에 보이는 초승달 모양의 아이콘을 클릭하면 화이트모드로 변경됩니다. 초승달 모양 버튼 : `화이트/다크 모드` 전환 |
1. Checkpoint Merger (체크포인트 병합) 이란?
체크포인트 병합은 2 ~ 3개의 모델을 하나의 모델로 병합하는 것을 말합니다. WebUI에서는 이런 체크포인트 모델의 병합 기능을 제공하고 있으며, 손쉽게 두 모델을 병합할 수 있습니다.
병합한 모델을 다시 다른 모델과 병합할 수 있어서 한 모델의 파생형을 여러 개 만들 수 있습니다. 제가 자주 이용하고 있는 'Civitai'에 올라오는 대부분의 모델들도 이런 병합된 모델(Mix)입니다.
Civitai에 올라온 모델을 보면 우측 'Details'의 'Type'에 각각 'Checkpoint Trained' 또는 'Checkpoint Merge'가 표시됩니다. 'Trained'는 직접 이미지를 가지고 AI가 학습하여 생성된 모델을 의미하며, 'Merge'는 말그대로 여러 개의 모델들을 병합한 모델입니다.
🔸체크포인트 모델 병합 시 주의할 점.
체크포인트 모델들을 받아서 병합할 때에는 배포에 관한 라이센스를 확인하고 병합 및 배포를 해야합니다. 해당 모델에 대한 라이센스를 확인하는 방법은 'Civitai' 사이트 기준으로 모델의 우측 하단에 제작자 배너 아래에 보면 아이콘이 있습니다. 이를 클릭하면 확인할 수 있습니다.
하지만 최근 너무 많은 모델이 나오고, 수많은 모델들이 서로 병합하면서 이 모델 병합에 관한 라이센스 효력이 느슨해지기도 했고, 정작 이런 부분을 관리해야할 Civitai 측은 사이트에 광고배너 집어넣느라 관심도 없어서 심지어는 모델 프로토타입을 올려놓고 본인만의 사이트링크를 걸어서 거기에서 돈받고 파는 애들이 있습니다. 괜히 돈낭비 하지 않으시길 바랍니다.
물론 개인이 혼자서 사용해보는 용도라면 얼마든지 병합하는 것은 상관없습니다. 그리고 저런 라이센스 표시가 안 된 것들도 있는데 위에서 말했듯이 이런 라이센스 개념이 점점 묽어져가다보니 대충 병합하고 올리는 사람들도 생겨나고 있습니다.
2. Checkpoint Merger 사용법
🟦 모델 준비
일단 병합할 모델을 준비해야하는데 본인이 가지고 있는 모델을 사용해도 되고, 아니면 아래 제가 따로 병합 가능 모델들을 다운로드 받아서 병합해주셔도 상관없습니다. (Civitai 모델) 다운로드한 모델들은 WebUI가 설치된 폴더의 'models' - 'Stable-Diffusion' 폴더에 넣어주시면 됩니다.
아직 Civitai를 가입하지 않으신 분들은 아래 제가 작성한 포스팅글을 참고하여 Civitai에 가입을 해주시고 별도의 설정을 거쳐서 로그인을 해야 다운로드 받을 수 있습니다.
🔸아래 포스팅에서 2번 항목을 참고하여 Civitai 가입하기
🔹fantasticmix : 실사모델
🔹RealCartoon-Anime : 애니메이션 2D 모델
🟦 병합하기
자 이제 모델을 준비하였다면 WebUI를 실행하여 상단의 메뉴에서 'Checkpoint Merger'를 선택합니다. 그러면 아래와 같이 체크포인트 병합화면이 나타납니다.
🟦 항목별 설명
🔹Primary (A) / Secondary (B) / Teriary (C) model
병합할 모델을 선택하는 곳으로 A에 메인이 되는 모델을 넣고, 병합할 모델 (B)를 넣어주면 됩니다. C의 경우 아래 'Add difference'를 선택했을 때에만 추가하면 되는데, 자세한건 아래에서 설명하겠습니다.
🔹Custom Name (Optional)
병합한 체크포인트 모델의 이름을 적어주면 됩니다. 'Optional', 즉 선택사항인데, 비워두고 병합하면 그냥 이름없는 모델로 병합됩니다.
🔹Multiplier (M)
모델을 병합할 때 어느정도 혼합할지 값을 설정합니다. 0 ~ 1사이의 값을 설정하며, 0에 가까울수록 A모델에, 1에 가까울수록 B모델에 영향을 받는 모델로 병합됩니다. 즉, 혼합정도를 나타냅니다.
🔹Interpolation Method
병합 방식을 선택하는데 'No interpolation'은 모델 병합이 아닌, 아래 'VAE'를 A모델에 적용하기 위한 방식으로 잘 사용하지 않으므로 무시해도 됩니다.
'Weighted sum'은 두 모델을 병합할 때 선택하면 됩니다. 맨 위에 보면 `A * (1 - M) * B * M` 이런 공식이 보이실텐데, 이러한 공식으로 병합하겠다는 의미입니다. 즉, Multiplier 값에 따라서 A와 B 모델의 혼합정도로 병합하는 방식입니다.
'Add Difference'의 경우 C 모델까지 추가해서 병합하는 방식인데, 공식은 `A + (B - C) * M` 입니다. 즉, B와 C 모델의 공통된 부분을 제거하고 나온 순수한 데이터만을 Multiplier 값만큼 A 모델에 혼합하겠다는 의미입니다.
위 방식들에 대해서 예시 이미지를 아래에서 설명하도록 하겠습니다.
🔹Checkpoint format / Save as float16
확장자는 보안 성능이 검증된 'safetensors'를 대부분 사용하므로 해당 확장자를 선택해서 병합하면 됩니다. 'Save as float16'의 경우 보통 실수타입은 4바이트(=32비트)인데, 16비트로 크기를 줄여서 저장하면 용량을 줄일 수 있습니다. 다만 그만큼 퀄리티는 감소할 수 있습니다.
용량 자체는 어차피 크기 때문에 굳이 선택해서 줄일 필요는 없지만, 뭐 선택사항이니 알아서 사용하시면 되겠습니다.
🔹Copy config from
정확하게는 모르겠지만 모델들에 들어있는 환경정보 등을 복사해서 병합한 모델에 넣을지 선택하는 것 같습니다. 넣기 싫다면 'Don't'를 선택하면 됩니다.
🔹Bake in VAE
VAE를 같이 병합할지 선택하는 것인데, 보통 병합된 모델은 대부분 이미 VAE가 들어가있지만 뭐, 넣는 것은 선택이니 알아서 선택해주시면 됩니다.
병합할 준비가 되었다면 아래 'Merge' 버튼을 눌러 병합을 해주시면 됩니다. 병합이 완료되면 우측에 텍스트가 나타납니다. 병합은 오래 안 걸립니다.
3. 병합한 모델 사용 예시
먼저 모델 두 개의 원본 이미지를 보여드리겠습니다.
이 두 모델을 병합하여 Multiplier 값을 각각 0.25, 0.5, 0.75로 생성한 모델로 이미지를 생성한 결과물은 아래와 같습니다. 각각 값에 따라 점차 실제와 같은 이미지에서 애니메이션 스타일로 변화되는 것을 볼 수 있습니다.
🟦 Add Difference 방식으로 병합한 모델의 이미지 예시
위에서 말한 'Interpolation Method' 중 'Add Difference' 방식으로 병합한 모델에 대한 예시 이미지도 같이 보여드리겠습니다. 이 방식으로 병합할 때 사용한 모델은 위의 두 모델은 동일하며, C 모델로 'RealCartoon-3D' 모델을 사용하였습니다. 즉, 'RealCartoon-Anime'와 'RealCartoon-3D' 두 모델의 공통된 부분을 제외한 특징적인 부분만을 A 모델에 병합합니다.
이때 Multiplier 값은 50퍼센트로 적용하였고, 동일한 프롬프트 및 Seed로 생성하였습니다.
빛의 효과부분이나 옷 매무새, 얼굴의 세부적인 특징 변화, 옷의 주름 디테일 등이 약간씩 변한 것을 볼 수 있습니다. 즉, 'Add Difference' 방식으로 병합하는 경우 A모델에 B와 C의 특징적인 부분만을 추가하여 세부적인 디테일의 변화를 줄 때 사용하면 좋습니다.
이 방식은 주로 하나의 모델의 파생 모델들을 만든 뒤 다시 그 파생모델의 중복되는 부분만을 제거해서 2개의 순수한 모델 특징을 다시 A에 넣어보는 방식으로 사용합니다.
구독 및 좋아요는 컨텐츠를 생산하는데 많은 도움이 됩니다. 😊
감사합니다.