티스토리 뷰
[AI] Stable Diffusion 용어 (Checkpoint, Lora, Textual Inversion, Embedding, Hypernetwork, VAE)
Greyfolk99 2023. 3. 29. 02:42
Stable Diffusion 이미지 생성 모델을 얘기할 때 다음과 같은 모델 종류가 쓰이는데 하나씩 알아보자
Checkpoint :
뼈대가 되는 모델이라고 생각하면된다. Stable Diffusion 1.5를 예로 들 수 있다. 이게 없으면 결과물이 나올 수가 없다. Checkpoint Merge로 다른 Checkpoint와 섞을 수도 있다. 예를 들어 사실적 묘사 그림 형태에 특화된 모델과 비현실적인 묘사 그림 형태와 섞으면 조금 더 넓은 영역의 스타일의 그림도 생성해낼 수 있게 되지만, 좀 더 원하는 결과물을 나오게하는 조절이 조금 더 섬세해질 필요가 있는 듯 하다. 일종의 AI 모델끼리의 교배(?) 같은 느낌으로 생각하면된다.
다음은 Checkpoint와 같이 병행해서 쓰이는 보조 모델들의 종류들이다.
LoRA (Low-rank adaptation of large language models):
특정 낮은 rank의 행렬을 이용해 거대 모델(우리는 SD 모델)을 튜닝하는 방법을 명칭하는데 자세한 부분은 생략하고(나도 모름) 모델을 학습 시키는 리소스 효율적인 방법중에 하나로 알려져있다. 20~40개의 이미지로도 나쁘지 않은 결과물을 만들 수 있다. 아래는 우리집 강아지 사진으로 뽑아낸 그림들인데, 밖에서 찍은 사진은 하나도 학습시키지 않았는데도 아래 같은 결과물도 나올 수 있다. 다만 로라는 대부분의 경우에 피사체를 위주로 학습을 하기 때문에 만약 좀 더 비현실적인 그림을 뽑아내려면 강아지 관련 사진이 잘 학습이 잘 되어있는 모델과 잘 섞어야한다.
장점
- 원하는 스타일의 그림을 생성할 수 있을 만큼 영향력이 크다.
- 드림부스 기반이지만 용량이나 GPU의 요구성능이 그렇게 크거나 높지 않다.
- 동시에 여러 Lora를 적용할 수 있다. (적용 가중치도 조절할 수 있음)
단점
- 작은 데이터 셋으로도 그림 생성에 꽤 큰 영향력을 주기 때문에 학습 데이터를 신중히 선별해야하고 캡션을 잘 달아야한다.
Lora는 원래는 자연어 생성 모델에 쓰인 학습 방식이라고 들었는데 이미지 생성에도 꽤나 잘 먹히는 방법인 듯 싶다.
Embedding (Textual Inversion) :
Embedding 또는 Textual Inversion 이라고 불린다. 임베딩은 모델에 영향을 주지 않은 채 프롬프트를 추가 학습하는 방법이다. 추가적인 특징 하나 정도를 만들어 준다고 생각하면 된다. 다만 효과가 뚜렷하지 않은게 단점이라 크게 표시되지는 않지만, 피부에 점을 찍게 한다던가 하는 정도는 만들 수 있다.
장점
- 여러 임베딩을 한번에 적용할 수 있다.
- 여러 모델에서 자유롭게 사용할 수 있다.
- 용량이 가볍다.
단점
- 용량이 작고, 영향력이 작은 만큼
원하는 특징이 나타나지 않는 경우가 있다.
Hypernetwork
하이퍼 네트워크는 임베딩과 유사한 방법인데 로라가 뇌의 일부를 이식해서 뇌 자체를 변형시키는 것이라면 하이퍼 네트워크는 뇌를 바꾸는 것이 아니라 임베딩 처럼 '공부'를 시키는 것이라 볼 수 있다. 그래서 하이퍼 네트워크는 로라만큼의 영향력을 줄 수는 없지만 임베딩 보다는 더 큰 영향력을 행사할 수 있다.
임베딩이 학교에서 '공부'하는 것 정도라면 하이퍼 네트워크는 어렸을 때 부터 머리속에 '각인'시키는 느낌이다.
다만 물론 하이퍼 네트워크만의 장점도 분명 존재하겠지만 개인적인 생각은 로라가 더 좋은 것 같다.
VAE
vae는 그림을 보정해 주는 역할 정도로 보면 된다. 그림이 흐리게 나온다거나 남들이 뽑은 그림보다 퀄리티(번짐, 노이즈 등)이 떨어지는 것 같다면 vae 적용을 안해서일 수 있다.
'Programming & CS' 카테고리의 다른 글
[DB] InfluxDB란? 개념 및 구조 (1) | 2023.04.07 |
---|---|
[Redis] Redis & Kafka 사용 예제(E-commerce Use Case) (0) | 2023.03.25 |
[DB] Select * 과 Select Columns 차이 (1) | 2022.11.19 |
[컴공 지식] 자료 구조와 알고리즘 관계 (2) | 2022.08.18 |
- Total
- Today
- Yesterday
- 형상 관리
- tauri
- spring cloud config
- context7
- load balancing
- 모노레포
- 소프트웨어 방법론
- 회원 테이블
- Multirepo
- MLOps
- springboot
- Hypernetwork
- monorepo
- Polyrepo
- Spring cloud
- Embedding
- Kubernetes
- stable diffusion
- 토이 프로젝트
- 로드밸런서
- discord bot
- Textual Inversion
- spring boot
- 분산 처리
- Microservice
- load balance
- vae
- 디스코드 봇
- oauth2
- 멀티레포
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |