1. 개요
Low-Rank Adaptation, LoRA대규모 인공지능 모델의 파인튜닝 시 전체 가중치를 업데이트하는 대신 저랭크 행렬을 추가하여 학습 파라미터 수를 크게 줄여 효율성을 높인 방식이다. LoRA가 보편적으로 사용되면서 Lycoris, LECO, LoCon, LoHa, DyLoRA, LoKr, DoRA, GLoRA 등 다양한 변형들도 많이 생겼다.
학습된 LoRA 모델은 Stable Diffusion Web UI, ComfyUI 등 다양한 인터페이스에서 쉽게 적용할 수 있다. LoRA 파일을 해당 UI의 지정된 폴더에 넣고, 이미지 생성 시 프롬프트와 함께 LoRA 모델을 활성화하여 사용한다. LoRA의 적용 강도(가중치)를 조절하여 생성 결과에 미치는 영향을 조절할 수도 있다.
2. 활용
원래 모델에 비해 훨씬 작은 추가적인 변화만을 학습하고 저장하기 때문에 용량이 작아서[1] 특정 그림체나 캐릭터, 구도 전용 LoRA를 학습시키고 공유하기가 용이하다. 그래서 Civitai 등 생성형 인공지능 관련 커뮤니티에서 많이 사용되고 있다.현재 LoRA의 유형이 워낙 다양해진지라 학습 전에 자신이 만들 모델의 주제에 따라 가장 적절한 유형을 고르고, 상세한 학습 자료와 최적화된 학습 설정을 찾아내는 것도 중요하다.
모델이 이미 알거나 애매하게 알고 있는 프롬프트의 경우, 특정 프롬프트의 정보가 담긴 LoRA를 활용하면 그 프롬프트의 재현도를 향상시키는 것에 도움이 된다. 반면 모델이 전혀 모르는 새로운 프롬프트라면 학습 자료[2]와 태깅에 특히 신경써야 한다.
어느정도 요령이 생긴 유저들은 원하는 이미지를 만들기 위해 10개가 넘는 LoRA를 투입하기도 하는데, 이럴 경우 LoRA가 많아질수록 적절한 가중치 조절은 필수적이다. 마구잡이로 집어 넣었다가는 AI Slop 같은 기이한 이미지가 만들어지거나, 그림체가 뒤섞여서 뭔가 잘 그려진 것 같은데 채색이 지저분하고 부자연스러운 이미지[3]가 나올 확률이 높아진다.
3. 장단점
모델의 한계를 넘어 원하는 다양한 주제를 실시간으로 적용할 수 있다는 점이 매력적이라 사실상 그림 인공지능의 핵심 중 하나지만, 아무래도 학습 방법에 정답이 없기 때문에 사람마다 퀄리티, 유연성, 재현도가 들쑥날쑥하다. 또한 LoRA 파일을 수집하다보면 폭발하는 저장 용량도 꽤 부담스러운 편이고, 한번 모델의 세대[4]가 지날 때마다 기존 모델에 학습된 LoRA는 당연히 무용지물이 되어 다시 학습시켜야 한다는 것도 아쉬운 점.4. 관련 문서
- 심층학습
- 생성형 인공지능
- 행렬(수학)
- Civitai
- GitHub/저장소 - civitai가 아닌경우 이쪽에 LoRA가 올라가기도 한다.
[1] 다만 이것도 케바케라 용량이 보통 25~250MB에서 왔다갔다 한다. 보통 인터넷에서 구할 수 있는 파일은 200MB 정도로 5개만 받아도 벌써 1GB를 채운다. 400MB~1GB에 이르는 고용량 LoRA도 존재한다.[2] 특히 화풍 LoRA가 아니라면 학습 자료의 화풍을 통일시켜서는 안된다. 화풍이 유사하면 해당 화풍이 학습되어 LoRA의 유연성이 감소해버린다. 반대로 화풍 LoRA의 경우는 특정 사물, 배경, 구도, 자세가 자주 반복되면 유연성이 떨어지게 된다.[3] 특히 Pixiv 같은 곳에서 흔히 보이는, 아직 미숙한 유저들이 올린 모에 계열 AI 이미지 느낌.[4] SD1.5 → SDXL(여기서도 PonyV6, Illustrious, NoobAI, Animagine 등으로 갈린다.) 같이 최신 기반 모델이 나올 때마다 이전 모델은 인기를 잃고 점차 도태되어 간다.