* 파랑은 후에 공부할 것들
Stable Diffusion (안정적 확산)
forward diffusion - 이미지에 무작위 노이즈만 남을 때까지 가우스 노이즈를 점진적으로 추가한다. 결국 어떤 이미지인지 식별할 수 없다.
reverse diffusion - forward diffusion을 점진적으로 취소한다. 개와 고양이로 학습했다면 취소하는 과정은 개 또는 고양이가 나타나는 방향(drift)으로 흘러갈 것이다.
Stable Diffusion 구조
Latent Space(잠재 공간)
512x512, 1024x1024와 같은 사이즈를 그대로 사용하면 연산이 너무 오래 걸린다. 그래서
잠재 공간으로 이미지를 낮은 차원으로 압축한 후 연산을 진행한다. (낮은 차원이란게 무엇인지)
암튼 압축되는 것인데 잠재 이미지가 필수적 정보를 잃지 않았다고 할 수 있을까?
자연적 이미지는 규칙성이 높다는 것에 근거해서 가능하다.(manifold hypothesis)
예시로 일반적인 인체 구조는 얼굴은 눈,코,입 사이에 특정한 공간적 관계가 존재하고 팔은 몸통과 이어져 있을 것이다.
이미지 해상도는 잠재 이미지 텐서의 크기에 반영된다.
512x512 에서 잠재 이미지의 크기는 4x64x64 이고 (왜 이런 숫자인지)
768x512 에서 잠재 이미지의 크기는 4x96x64
그래서 크기가 큰 이미지를 생성하려면 시간이 오래 걸리고 VRAM을 더 많이 필요한다.
VAE(Variational Auto Encoder, 가변 자동 인코더)
이미지를 잠재 공간으로 압축하고 복원하는 기법(역할)이다.
자연적 이미지는 규칙성이 높다고 하였지만 그래도 정보는 손실된다. 그래서 세부적인 feature를 놓치게 되는데 세부 조정한 VAE decoder는 손실된 세부적인 부분을 복원할 수 있다. (VAE decoder의 무엇을 세부 조정하는지?)
U-Net
추가된 노이즈를 예측하고 지운다.
이 과정에서 몇번의 스텝으로, 각 스텝에 얼마만큼의 노이즈를 지울 것인지 정해두는데 이 분포를 결정하는 것을 noise schedule 이라 한다. (각 단계에서 동일한 양만큼 제거하도록 할 수도 있다.)
이렇게 노이즈를 제거한 잠재 이미지를 VAE decoder로 복원하면 이미지가 생성된다.
(세그멘테이션 맵을 만드는 U-Net 모델에 대해)
(cross attention을 사용하는 U-Net에 대해)
CLIP, Conditioning등 이어서 작성
참고 자료
https://www.internetmap.kr/entry/Basic-Theory-of-Stable-Diffusion
https://haandol.github.io/2023/07/16/stable-diffusion-for-developers.html#fn:7
'AI,ML,Data > Stable Diffusion' 카테고리의 다른 글
CLIP (0) | 2023.11.26 |
---|