소형 VAE로 압축한 잠재공간에서 도는 latent diffusion — 'Stable'의 핵심
지금까지는 64×64 픽셀 위에서 노이즈를 1000번 지웠어요. 그런데 진짜 Stable Diffusion은 픽셀이 아니라 훨씬 작게 압축한 '잠재(latent)' 공간에서 디퓨전을 돌립니다. 그래서 빠르고 가벼워요.
VAE(변이형 오토인코더)는 그림을 작은 요약본으로 줄이는 인코더와, 요약본을 다시 그림으로 펼치는 디코더로 이뤄져요. 먼저 이 압축/복원을 직접 학습시켰습니다.
64×64×3 = 12,288숫자원본 픽셀8×8×4 = 256숫자압축된 요약본48.0배이만큼 다룰 숫자가 줄어듦1.4M압축/복원 신경망
이제 디퓨전을 픽셀이 아니라 작은 잠재(8×8×4) 위에서 합니다. 과정은 똑같아요 — 잠재에 노이즈를 더했다 지우는 법을 배웁니다. 다만 다룰 숫자가 훨씬 적어 가볍죠. 생성이 끝나면 VAE 디코더가 잠재를 진짜 그림으로 펼칩니다.
이게 바로 Stable Diffusion의 뼈대예요: VAE + 잠재 디퓨전 + (클래스/텍스트) 조건. 우리는 이 셋을 전부 작게, 바닥부터 만들어 붙였습니다.
클래스를 지정해 잠재공간에서 그린 뒤 디코더로 펼친 그림들이에요.
① 노이즈를 더했다 지우는 디퓨전, ② 원하는 종류를 그리는 조건부 + CFG, ③ 작은 잠재공간에서 도는 latent diffusion + VAE. 이 셋을 합치면 진짜 Stable Diffusion과 같은 구조의 작은 모델이 됩니다 — 차량·동물 13종 전용으로요.
바닥부터 직접 구현 · diffusers 미사용 · 모든 숫자는 실제 실행 결과