스테이블 디퓨전(StableDiffusion)

아직도 LCM 로라를 모르신다구요?

물범쌤 2024. 7. 12. 16:33

안녕하세요 여러분, 물범쌤입니다 :)

 

오늘은 LCM 로라에 대해서 설명드리고자 하는데요,

LCM로라는 기존의 이미지 생성방식보다

월등히 빠른 이미지 생성속도를 자랑하는 모델입니다.

 

비교를 위해 영상을 첨부해드리도록 하겠습니다.

 

lcm_비교.mp4
3.86MB

 

 

ComfyUI와 SD Forge 모두 동일한 XL모델과 프롬프트를 사용했고

ComfyUI는 이미지 5장을 생성하는데에 8초,

그리고 SD Forge는 27초가 걸리면서

약 3배가 넘는 이미지 생성 속도 차이가 보였습니다.

 


LCM로라의 공식 문서에 따르면 mac을 사용하는 경우

최대 10배까지도 이미지 생성속도가 차이가 있다고 하니

정말 놀라운 모델이 아닐 수 없습니다.

 

그렇다면 본격적으로 LCM 로라를 사용해 볼까요?


1. 설치

 

LCM로라는 SD1.5버전과, SDXL버전이 따로 있습니다.

SD1.5와 SDXL도 체크포인트에 따라서

로라나 임베딩 파일을 동일하게 쓸 수 없는 경우가 대부분이었으니,

당연하게 생각하고 넘어가주시면 될 것 같습니다.

각각의 설치 경로는 다음과 같습니다.

 

SD1.5v_lcm : https://huggingface.co/latent-consistency/lcm-lora-sdv1-5/tree/main

SDXL_lcm : https://huggingface.co/latent-consistency/lcm-lora-sdxl/tree/main

 

각각의 경로로 이동하셔서 'Files and versions' 탭에 있는

safetensors 확장자 파일을 다운로드 받아주시면 되겠습니다.

 

※여기서 주의할 점은 SD1.5 버전과 SDXL의 lcm로라 파일명이 동일하기 때문에

각각의 파일을 구분할 수 있도록 파일 이름을 바꿔두시는것을 추천드립니다.

 

 


2. 셋팅

 

다운로드 받으셨다면 이제 사용 가능하도록 셋팅하셔야겠죠?

이름이 LCM '로라'이니까 기존 Lora 모델들을 담아두셨던 폴더에 동일하게

추가해 주시면 되겠습니다.

 

참고로, 저를 따라서 Stability matrix를 사용중이신 분들은

책 모양의 아이콘을 누르시면 모델링 파일을 추가하실 수 있는데,
Lora 공간에 다운 받은 파일들을 드래그 앤 드롭으로 추가하실 수 있습니다.

 

 

스테빌리티 매트릭스도 별도의 파일 경로를 갖고 있기 때문에

로컬에도 설치하시고,

스테빌리티 매트릭스에도 설치하시면 중복으로 설치되는 것입니다.

용량이 넉넉해서 둘 다 사용하고 싶으시면 괜찮지만,

용량이 부족하신 경우 한 쪽을 삭제하시고 몰아서 사용하시는것을 추천드립니다

(저는 교육을 위해 둘 다 사용하고 있습니다.)

 


반응형

3. 사용

 

LCM 로라의 적용을 눈으로 확인하기 위해서는

다른 버전보다는 comfyUI가 용이합니다.

comfyUI LCM로라 말고도 수 많은 확장 기능들을 사용하고
그 구동단계를 눈으로 확인하기에 아주 좋은 모델입니다.

 

그럼 본격적인 실습을 위한 노드 구성부터 알아보겠습니다.

Load Default 상태를 기준으로 알려드릴 예정이니,

기존에 작업하시던 워크플로우가 있으시다면 'Queue prompt->Save' 버튼을 통해서

워크플로우 파일을 백업해두시기 바랍니다.

 

저는 SDXL 버전의 lcm 로라를 사용하겠습니다.

체크포인트는 기존에 설정되어 있던 albedobaseXL 모델을 그대로 사용하고,

lcm 로라 사용을 위한 Load Lora 노드,그리고

add_detail 로라 사용을 위한 Load Lora노드를 추가해 주겠습니다.

 

기존에 체크포인트 노드에서 다이렉트로 연결되던 Clip,Model에 대한 연결점을

첫 번째 Load Lora 노드로 옮겨줍니다.

(Vae연결은 별도의 vae 파일을 사용하시는게 아닌 이상 그대로 두셔야 합니다)

 

동일한 Load Lora 노드 사용을 통해 2개의 로라모델을 설정해주고,

마지막 Load Lora 노드에서

Clip과 Model 연결점을 각각 프롬프트 노드와 Ksampler 노드에 연결해 줍니다.

 

입력 프롬프트는 아래와 같습니다.

 

긍정프롬프트:
"Glass bottles containing beautiful Galaxy,

the background in the fantasy forest,
A cute baby cat is sleeping next to a glass bottle."

 

부정 프롬프트:

"text, watermark,painting,twin,people"

 

마지막으로, 가장 중요한 Ksampler 셋팅입니다.

 

LCM로라가 이미지 생성속도가 빠른 이유는

샘플링 스텝의 수가 월등히 적기 때문입니다.

cfg수치 또한 일반적인 이미지 생성시와는 다르게

매우 낮게 설정해주셔야 하는것도 중요합니다.

 

이제 한 번 생성해볼까요?

 

 

아주 귀여운 그림이 생성 되었습니다 :)

 


 

Q. 쌤! LCM 로라를 사용하니까 , 정말 이미지 생성속도가 엄청 빨라졌어요

어떻게 이렇게 빠른 이미지 생성이 가능한 것인가요?

 

A. 그걸 알기 위해서는 먼저 LDM 과 LCM의 차이를 알아야 해요

천천히 설명해 드릴게요 :)

 

 

LDM은 'Latent Diffusion Model'의 약자로,

우리가 LCM로라를 사용하지 않을때,
일반적으로 사용하는 이미지 생성 방식입니다.

 

이 LDM방식은 seed를 통해 생성된 기존 이미지에서

차츰차츰 노이즈를 제거해가면서 그림을 생성하는데요,

 

알기 쉬운 개념으로는 조각을 생각해주시면 될 것 같습니다.

우리가 조각을 할 때,
나무나 돌의 원재료를 조금씩 깎아가면서 작품을 완성시키는것처럼

이 LDM방식은 노이즈를 제거해가면서 그림을 생성합니다.

 


 

LCM은 'Latent Consistency Model'의 약자입니다.

 

LCM 방식은 기존의 스테이블 디퓨전이 학습한 데이터를 토대로,
신규 이미지 생성과정에서
사용자가 원하는 이미지 표현에 필요한 학습만을 진행하여

이미지 생성 속도를 비약적으로 증가시킨 방식입니다.

 

알기 쉬운 개념으로는

조각을 할때 한땀한땀 깎는것이 아니라

확실하게 필요 없겠다 싶은 부분은 뭉텅뭉텅 잘라내고

디테일한 부분만 깍아내는 방식이라고 보시면 되겠습니다.
LCM모델은 샘플링 스텝을 4~8 사이로 설정할때
가장 우수한 품질의 이미지가 생성됩니다.

 


오늘은 LCM 로라의 사용법과 개념에 대해 알아보았습니다.

빠르게 테스트 이미지를 생성하고자 할때, 유용하게 사용할 수 있는 기능이네요.

 

이 컨텐츠가 유익하셨다면

커피값은 기업들에게 받을테니

광고 한번씩만 눌러주시면 감사드리겠습니다 :)

 

그럼 오늘도 좋은 하루 되세요! ^^

반응형