오래간만에 글씁니다
몇주간 SDXL로 삽질하냐고 고생 좀 하고 있습니다..
그냥 출력 하면 될거 같지만 SDXL은 추가 옵션이 생겨서 이걸 clipdrop 과 비슷하게 맞추는 작업이 쉽지가 않더군요
이미 해보신분들은 아시겠지만 XL은 두 개의 모델이 제공됩니다.
기본이 되는 Base 모델 하나와 더 향상 된 출력물을 도출시키기 위한 Refiner 모델이 제공되고 있습니다.
Refiner모델은 img2img 기반으로 디테일을 더하는데 사용되고, text2img에는 적합하지 않다고 언급되고 있습니다.
그래서 Base에서 Refiner 를 거치도록 모델은 항시 두 개를 같이 사용하도록 구성해야 됩니다.
향후에는 이 작업을 단일 모델에서 동작될 수 있도록 하는것을 과제로 두고 있습니다.
Comfy에서 작업하는 방법은 많이 떠돌아 다니고 있지만 정작 해당 파라미터에 어떤 값을 넣어야 되는지는 설명한곳이 거의 없습니다.
그래서 논문보고 적절한 값을 찾아서 테스트 해보고 있는데 원하는 결과가 쉽게 돌출되진 않더군요
그리고 XL v1.0이 공개되면 지금까지 테스트 했던 값들이 쓸모가 없어질거 같아 제가 실제 적용 했던 값들은 v1.0공개 이후에 다루도록 할 예정입니다.
일단 중요한 부분만 짚어보면
Comfy에는 XL 전용 텍스트 인코더가 두 개 있습니다.
먼저 첫 번째 텍스트인코더에는 해상도에 관한 옵션이 있는데 이는 출력물에 매우 큰 영향을 끼칩니다.
자세한건 논문 보시길 바라며,
위 보다 더 중요한건
CLIP_G(OpenCLIP ViT-bigG)와 CLIP_L(CLIP ViT-L) 입니다.
간단히 설명하자면
CLIP_G 에는 평소 쓰던 프롬프트를
CLIP_L 에는 보조 수단으로 쓰일 프롬프트를 적어주면 됩니다. 예를 들면 아래와 같이 스타일 같은걸 말합니다.
Clipdrop 에는 아마 각 스타일에 따른 적절한 여러 프롬프트들이 적용되어 있을걸로 판단하고 있습니다
예를 들어 Photographic 선택했다면 Photographic 뿐만 아니라 이에 관련한 추가적인 여러 프롬프트들이 positive와 negative에 별도로 적용 됬을거라고 제 개인적으로 추정하고 있습니다.
다음으로 Refiner 에는 ascore(Aesthetic Score)라는 미적점수를 넘겨주는 항목이 있습니다...
이 값에 따라 이미지 품질에 영향을 주는 상태를 조절하는데 쓰이는걸로 알고 있는데 이 값을 아무리 변경해도 이미지에 크게 영향이 안가더군요 아직 정확한 사용처를 확인 못했습니다.
프롬프트 사용량을 줄이기 위해 여러 장치들이 추가된거 같은데 논문을 워낙 대충봐서 설명을 잘 못하겠네요
암튼 저는 위 값들을 적절히 조절해서 출력물을 Clipdrop 와 비교하면서 근접한 값을 찾는데 집중했습니다.
아래서부터는 미드저니에 비해 SD v1.5에서는 좋은 퀄리티를 얻기 힘들었던 프롬프트를 이용해 출력해봤습니다. 출처는 https://prompthero.com 입니다.
원본은 저작권 문제가 생길것 같아 링크로 대신합니다.
https://prompthero.com/prompt/831794559ef
먼저 clipdrop의 결과물입니다.
다음은 comfy입니다.
다음은 https://prompthero.com/prompt/df4330e66b4
clipdrop
comfy
솔직히... 미드저니가 낫습니다.
Clipdrop의 결과도 나쁘진 않습니다만 그래도 역시나 명불허전 미드저니네요
반면에 제가 찾은 설정값들은 많이 별롭니다. 미드저니는 고사하고 Clipdrop 만큼도 못하더군요
앞으로 더 나아지겠지만 XL v1.0 이 나오면 사용자가 많아지니 이런 격차는 빠르게 줄어들걸로 예상됩니다.
이제 발표가 일주일도 안남았는데 시간 참 안가는거 같네요 ㅋ
저는 비전문가라 그냥 익숙해진 1.5 버전 가지고 놀면서
편한 인터페이스와 설정값이 나오면 건너가야 할 거 같아요. orz;;;
아마 v1.0 출시에 맞춰 auto1111의 webui에도 업데이트가 될겁니다(그전에 나올수도?).
그래도 저 위의 설정항목은 변함이 없을거에요
다만 어느정도 최적의 설정값이 있기 때문에 계속 사용하다보면 어렵지 않게 적응하실듯
이제 입문한 그린이입니당. 말씀주신 논문을 구현한 pretrained weights를 어떻게 가져와서 쓰시는것인지.. 방법이 궁급합니다!! 그리고 가지고 있는데이터로 fine tuning을 시키는것은 어떻게 하시고 계신지 궁금해요!!
현재 sdxl v0.9 모델을 구하는 방법은 두가지인데
정식 루트로는 https://huggingface.co/stabilityai/stable-diffusion-xl-base-0.9 에서 직접 신청해서 허가가 떨어져야 사용할 수 있는 방법이 있고
또 하나는 https://www.reddit.com/r/StableDiffusion/comments/14sacvt/how_to_use_sdxl_locally_with_comfyui_how_to/ 여기에서 토렌트 파일로 유출 된걸 받아서 해보는 방법이 있습니다.
첫번째 방법은 ai 관련해서 종사하고 있거나 작업한 내역을 증명할 수 있어야 돼서 불확실성과 시간이 소비가 좀 된다는 문제가 있어 그냥 토렌트로 받는게 편하실겁니다..
어차피 곧 v1.0이 나올거라 그때까지 대기타시는게 좋을수도..
그리고 파인튜닝은 https://github.com/bmaltais/kohya_ss#about-sdxl-training 내용을 참고하시면 됩니다.
제가 comfy만 쓰고 있어서 webui 쪽은 아예 모르는 상황이라 확답은 드릴수가 없으나 webui의 드림부스 파인튜닝 확장기능에 아마 이미 있을겁니다..