Stable Cascade을 위한 아니메 스타일 학습용 데이터셋을 찾아보다가, 용량이 1/5로 줄어든 danbooru2023 데이터셋 (https://huggingface.co/datasets/KBlueLeaf/danbooru2023-webp-2Mpixel)이 있다고 하길레 다운받아봄.


1/5로 작아지긴 하지만 7백만장의 사진이 들어있는 데이터셋답게 1.4 TB라는 용량을 자랑하니 다운로드 하는 경우 저장공간과 네트워크 부하를 대비하는 것이 좋음. 또한 해당 데이터셋은 0번부터 1177번까지만 들어 있어서 1178번 부터 1999번 까지는 원본 danbooru2023 데이터셋(https://huggingface.co/datasets/nyanko7/danbooru2023/tree/main/recent)에서 다운받아야함. 다행인건 1000번부터 1999번은 추가 데이터라서 용량이 크지 않음.


그런데 이런것을 2000개 다운로드 해야하는데, 여러가지 방법이 있지만 나는 파이썬 huggingface_hub 라이브러리를 사용하여 다운로드 받았음. 해당 데이터셋의 설명에서는 Webdataset로 로드하면 된다고 하지만 이건 대규모 파인튜닝 데이터셋 규격이라서 사용 용도에 맞지 않는 경우 알아서 알맞은 가공이 필요함.


https://huggingface.co/datasets/KBlueLeaf/danbooru2023-sqlite

그리고 해당 데이터셋에는 캡션 파일이 없고 메타데이터가 담긴 데이터베이스 데이터셋이 따로 제공됨. 데이터베이스 데이터셋에서 제공되는 https://huggingface.co/datasets/KBlueLeaf/danbooru2023-sqlite/blob/main/db.py 같은거 참고해서 데이터베이스에서 알아서 꺼내 쓰라는 이야기임.


그래서 대충 날림으로 danbooru2023 로컬 데이터셋 시스템 구축을 성공함. 7백만장을 그대로 넣어 파인튜닝하는 목적은 아니고 조잡하긴 하지만 특정 조건을 지정해두면 거기에 맞는 데이터를 찾아주고 지정된 조건에 맞춰 캡션을 작성하고 데이터셋으로 만들어주는 정도임. 그렇게 2500장 유루캠 데이터셋 하고 5000장 뱅드림 데이터셋을 만들어서 다중 캐릭터 LoRA 학습을 시도해봄.


퀄리티 관련 메타데이터를 활용하지 않아 저품질 이미지를 거르지 않았으니 품질은 개판이고 캡션은 ichigaya arisa, bang dream!, sensitive 처럼 아주 간단하게 되어 있음. 텍스트 인코더 학습을 하는 대신 fp8_base 세팅을 사용함. 학습은 포니에서 했고 생성은 포니 기반 모델에서 진행.


대형 데이터셋으로 학습된 유루캠 LoRA를 사용하는 경우 카가미하라 나데시코


LoRA가 없는 경우 같은 세팅


대형 데이터셋으로 학습된 유루캠 LoRA를 사용하는 경우 시마 린



LoRA가 없는 경우 같은 세팅


대형 데이터셋으로 학습된 뱅드림 LoRA를 사용하는 경우 아오바 모카


LoRA가 없는 경우 같은 세팅


대형 데이터셋으로 학습된 뱅드림 LoRA를 사용하는 경우 하자와 츠구미


LoRA가 없는 경우 같은 세팅


데이터셋의 품질을 생각하면 의외의 결과였음. 1개의 LoRA에 여러명이 잘 들어가서 작동하고 품질도 그럭저럭 나쁘지 않음. 물론 데이터셋에서 차지하는 비중이 적은 캐릭터는 안되지만 그래도 데이터셋 품질에 신경쓰면 꽤 괜찮은 품질이 나올것으로 생각해봄.