LCM 로라의 원리에 대해 간략히 살펴보고, LCM 로라를 활용해 기존의 스테이블 디퓨전 모델의 생성 속도를 개선하는 방법 및 속도 개선된 스테이블 디퓨전 모델 병합 방법에 대해 알아봅니다.
LCM 로라
LCM-LoRA란 일관성모델(CM: Consistency Model)에 기반을 둔 로라 학습 모델로, 기존 스테이블 디퓨전 이미지 생성 단계를 대폭 줄여 이론상으로는 1스텝 만에 그림을 만들어낼 수 있게 해주는 기술입니다. LCM이란 이름 자체도 Latent Consistency Model의 약자로 잠재영역에서 구동하는 일관성 모델을 의미합니다.
구체적인 기술적 구현 방법을 이해하기는 힘들지만, 아주 간략하게 LCM 로라의 원리를 살펴보자면 먼저 스테이블 디퓨전의 그림 그리는 방식에 대해 다시 한번 이해할 필요가 있습니다. 스테이블 디퓨전은 기본적으로 잠재영역(latent)에서 노이즈를 추가하고 이를 모델(체크포인트)의 학습정보를 기반으로 사진 현상하듯 다시 잠재 노이즈(latent noise)를 제거해나가면서 이미지화 시키는 방식으로 그림을 생성합니다.
여기서 LCM 로라는 이 잠재 노이즈를 제거하는 단계를 줄이는 방식으로 그림 생성 속도를 향상시킵니다. 노이즈 제거 방식에 대한 구체적인 이론적 배경은 차치하더라도, 여기까지 이해가 되셨다면, 눈치 빠른 분들은 원리상으로 LCM LoRA를 기존의 모든 스테이블 디퓨전 모델에 적용하여 그림 생성 속도를 향상시킬 수 있다는 것을 예상할 수 있습니다.
LCM 로라 사용방법
LCM 로라를 적용해 빠른 이미지 생성을 경험하기 위해서 먼저 아래의 로라 모델을 다운받아야 합니다.
다운받은 모델은 엄연히 LoRA 모델이므로 WebUI 또는 ComfyUI 설치 위치에서 LoRA 모델 폴더에 저장합니다. 기본 폴더 위치는 다음과 같습니다.
WebUI : WebUI 설치위치/models/lora/
ComfyUI : ComfyUI 설치위치/models/loras/
원활한 사용을 위해 다운받은 모델의 이름을 각각 다음과 같이 변경해주시기 바랍니다.
구분 | 파일명 |
---|---|
SDXL | lcm-lora-sdxl.safetensors |
SD1.5 | lcm-lora-sd1-5.safetensors |
WebUI LCM 로라 적용
LCM 로라를 적용해 그림을 생성하는 방법은 일반적인 로라 적용 방식과 동일하므로 매우 간단합니다. 위에서 다운받은 LCM LoRA 파일을 WebUI 로라 탭에서 일반 로라를 적용하듯 선택하면, 프롬프트 상 <>사이에 가중치와 함께 입력이 됩니다. 이 때, 가중치는 기본으로 적용된 1의 값으로 두고 진행하시면 됩니다.
단, ComfyUI와 달리 WebUI에서는 기본적으로 LCM Sampler를 제공하지 않기 때문에, Sampler를 Euler, Euler a, DPM++2S a 또는 DPM++2S a Karras를 활성화하여 사용해주셔야 합니다.
이미지 생성 탭에서 샘플러가 보이지 않는 분들은 위 그림을 참고하여 Settings > Sampler parameters에서 Sampler 숨기기를 체크해제 한 뒤 Apply settings > Reload UI하시면 됩니다. 참고로 만약 LCM 샘플러를 따로 다운받아 적용하시고 싶으신 분들은 AnimateDiff 확장 기능을 설치하시면 됩니다.
마지막으로 LCM LoRA를 제대로 적용하기 위해 CFG 스케일은 1~2 수준으로 낮게 잡아주시고, 샘플링 스텝은 4~6단계정도를 적용하여 그림을 생성하시면 됩니다. 아래는 샘플링 스텝에 따른 LCM LoRA 적용 전후 결과 이미지입니다.
LCM LoRA 미적용
Sampler : DPM++2S a Karras
CFG Scale : 2
LCM LoRA 적용
Sampler : DPM++2S a Karras
CFG Scale : 2
로라의 영향으로 같은 Seed, 같은 프롬프트에서 다른 그림이 생성되기는 하지만, 샘플링 스텝에 따른 결과물을 보면 확실히 LCM 로라를 적용한 쪽이 적은 스텝에서 더 빨리 디테일이 살아있는 그림이 생성되는 것을 볼 수 있습니다.
LCM 로라 모델 병합 – 빠른 모델 만들기
SuperMerger 확장기능을 활용해 위의 세팅을 참고해 LCM로라를 모델에 병합하면, 병합 모델 자체로 LCM이 적용된 그림을 바로바로 생성할 수 있습니다. 병합 모델로 동일 조건에서 그림을 생성하면 LCM 로라를 따로 프롬프트상에 적용한 것과 동일한 이미지를 생성합니다. 아래는 동일 조건 5 step에서 생성한 이미지를 비교한 것으로, 완전 동일하다는 것을 확인할 수 있습니다.
모델(체크포인트)에 LoRA를 병합하는 방법에 대한 내용이 필요하신 분들은 아래 글을 참고하시기 바랍니다.
LCM LoRA 확장성
LCM 로라의 경우 단순 로라 적용만으로는 단지 생성 속도가 향상된 것으로 밖에 보이지 않아 이미 빠른 GPU를 사용중인 분들께서는 큰 매력을 못느끼실 수도 있습니다. 하지만 여기서 중요한 것은 LCM 로라를 활용한 스테이블 디퓨전 활용도의 확장성입니다.
예를 들어 동일 작업에 대해 더 적은 스텝으로 이미지를 빠르게 만들 수 있다는 것은, 많은 이미지를 대량으로 만들어야하는 동영상 제작에 굉장한 이점으로 작용할 수 있습니다. 뿐만 아니라, 좋은 GPU + LCM 로라의 시너지로 극단적으로 빠른 이미지 생성 속도를 활용해 실시간으로 내가 그리는 그림을 스테이블 디퓨전이 보완해주는 툴로 활용할 수도 있습니다.
이처럼 LCM LoRA의 등장으로 스테이블 디퓨전 활용 영역이 굉장히 확되되었는데요, 앞서 설명드린 영상 및 실시간 드로잉 관련해서 추후 포스팅에서 조금더 자세하게 다뤄보도록 하겠습니다.