일전에 SD1.5 모델에 LCM 로라(LoRA)를 적용해 이미지 생성 속도를 대폭 상승시키는 방법에 대해 소개드린 적이 있습니다. 본문에서는 SD1.5의 LCM 로라와 유사한 SDXL 라이트닝 모델을 적용하는 방법과 워크플로우에 대해 함께 살펴보도록 하겠습니다.
SDXL 라이트닝 적용 방법
SDXL은 아무래도 SD1.5에 비해 높은 사양의 하드웨어를 요구하다보니 진입장벽이 조금 더 높은 것이 사실입니다. 게다가 SD1.5가 처음 공개된 이후 수많은 유저들의 SD1.5 파인튜닝 모델이 공유되며 퀄리티가 높아지다보니, SDXL의 기본모델이 처음 공개된 이후에도, SDXL로 넘어가지 않고 여전히 SD1.5 버전을 사용하는 분들이 많았습니다. SDXL 버전에서도 SDXL LCM과 SDXL Turbo라는 기술이 공개되면서 빠른 속도로 사용이 가능해지긴 했지만, 빠르게 이미지를 생성하면 이미지 품질이 조금 떨어진다는 단점이 있었습니다. 하지만 Turbo에 이어 공개된 SDXL 라이트닝 모델은 빠른 속도에서도 Turbo에 비해 좋은 품질의 이미지 생성이 가능해지면서 많은 분들이 SDXL로 넘어가고 있습니다.
SDXL 라이트닝 LoRA 다운로드
SDXL 라이트닝을 적용하는 방법은 생각보다 매우 간단합니다. SD1.5 LCM 모델이 그랬던 것처럼 SDXL 라이트닝 모델도 SDXL 로라를 적용하면 기존의 SDXL 모델에서 바로 사용 가능합니다. 아래는 SDXL 라이트닝 모델을 다운받을 수 있는 Huggingface 페이지입니다.
페이지를 보시면 여러 스텝의 로라 및 체크포인트모델이 있는데요, 적은 스텝의 로라를 사용해도 되지만, 개인적으로는 8스텝 로라(sdxl_lightning_8step_lora.safetensors)를 다운받으시는 것을 권장드립니다. 스텝이 낮을수록 속도는 빨라지지만 그만큼 이미지의 퀄리티는 낮아지게 됩니다.
SDXL 라이트닝 워크플로우
SDXL 라이트닝 로라를 적용하는 워크플로우는 아래 그림과 같이 기본 워크플로우(default)에서 텍스트 인코더 앞에 로라만 로딩해주면 되는 간단한 워크플로우입니다.
로라는 위에서 다운받은 8step 로라를 적용하고, KSampler 노드에서 샘플링 스텝을 똑같이 8 step으로 맞춰줍니다. cfg는 1.0, 샘플러는 euler, 스케쥴러는 sgm_uniform을 선택(샘플러와 스케줄러는 공식적으로 euler, sgm_uniform 사용을 권장하고 있습니다)하면 워크플로우 구성이 간단히 끝납니다. 이 상태에서 이미지를 Queue Prompt를 누르면 매우 빠른 속도로 이미지가 생성됩니다.
SDXL 스텝에 따른 디테일 차이
SDXL 모델의 일반, 터보, LCM 로라 및 Lightning 로라 적용시 스텝에 따른 디테일 차이를 한 번 비교해보도록 하겠습니다.
각각 SDXL 일반모델, SDXL 일반모델 + LCM 로라, SDXL Tubo 모델, SDXL 일반모델 + Lightning 로라를 적용한 상태에서 샘플링 스텝을 2, 4, 8로 늘려가며 이미지를 생성한 결과입니다. 기본적인 스테이블 디퓨전의 이미지 생성 원리에 따라, 아무 기술을 적용하지 않은 일반 체크포인트 모델에서는 샘플링 스텝이 낮으면, 노이즈 제거(디노이징)가 덜 된 모습이 나타납니다. 따라서 2, 4, 8 스텝 모두에서 노이즈 제거가 덜 되어 뿌연 이미지가 생성되고 있으며, 최소 20스텝 정도는 적용했을 때 노이즈가 보이지 않고, 디테일도 쓸만한 이미지를 얻을 수 있습니다.
한편 동일 모델에서 LCM과 Ligntning 로라를 적용해 생성한 이미지의 경우 적은 스텝에서도 노이즈가 제거되어 쓸만한 이미지를 얻을 수 있습니다. LCM 로라가 적용된 경우 8스텝 정도에서 꽤 괜찮은 이미지가 생성되고 있고, 느낌만 필요한 경우라면 4스텝으로 생성한 이미지도 나쁘지 않습니다. 단, 2스텝에서는 사람의 얼굴을 알아볼 수 없을 정도로 형상이 무너진 모습입니다.
반면 본문에서 소개드린 SDXL 라이트닝 로라를 적용한 경우 2, 4, 8 스텝 모두 사람의 얼굴이 정확하게 표현되고 있고, 노이즈도 모두 제거된 모습입니다. 하지만 각 스텝별로 맞는 로라를 따로 적용하긴 했음에도, 스텝이 높을수록 조금더 깔끔하고 디테일이 살아있는 이미지(2스텝에 비해 8스텝 로라를 적용한 경우)가 생성되고 있습니다.
SDXL 터보 모델도 8스텝에서는 굉장히 준수한 이미지 품질을 보여주고 있습니다. 4스텝에서도 LCM 로라 적용 이미지와 유사한 수준의 퀄리티를 보여주고 있긴 하지만, 2스텝에서는 역시나 형체를 알아보기 어려운 이미지를 보여주고 있습니다. 여러장의 이미지를 생성해보면 동일한 8스텝에서도 터보모델 보다는 라이트닝 모델이 조금더 이미지 품질이 높다는 것을 알 수 있었습니다.
Lightning 모델 활용
낮은 스텝에서 빠르게 쓸만한 이미지를 생성할 수 있다는 것은 굉장한 장점입니다. 물로 시간에 구애받지 않고 퀄리티 위주의 작업이 필요한 경우라면 굳이 SDXL 라이트닝 모델을 사용하기보다 일반 모델에서 스텝을 충분히 주고 천천히 작업하는 것이 더 좋은 결과물을 얻는 방법일 수 있습니다. 하지만 이같은 정교한 작업은 보통 어떤 프로젝트의 마무리 단계일 뿐, 일반적으로는 빠르게 다수의 이미지 컨셉을 잡고, 초안을 그리는 작업에서는 속도가 생명이기 때문에 SDXL Lightning 로라 또는 모델을 사용하는 것이 훨씬 효율적입니다.
위 예시는 Krita에서 SDXL 라이트닝 로라를 적용해 활용하는 모습입니다. 앞서 SD1.5 모델에서 LCM 로라를 활용해 실시간으로 드로잉을 진행하는 방법을 소개드린 바 있었는데요, 이제 같은 방식으로 SDXL 라이트닝 로라를 적용하면 SDXL에서도 실시간 드로잉이 할만해집니다. 뿐만아니라 이전 포스팅에서 살펴본 IP-Adapter, InstantID 등 하드웨어 리소스를 비교적 많이 요구하는 작업을 할 때도, 낮은 스텝에서 작업이 용이한 SDXL 라이트닝 모델을 사용하는 것이 작업 속도에도, 또 정신 건강에도 좋습니다.
직접 로라를 적용하는 것이 까다롭다고 느끼시는 분들은 Civitai에서 SDXL Lightning이 적용된 병합 모델을 사용하시는 것도 방법입니다. 이미 많은 모델러분들이 자신의 모델을 터보 및 라이트닝 버전으로 업데이트 해뒀기 때문에 유명한 모델들은 대부분 다운받아 바로 사용이 가능합니다.