2024. 1. 11. 15:08ㆍ알고싶다. 이미지 AI
들어가며
LoRA를 비롯한 Stable Diffusion 모델의 학습기법(fine-tuning)에 대해 톺아본다
우리는 이미 Dreambooth 및 Textual inversion과 같은 학습 기법이 있다. 그렇다면 LoRA의 가장 큰 장점은 무엇일까? LoRA는 파일 크기는 작지만 효과적으로 모델의 스타일을 변경할 수 있다.
- Dreambooth | 대용량 모델 파일(2~7GB) 생성, 강력하다. 최소 12GB VRAM이 필요.
- Textual Inversion | 작은 용량의 모델(약 100KB) 생성, 많은 작업을 수행하지 않는다
- LoRA | 파일 크기 (2-200MB) 정도이며 그 능력이 괜찮다. 최소 8GB VRAM이 필요
👀 학습기법(fine-tuning)이란?
기존 학습 모델(pre trained model) 위에 새로운 데이터셋을 추가로 학습시킴으로써, 모델의 파라미터를 미세조정하는 과정을 말한다. fine-tuning을 통해 모델을 처음부터 학습시키는 대신, 기존모델을 활용해 원하는 결과를 더 빠르게 얻을 수 있어 효율적이다.
Dreambooth의 개념과 원리
DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation
🔗https://dreambooth.github.io/
🔗https://arxiv.org/abs/2208.12242
🔗https://medium.com/@antalpha.ai/lora-dreambooth-textual-inversion-in-stable-diffusion-1-5-c6d561542873
구글 리서치에서 2022년 발표한 학습 기법으로, 구글팀의 비유로는, 사진을 한번 찍으면 내가 원하는 어떤 배경과 환경으로든 합성될 수 있는 포토부스이다.
이전의 대형 text to image 모델들은 주어진 텍스트 프롬프트에서 이미지를 고화질과 다양한 형태로 합성하는 형태였지만, 새로운 묘사를 합성하는 능력을 갖추지 못하고 있었다.Dreambooth의 원리는 주제에 대한 몇 가지 이미지만 입력으로 받아, pre-trained text to image 모델을 미세 조정하여 특정 주제와 고유 식별자[V]를 연결하도록 학습시킨다. 주제가 모델의 출력 도메인에 포함되면, 고유 식별자[V]는 다른 장면에서 완전히 새로운 사진같은 이미지를 합성하는데 사용될 수 있다.
예시로 특정 개에 대한 몇 가지 이미지(일반적으로 실험에 따르면 3-5개의 이미지로 충분)와 해당 클래스 이름(예: "개")을 입력으로 받아, 그 주제를 가리키는 고유 식별자[V]를 인코딩하는 세밀하게 조정된/"개인화된" 텍스트-이미지 모델을 추출한다. 그런 다음, 추론 단계에서는 다른 문장에 고유 식별자[V]를 삽입하여 다른 맥락에서 주제를 합성할 수 있다.
드림부스의 학습에서는 큰 의미가 없는 단어(ex.iom)를 통해 훈련해야 AI가 일반적인 다른 학습된 단어와 이를 혼합하는 것을 방지할 수 있다.
드림부스는 아래 사진을 예시로, 두 단계를 거쳐 fine-tune을 하게된다. 드림부스는 상위 개념의 class 정규화 이미지를 통해 과적합 현상(같은 자세, 같은 모습, 같은 캐릭터 등만 계속 나오는 현상)을 방지한다.
(a) 첫 번째 단계에서는, 입력 이미지와 함께 prompt(예를 들어, "이것은 [T] 개의 사진"이라는 문장)를 페어링하여 저해상도의 모델을 세밀하게 조정한다. 동시에, 클래스에 대한 의미론적 사전을 활용하고 텍스트 프롬프트에 class name( "개의 사진" )을 삽입함으로써 주제의 클래스에 속하는 다양한 인스턴스를 생성하도록한다. class 범위에 따라 다면 모델의 오염 정도가 달라질 수 있다. (ex. 차우차우-생명). pretrained 모델에서 새로운 이미지를 추가학습시킴으로써 발생하는 변경으로부터 보호하려는 부분을 클래스 이미지에 넣고 훈련하려는 부분은 클래스 이미지에서 제외한다.
(b)두 번째 단계에서는, 우리가 가진 원본 이미지의 저해상도 버전과 고해상도 버전을 이용하여 모델을 더욱 세밀하게 조정한다. 입력 이미지 세트에서 가져온 저해상도 이미지와 고해상도 이미지의 쌍으로 초고해상도 component를 세밀하게 조정한다. 이 과정을 통해 주제의 작은 세부사항에 대한 높은 신뢰성을 유지할 수 있다.
Dreambooth에는 여러 버전이 있지만 LoRA를 접목시킨 kohya-ss 버전이(기본 8GB VRAM 요구) 보편화되어있다.
Textual Inversion의 개념과 원리
An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion
🔗https://textual-inversion.github.io/
🔗https://arxiv.org/abs/2112.10752
아트스타일 등의 특정 컨셉을 생성하고자 한다면,pre-trained된 text-to-image 모델의 임베딩 공간에그것을 새로운 '단어'로 설명하여 학습하는 기법이다. 모델의 일부에 포함된 텍스트를 미세하게 조정한다.
대부분의 Text to Image 모델의 텍스트 인코딩 단계의 첫번째 순서는 프롬프트를 숫자 표현으로 변환하는 작업이다. 이 과정은 단어를 모델 사전의 항목에 해당하는 토큰으로 변환하는 것으로 이루어진다. 그리고 '임베딩'으로 변환되는데, 이는 특정 토큰에 대한 연속 벡터 표현이다. Textual Inversion은 사용자가 제공한 특정 시각적 개념을 나타내는 새로운 임베딩을 찾는다. 이러한 임베딩은 새로운 의사 단어에 연결되며 다른 단어와 마찬가지로 새로운 문장에 통합될 수 있다. 이런 의미에서 우리는 고정 모델의 텍스트 삽입 공간으로 반전을 수행하고, 이 과정을 ' Textual inversion'이라고 한다.
LoRA의 개념과 원리
High-Resolution Image Synthesis with Latent Diffusion Models
🔗https://stable-diffusion-art.com/lora/
LoRA(Low-Rank Adaptation)는 Stable Diffusion 모델 학습 기법 중 하나이다.
LoRA는 Stable Diffusion 모델의 가장 중요한 부분(cross-attention layers)에 작은 변화를 준다. crossattention layers = 이미지와 프롬프트가 만나는 모델의 부분으로, 이 부분을 fine-tuning하는 것이 좋은 학습에 충분하다는 것을 전문가들은 발견했다.
'알고싶다. 이미지 AI' 카테고리의 다른 글
(1) colab 환경 스테이블 디퓨전(stable diffusion) 실행기 (2) | 2024.01.09 |
---|---|
RUNWAY(GEN-2) 리뷰 : 최고의 영상AI 자리를 지킬 수 있을까 (1) | 2023.12.20 |
AI 영상의 최신 기술, PIKA를 경험하다: 나의 솔직한 사용 후기 (0) | 2023.12.14 |