SDXL 에서는 FP8 를 사용않고 있었다. SDUI 에서도 FP8 이 기본적으로 활성화 되지 않는다. 문득 조금 이상하다는 생각이 들어 찾아봤다.
- 우선 SDUI 에서는 Optimizations 항목에 FP8 관련 설정이 아래와 같이 2개 있다.
① FP8 weight (Use FP8 to store Linear/Conv layers' weight. Require pytorch>=2.1.0.) ◎ Disable ◎ Enable for SDXL ◎ Enable
② Cache FP16 weight for LoRA (Cache fp16 weight when enabling FP8, will increase the quality of LoRA. Use more system ram.)
- ① 을 활성화하면 기본적으로 FP8 을 사용하게 된다. 실제로 해보면 성능 향상(이미지 생성속도)이 없다. 단 메모리는 FP8을 사용하는 만큼 적게 사용한다. FP8을 활성화 하는 경우 일부 LoRA 를 사용할 수 없다. 왜인지는 모르겠지만 오류 발생한다.
- SDXL 메모리 사용량
FP8: 3.80 GB FP16: 5.23 GB
SDXL FP16
SDXL FP8
주) VAE 는 동일하게 FP32 사용한다.
- ②는 캐시관련된거라 성능에 관련이 없다.
- 결론적으로 써도 성능 향상이 없고, LoRA 호환성만 떨어뜨리기 때문에 사용 안하는 거다. 결과물도 다르다. (단 FP16이 항상 더 좋은 결과를 내주는건 아니다) FLUX.1 dev 는 FP8 을 쓰면 효과가 상당히 좋은데 (이미지 생성속도가 빨라지는데) 유독 SDXL 에서는 효과가 없다.
- 아래는 같은 프롬프트, 같은 파라메터를 사용해서 만든 이미지다. 어떤게 좋다고는 할 수 없지만 왠지 FP16 이 더 빛나 보인다.
체크포인트를 바꿨다. 오랜만에 머지를 다시 했는데, 괘 괜찮게 나왔다. 8월 초에 한번 바꾸고 근 3개월 만이다. 그동안 몇번 머지를 시도했지만 기존것 보다 안 좋다고 판단되어서 사용하지 않고 있었다. 다행이도 이번엔 기존것 보다 잘 나왔다.
슬슬 SDXL 이나 SD3, FLUX.1 등으로 바꾸긴 해야 한다고 생각하긴 하는데 아직 못 바꿨다. PC의 업그레이드는 마쳤고, 지금은 SDXL 정도는 무난하게 사용가능하긴 하지만 아직 맘에 드는 그림체가 아니라서 못 바꾸고 있다. 하지만 꾸준히 SDXL 이나 FLUX.1 으로는 생성하고 있다. 웬지 아래와 같은 그림체가 안나와서 맘에 안들 뿐이다. 이러다가 직접 LoRA 를 작성해야 하는게 아닌가 생각하기도 한다.
① Stable Diffusion 3.5 Large: 80 억개 파라메터 ② Stable Diffusion 3.5 Large Turbo: Large 의 ADD(Adversarial Diffusion Distillation) 적용 모델. 4 스텝 용. ③ Stable Diffusion 3.5 Medium: 25 억개 파라메터
우선 Large 와 Large Turbo 가 발표되었습니다. Medium 은 10/29 공개 예정이라 하네요.
- 앞서 발표했던 SD3 의 Medium 모델이 20 억개의 파라메터를 가졌고, SDXL 은 26 억개입니다. FLUX.1 Dev 가 120억개입니다. 파라메터가 많으면 더 좋은 이미지를 얻을 수 있는건 맞지만, 고사양을 필요로 하기 때문에 대중성에서는 떨어집니다. 많이 떨어지죠. 아직까지 SDXL 에서 벗어나지 못하는 이유기도 합니다.
SD 3.5 구조. SD3 와 거의 유사하다.
SD3.5 의 구조는 SD3 와 거의 같습니다. 다이어그램에는 CLIP 에서 256 토큰을 사용한다고 되어있는데 뭔지는 잘 모르겠네요.
FLUX.1 Dev 이 사용하기 어려워서 (이미지 생성 속도 때문에) 고민되었는데 Medium 은 이미지 생성속도가 SDXL 과 비슷한 정도일 것으로 생각되어서 사용해볼만 하겠네요.
- 2024.10 현재 가장 많이 사용되는 모델은 SDXL 입니다. SD3.5 나 FLUX.1 Dev 이 대중화되려면 조금 더 시간이 필요해 보이네요. 소비자들이 많이 사용하는 GPU 가 xx60 (3060, 4060, 1650, 2060, ...) 급의 GPU 인데 이정도 스펙에서는 SDXL 을 사용하면 쾌적하게 사용할 수 있으니까요. 저도 SD1.5, SDXL 이 주력입니다.