-
[AI] Stable Diffusion fine-tuning(LoRA)프로젝트/당일 2024. 5. 28. 01:27
Stable Diffusion fine-tuning(LoRA) 왜 궁금했을까❓
"당일" 서비스는 사용자가 입력한 일기를 기반으로 4가지 화풍을 가진 대표 이미지를 생성해준다. 이를 위해서는 Fine-Tuning과정이 필요한데 Stable Diffusion에 Lora를 이용하면 쉽게 적용할 수 있어서 학습해보려고 한다.
Fine-Tuning이란?
사전 학습된 AI 모델의 가중치를 새로운 데이터에 맞게 세밀하게 조정하는 것
"당일" 서비스에 Fine-Tuning이 필요한 이유?
당일 서비스는 사용자가 입력한 일기를 바탕으로 4가지 그림을 보여주게 된다. 사진은 각기 다른 화풍을 가지게 되고 사용자는 여기서 마음에 드는 화풍의 그림을 선택하여 그 날을 대표하면 되는 것이다. 4가지 화풍을 만들기 위해서는 기존 모델에 Fine-Tuning이 필요했다.
fine-tuning을 하기 위해 LoRA를 선택한 이유?
Stable Diffusion에 Fine-Tuning을 하기 위한 방법이 여러 개가 존재하는 것으로 알고 있다. Dreambooth, ,LoRA, Textual Inversion, Hypernetworks 등이 존재하는데 HuggingFace 공식 문서에서도 지원, 제한된 프로젝트 시간, 충분하지 않은 메모리 등을 고려했을 때 LoRA가 가장 프로젝트에 적합한 방식이었다.
LoRA의 원리
LoRA는 Low-Rank Adaptation의 약자로 UNet과 같은 언어 모델(LLM)을 미세 조정하기 위한 기술
- 이전 포스팅에서 본 것처럼 UNet은 데이터가 입력되면 일련의 계산 과정을 거쳐 이미지를 추론한다.
- 단계마다 매개변수 가중치를 조정하여 출력 결과를 변경함으로써 원하는 이미지 효과를 만들 수 있는데 실질적으로 변경하는 것은 불가능하다.
- 그래서, 원본 모델을 손상시키지 않고 각 단계 사이에 단계를 하나 더 추가함으로써 원하는 결과를 만들 수 있는 것이다.
LoRA 적용 예시
- 왼쪽이 기존 AI 모델에서 뽑아낸 사진이고 오른쪽이 실제 사진처럼 나오게 하는 LoRA를 적용한 사진이다.
- 이처럼 당일 서비스에서도 4가지 화풍을 변화시키려고 한다.
'프로젝트 > 당일' 카테고리의 다른 글
[Infra] STOMP를 통한 Spring Boot - FastAPI 통신 (0) 2024.06.02 [FastAPI] AWS S3를 활용한 이미지 저장 (0) 2024.06.01 [AI] Stable Diffusion 성능 향상 (0) 2024.05.31 [AI] Stable Diffusion + LoRA를 통한 이미지 생성 기능 구현 (0) 2024.05.29 [AI] Stable Diffusion (0) 2024.05.27