Pony 모델과 Score 태그의 비화

# Pony Diffusion XL(포니)
이름그대로 마이리틀포니를 비롯한 이른바 퍼리(수인)를 중심으로

SDXL에서 2D쪽으로 훈련된 checkpoint 모델이다.

일반적 2D계열에서 좀 벗어나는 주제기에(말박이..) 그냥 또다른 변태모델의 출현인줄 알았으나

포니 오타쿠의 집념이 실체화되어 만들어진 마스터피스급 모델이었던 것이 밝혀지고

이후 Civitai에 Pony전용 태그와 아이콘이 만들어지는등

Pony,civitai
civitai에서 말모양 마크가 붙은건 포니전용이다

 

animagazineXL과 함께 SDXL의 보급에 큰 공헌을 하게 되었다

 

가장 큰 특징은 포즈와 2인이상의 상호작용, 체위, 성기의 구현등

기존 모델에선 로라를 써도 구현이 거의 안되던 것들을 제어할 수 있게 되었다는 것,

특히나 nsfw(야한거)는 압도적인 제어력을 지녔다

어느정도냐면 단순체크포인트를 넘어 모델자체가 버전업된 것에 맞먹는 효과를 낸 수준.

(체크포인트와 모델의 차이점 설명은 링크를 참조)

 

아래는 Pony와 SDXL의 체크포인트인 animagazine을 비교했다

왼쪽이 포니, 오른쪽이 애니메거진이다

프롬프트는 대충 '남녀가 어깨동무', '남녀가 악수', '남녀가 안기'

이렇게 진행했다. 

남녀가 어깨동무
남녀가 악수
남녀가 안기

 

남자개체 표현율이 월등히 올라갔다. 알다시피 기존 SD모델은 남성의 표현을 직접적으로 하지 않는다

AI가 페미라 그런건 아니고 학습자료가 여성쪽이 월등히 많아서 그렇다. 

마찬가지 이유로 둘이서 상호작용을 하는 표현도 매우 미흡하다. 

그런데 포니는 둘다 굉장히 쉽게 프롬프트만으로 상세히 구현이 가능해졌다

NSFW쪽은 가능과 불가능의 차이까지 벌어진다.

 

포니가 다른 일반적 체크포인트 모델과 이렇게 큰 차이를 낼 수 있었던건
AI에 학습시킬 목적으로 개인선호도를 추가해서 순위를 매긴 260만개의
다양한 학습이미지와 그 절반에 달하는 130만개의 이미지 각각에
고품질의 상세한 주석(캡션)을 달아서 훈련했기 때문이다

 

말이야 쉽지만 보통 개인이 할 수 있는 분량과 노력이 아니다

civitai를 비롯해 많은 사이트에서 수많은 CheckPoint모델들이 매일 등장하고 있지만

대부분이 기존의 모델을 단순히 수치조절해서 합친 것들이고

직접 모델자체를 훈련시키는 경우조차 그렇게 많지 않은데

이정도의 대량의 양질의 데이터를 분류하고 이에 주석까지 수정한 경우는 포니가 유일하다

그러므로 다른 모델과 차원이 틀린 것이다.

 

한편 그런만큼 생긴 단점이 있는데

같은 모델의 체크포인트인데 SDXL의 로라와 호환이 안된다.

SD1.5와의 호환처럼 오류가 생기는 수준은 아니지만 잘 안먹힌다.

그래서 위의 포니마크처럼 아예 다른 카테고리가 생긴것이다.

 

# 스코어태그

포니는 또하나의 차별점이 있는데

스코어태그 라는 지금까지 보지 못한 프롬프트가 생겼다

 

score_9, score_8_up, score_7_up, score_6_up, score_5_up, score_4_up

이런식의 태그인데 대충봐도 점수를 매긴 태그라는 것을 알 수 있다

대체 이게 뭘까? 여기엔 포니 제작자의 열정(광기)가 숨어있다


t2i의 프롬프트는 훈련의 산물이다.
무수한 데이터와 텍스트설명의 쌍을 준비한후 끝없는 대조훈련을 통해 학습시킨다
우리로 예를들면 외국어 단어 외우는거랑 비슷하다고 할 수 있다
그리고 [apple-사과] 단어집으로 뼈빠지게 외우듯이 [사과그림-사과] 라는

그림집으로 뼈빠지게 훈련하는 것이다.

하지만 단순 단어집과 달리 그림과 텍스트의 연결은 여러가지 복잡한 문제가 있다
그중 하나가 품질이다.
집이라는 단어에 매칭될 그림은 그야말로 무한대에 가깝게 있는데
그중에서 12x12에서 학습한 거지같은 그림을 가져올 것인가 1024x1024에서 학습한 집을
가져올 것인가부터 큰 그림이지만 화질이 개판이라거나 집이긴한데 이상한 집이라던가..
이에 대해서 어떻게 판단할 것인가이다.
인물태그중엔 best quality 부터 4k, 마스터피스등 여러 품질관련 태그가 있지만
사실 그것도 절대적인 것은 아니다.
그렇다고 AI에게 판별시키기엔 좋은 품질이 무엇인지 아닌지를 AI는 그런 기준자체를 모른다
자판기보고 좋은 시란 어떤것인가 물어봐도 콜라만 뱉을뿐이다

그래서 PONY 제작자는 큰일을 하게 된다. 
본인이 그림을 보고 품질에 따라 점수를 매기는 태그를 첨가한 것이다.

이걸 태깅이라고 하는데 보통 사람이 하지 않는다. 봇이 하지..  
포니제작자는 약 2만개의 이미지를 직접 판단해서 점수를 붙였다

score_9, a cute pony
score_8, maybe not so cute pony

그 사람이 보기에 더 귀여운 포니는 9점, 좀 덜귀여우면 8점..

 

이런 맛탱이 간 집념끝에

포니모델은 타모델과 다른, ai생성을 위한 목적으로 사람의 선호도를 추가한,
확연한 유니크함을 지닌 강력한 모델이 되었다.

하지만 이과정에서 옥의 티가 발생하였는데
스코어 태그의 길이 문제다

포니 V5 버전까지는 score_8을 쓰면 8에서 9점사이의 그림만 제공한다
6점 이상 그림들을 원한다면 score_6,score_7,score_8,score_9,score_10
일일이 각 점수대를 다 넣어줘야한다.

그렇기에 포니제작자는 태그를 간편화할려고 score_x_up 이라는 것을 만들었다
즉 score_6_up 이라면 위의 6,7,8,9,10을 다 포함하게 한다는 발상이다
그래서 score_8이 붙은 그림의 태그를
score_8, score_7_up, score_6_up, score_5_up, score_4_up
요렇게 수정했다.
이제 score_6_up을 붙이면 score_8도 검색해주겠지? ^^


라는 발상이었는데 왠걸.. 결과는 골때리게도 Ai에게 잘못된 신호를 준게 되었다
'좋은 그림은 스코어태그가 여러개 붙는구나 헤헤 score_6_up 하나만 붙은건
개구린 그림을 줘야징 ^^' 라고 판단하게 된 것이다;;

포니 제작자는 뒤늦게 AI가 잘못된 버릇이 들었다는 것을 알게되었지만

이미 개빡센 훈련이 상당히 진행되었기에 다시 할순없고..
결국 포니모델은 좋은 그림을 뽑기위해선 반강제로
(score_10,score_9_up,score_8_up) 이렇게 여러개의 스코어태그를 넣어줘야하게 되었다