230221
✨ Stable Diffusion ✨
2022년 8월 Stability AI에서 오픈소스 라이선스로 배포한
text-to-image 인공지능 모델이다.
text2img에 주로 사용되지만
inpainting, outpainting과 같은
다른 작업에도 적용 가능 하다.
가장 큰 강점은
Open AI의 Dall-e나 구글의 Imagen과 같은기존 text-to-image와 다르게
컴퓨터 사용 리소스를 대폭 줄여8GB 이상의 VRAM을 가진 컴퓨터에서도 돌릴 수 있고
오픈소스. 즉, 무료다.
🔥 Model Architecture
Stable Diffusion은
LDM(Latent Diffusion Model)이라고 하는
확산 모델(DM)의 일종을 사용한다.
💡 Latent Diffusion
이미지에 노이즈를 주고
이를 다시 역산하여
신경망에 노이즈 이미지에서
일반 이미지를 복원시키도록 학습 시킨 후
신경망에 노이즈만 들어있는 이미지와
적절한 힌트를 주면 맞는 이미지를 출력하는것.
구조는 크게 3가지 인공신경망으로 구성되어있다.
1️⃣ Latent Diffusion - CLIP
유저가 텍스트를 입력하면
텍스트 인코더(CLIP)가
유저의 텍스트를 토큰(Token)이라는
UNet이 알아 들을 수 있는 언어(latent vector)로 변환
"text" ▶ Tokeniz ▶ latent vector = text embedding
2️⃣ UNet
토큰을 기반으로
무작위로 생성된 노이즈를 디노이징하는 방식이다.
디노이징을 반복하다 보면
제대로 된 이미지가 생성
💡 디노이징
💡 Scheduler
denoise를 반복하기 전에
어떤 방식(노이즈 세기, 종류, 확률 편미분 방정식 이용)으로
처리하고 반복하느냐를 결정하는 것
✔ DDPM, DDIM, PNDM,
Euler, Euler a, DPM++ 등이 있다.
3️⃣ VAE(Variational Auto Encoder)
VAE는 픽셀 공간에서
더 작은 차원의 잠재 공간으로 이미지를 압축하여
이미지의 근본적인 의미론적 의미를 캡처한다.
# 위 방식으로 효율적인 고해상도의 이미지를 얻는다.
💡 VAE의 역할
Encoder : 어떤 값을 수학적 원리를 통해 특징을 추출하여 학습
Decoder : 임의의 값 z(특징에 대한 latent vector)가 주어지면
그 값을 바탕으로 원래 데이터로 복원
Stable diffusion의 이 부분에서
Latent Diffusion Model 과
Diffusion Model 이냐의 차이 발생
Stable diffusion의 경우
VAE를 통해 만든
latent vector를 사용해서
U-Net을 거쳐
encode-decode 과정을 거치고
이를 통해 해상도를 높인다.
'Hello MLop > DL' 카테고리의 다른 글
NLP_Transfomer (0) | 2023.02.11 |
---|---|
NLP_어텐션 메커니즘(Attention Mechanism) (0) | 2023.01.23 |
NLP_RNN을 이용한 Encoder-Decoder (0) | 2023.01.23 |
MLop_DL_LSTM 실습 (0) | 2022.12.18 |
MLop_DL_RNN 실습 (0) | 2022.12.17 |