재미있는건 텍스트로 업스케일링이 안되어서, 이미지에서 업스케일링 했다. 그것도 0.1 강도로 말이다. 그외의 방법으로는 뭔가 검은 그림으로 생성되어서 (즉 오류발생해서) 사용할 수 없었다. LoRA 는 잘 적용되었는데 말이다. 아니면 LoRA 가 SD 1.5 체크포인트를 가지고 만들어서 그런걸지도 모르겠다. (확인 안해봤다)
2023.07.18 (현지시각) 공개할 차세대 Stability Diffusion이다. v3 는 아니지만, 그래도 꽤 많은 변화가 있다.
- 가장 큰 변화는 기준이 되는 학습한 이미지의 크기가 변경된 거다.
SD 1.x 에서는 512x512 이미지로학습 SD 2.x 768 에서는 768 x 768 이미지로 학습 SDXL 에서는 1024 x 1024 이미지로 학습
그래서 SDXL 에서는 1024 미만의 해상도를 가진 이미지를 생성하는 경우 크롭될 수 있다.
- SDXL 은 refine (SDXL 용 업스케일링 체크포인트)도 있다는것 같다.
SDXL 파이프라인
- AI 이미지에서 손을 못 그리는 이유 중 하나가 학습된 이미지의 해상도 때문이다. 전신 사진을 512x512 로 저장하다 보면 손과 같이 디테일이 필요한 부분은 뭉개지게 되고, 이를 학습하면 뭉개진 채로 학습되기 때문에, 이게 결과적으로 뭉개진 그림을 생성하게 된다. 물론 SD 초창기에는 손 뿐만 아니라 얼굴과 눈도 문제가 되긴 했지만, 이건 학습을 많이 해서 해결했다. 손은 학습을 많이 하는걸로도 해결이 안되었던 셈이다. 768 x 768 이미지로 학습시킨 SD 2.x 768 에서는 확실히 손의 디테일이 살아있긴 하지만 그래도 부족했고, 무었보다 SD 2.x 는 텍스트 인코더가 좋지 않아 이전 버전에 비해 원하는 이미지 만들기가 더 힘들었다. SDXL 은 손 문제가 어느정도 해결될 것으로 생각한다. 그렇다면 SDXL 으로 빠르게 전환될지도 모르겠다. 다른건 몰라도 SD 에서 손을 못 그리는 문제는 반드시 해결해야 한다. 시간이 걸리더라도 말이다.
SD 버전 비교
- 또한 SDXL 은 UNet 파라메터가 860M 에서 2.6B 으로 3배 정도 늘어났다. 한글로 표현하자면 8억개에서 26억개로 늘어났다. 어쨌든 파라메터 개수가 늘어나면 좀 더 퀄리티 높은 결과가 나오지 않을까 기대중이다.
- 고해상도 이미지를 학습시키고 고해상도 이미지를 생성해야 하며, 학습 파라메터도 늘어났기 때문에 VRAM 과 시스템 메모리를 많이 필요로 한다. 특히 시스템 메모리 16GB 가 필요하다고 한다. 그렇다면 32GB 는 준비해야 여유있을거라는 의미다. 그래픽카드도 nVidia RTX 이 필요하고 VRAM 은 8GB 이상이 필요하다고 한다. 최소 RTX 2060 12GB 는 필요한 셈이다. RTX 20 시리즈가 2018년 9월에 나온걸 감안하면 꽤 오래전 GPU 까지 지원해주는 듯. 에혀... 올해 4월에 RTX 2060사고 좋아라 했는데 다시 업그레이드해야겠다.
SD1.5 에서 맘에 드는 이미지를 생성할 확률이 7.91% 라면, SDXL Refiner 사용시에는 48.44% 라는 의미다.