๐น Stable Diffusion ๊ธฐ๋ณธ ํ์ต ๊ณผ์
Stable Diffusion์ ๊ธฐ๋ณธ์ ์ผ๋ก **๋
ธ์ด์ฆ ์ถ๊ฐ-์ ๊ฑฐ(์ญ๋ฐฉํฅ ๊ณผ์ )**๋ก ํ์ต๋ ๊ฑด ๋ง์ต๋๋ค.
์ด๋, ๊ทธ๋ฅ ์ด๋ฏธ์ง์ ๋
ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ ์๋๋ผ, **ํ
์คํธ ํ๋กฌํํธ(๋ฌธ์ฅ)**๋ฅผ ์กฐ๊ฑด์ผ๋ก ๊ฐ์ด ์ค๋๋ค.
1. ํ ์คํธ ์๋ฒ ๋ฉ ์ค๋น
- ๋จผ์ , ์ด๋ฏธ์ง์ ๋ํ ์ค๋ช (์บก์ ) ๋ฌธ์ฅ์ ์ค๋นํฉ๋๋ค. ์: “a cat sitting on a chair”
- ์ด ๋ฌธ์ฅ์ ํ ์คํธ ์ธ์ฝ๋(์ฃผ๋ก CLIP์ ํ ์คํธ ์ธ์ฝ๋)๋ฅผ ์ด์ฉํด **๋ฒกํฐ(์๋ฒ ๋ฉ)**๋ก ๋ณํํฉ๋๋ค.
- ์ด ๋ฒกํฐ๊ฐ ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ๋ ๊ฐ์ด๋ ์ญํ ์ ํ๊ฒ ๋ฉ๋๋ค.
2. ์ด๋ฏธ์ง์ ์ ์ ๋ ธ์ด์ฆ ์ถ๊ฐ (forward process)
- ๊ณ ์์ด ์ฌ์ง์ ์ ์ง์ ์ผ๋ก ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํด, ์ ์ ์์๋ณผ ์ ์๋ ์ด๋ฏธ์ง๋ก ๋ง๋ญ๋๋ค.
- ๊ฐ ๋จ๊ณ์์ “์ด ์ ๋ ๋ ธ์ด์ฆ๊ฐ ์ถ๊ฐ๋์ ๋, ์๋ ์ด๋ฏธ์ง๋ก ๋ณต์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น?”๋ฅผ ํ์ตํ๋๋ก ๋ง๋ญ๋๋ค.
3. ํ ์คํธ-์ด๋ฏธ์ง ์ฐ๊ฒฐ ํ์ต (conditioning)
- ์ฌ๊ธฐ์ ์ค์ํ ํฌ์ธํธ๋:
- ๋จ์ํ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋ ๊ฑธ ํ์ตํ๋ ๊ฒ ์๋๋ผ, “ํ ์คํธ ์ค๋ช ์ ๋ง๊ฒ” ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋๋ก ํ์ตํ๋ค๋ ๊ฑฐ์์.
- ์ฆ, ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋คํธ์ํฌ๊ฐ ์ด๋ฏธ์ง์ ํน์ง๋ฟ๋ง ์๋๋ผ ํ ์คํธ ์๋ฒ ๋ฉ๋ ์ ๋ ฅ์ผ๋ก ๋ฐ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
- “๊ณ ์์ด”๋ผ๋ ํ ์คํธ๊ฐ ์ฃผ์ด์ก์ ๋, ๊ณ ์์ด์ ์ด์ธ๋ฆฌ๋ ๋ชจ์๊ณผ ์ง๊ฐ์ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ํ๋ จ๋ฉ๋๋ค.
๐น Text-to-image ํ์ต ์์ฝ
๊ณผ์ | ์ค๋ช |
---|---|
1. ํ ์คํธ ์ค๋น | ์ด๋ฏธ์ง์ ๋ง๋ ์บก์ ์ค๋น (“a cat on a chair”) |
2. ํ ์คํธ ์๋ฒ ๋ฉ | CLIP ๋ฑ์ผ๋ก ํ ์คํธ๋ฅผ ๋ฒกํฐ๋ก ๋ณํ |
3. ์ด๋ฏธ์ง ๋ ธ์ด์ฆํ | ๊นจ๋ํ ์ด๋ฏธ์ง์ ์ ์ง์ ์ผ๋ก ๋ ธ์ด์ฆ ์ถ๊ฐ |
4. ๋ ธ์ด์ฆ ์ ๊ฑฐ ํ์ต | ๋ ธ์ด์ฆ ์ ๊ฑฐํ ๋, ํ ์คํธ ์๋ฒ ๋ฉ์ ์ฐธ๊ณ ํ๋๋ก ํ์ต |
5. ํ ์คํธ-์ด๋ฏธ์ง ๋งคํ ๊ฐํ | “์ด ํ ์คํธ๋ฉด ์ด๋ฐ ์ด๋ฏธ์ง”๋ผ๋ ์ฐ๊ด์ฑ ํ์ต |
๐น ํต์ฌ ํฌ์ธํธ
โ ๊ธฐ์กด ๋ํจ์ ๋ชจ๋ธ๊ณผ ์ฐจ์ด
- ์๋ ๋ํจ์ ๋ชจ๋ธ์ ๊ทธ๋ฅ ์ด๋ฏธ์ง๋ง ๋ณด๊ณ ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋ ๋ชจ๋ธ์ด์์ด์.
- Stable Diffusion์ ๊ฑฐ๊ธฐ์ “ํ ์คํธ ์ค๋ช ”์ด๋ผ๋ ์กฐ๊ฑด์ ์ถ๊ฐํด์, ์ํ๋ ์ด๋ฏธ์ง๋ก ์ ๋ํ๋ ๋ฐฉ์์ ๋๋ค.
โ ๊ฒฐ๊ตญ Text-to-Image๋?
- ํ ์คํธ์ ์ด๋ฏธ์ง์ ๊ด๊ณ๋ฅผ ๋ฐฐ์ฐ๋ ๊ณผ์ +
- ๋ ธ์ด์ฆ ์ ๊ฑฐ๋ฅผ ๋ฐฐ์ฐ๋ ๊ณผ์ ์ด ๋์์ ์ผ์ด๋ ๊ฑฐ์์.
๐น ์ฐธ๊ณ
์ด ๊ณผ์ ์ ํํ **์กฐ๊ฑด๋ถ ํ๋ฅ ๋ชจ๋ธ(Conditional Diffusion Process)**๋ก ๋ถ๋ฆฝ๋๋ค.
Stable Diffusion์ CLIP ํ
์คํธ ์ธ์ฝ๋ + U-Net ๋
ธ์ด์ฆ ์ ๊ฑฐ ๋คํธ์ํฌ๋ฅผ ๊ฒฐํฉํด ์ด๊ฑธ ๊ตฌํํ ๊ฑฐ๊ณ ์.
์์ฝํ์๋ฉด:
“ํ ์คํธ์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋๋ ๋ฒ”์ ๋ฐฐ์ฐ๋ ๊ฒ๊ณผ
“๋ ธ์ด์ฆ์์ ํ ์คํธ์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ณต์ํ๋ ๋ฒ”์ ๋์์ ํ๋ จํ ๊ฒ!
์ข์ต๋๋ค! ๊ทธ๋ผ Stable Diffusion ๋ฐ Text-to-Image ๋ํจ์ ๋ชจ๋ธ์ด ๋ ผ๋ฌธ ๋ ๋ฒจ์์ ์ด๋ป๊ฒ ํ์ต๋๋์ง, ํต์ฌ ์์์ ํฌํจํด ๋ํ ์ผํ๊ฒ ์ค๋ช ํด๋๋ฆด๊ฒ์. ๐
๐ 1. ๊ธฐ๋ณธ ๊ฐ๋ : ํ์ฐ ํ๋ฅ ๋ชจ๋ธ (Diffusion Probabilistic Models)
์ ๋ฐฉํฅ ๊ณผ์ (Forward Process)
์ด๋ฏธ์ง x0x_0์ ์ ์ง์ ์ผ๋ก ๋
ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ๋ ๊ณผ์ ์
๋๋ค.
์๊ฐ tt์ ๋ฐ๋ฅธ ๋
ธ์ด์ฆํ๋ ์๋์ฒ๋ผ ์ ์๋ฉ๋๋ค. q(xtโฃxtโ1)=N(xt;1โฮฒtโ
xtโ1,ฮฒtโ
I)q(x_t \mid x_{t-1}) = \mathcal{N}(x_t ; \sqrt{1 – \beta_t} \cdot x_{t-1}, \beta_t \cdot I)
- ฮฒt\beta_t: ์๊ฐ tt์ ๋ฐ๋ฅธ ๋ ธ์ด์ฆ ์ค์ผ์ค (์์ ๊ฐ๋ถํฐ ์์ํด ์ ์ ์ปค์ง)
- ์ด ๊ณผ์ ์ ์ฃผ์ด์ง ๊นจ๋ํ ์ด๋ฏธ์ง x0x_0์์ ์ ์ง์ ์ผ๋ก ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํด xTx_T์ ๋๋ฌํ๋ ๋ง๋ฅด์ฝํ ์ฒด์ธ.
์ญ๋ฐฉํฅ ๊ณผ์ (Reverse Process)
๋ชฉํ๋ ๋
ธ์ด์ฆ xTx_T์์ ์ ์ง์ ์ผ๋ก ๋
ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํด ์๋ณธ ์ด๋ฏธ์ง๋ก ๋ณต์ํ๋ ๊ฒ.
์ญ๋ฐฉํฅ ํ๋ฅ ์ ๋ค์์ฒ๋ผ ์ ์: pฮธ(xtโ1โฃxt)p_\theta(x_{t-1} \mid x_t)
์ด pฮธp_\theta๋ฅผ ์์ธกํ๋ ๋ชจ๋ธ์ด ๋ฐ๋ก U-Net ๊ฐ์ ๋ํจ์ ๋ชจ๋ธ ์ํคํ
์ฒ์
๋๋ค.
(๋
ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ๋ ๋คํธ์ํฌ)
๐ 2. Text-to-Image: ์กฐ๊ฑด๋ถ ๋ํจ์ (Conditional Diffusion)
์กฐ๊ฑด ์ถ๊ฐํ๊ธฐ
์์ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ชจ๋ธ pฮธp_\theta๋ ๋จ์ํ ์ด๋ฏธ์ง๋ง ๋ณด๋ ๊ฒ ์๋๋ผ, “ํ ์คํธ ์ค๋ช ”์ด๋ผ๋ ์กฐ๊ฑด yy๋ ํจ๊ป ๋ฐ๋๋ก ํ์ต๋ฉ๋๋ค. pฮธ(xtโ1โฃxt,y)p_\theta(x_{t-1} \mid x_t, y)
- yy๋ ํ ์คํธ ํ๋กฌํํธ (์: “a cat on a chair”)
- ์ด ์กฐ๊ฑด yy๋ ๋ณดํต CLIP ํ ์คํธ ์ธ์ฝ๋๋ฅผ ํตํด ์๋ฒ ๋ฉ ๋ฒกํฐ๋ก ๋ณํ
- ์ฆ, ๋ ธ์ด์ฆ๋ฅผ ์ ๊ฑฐํ ๋, ํ ์คํธ ์ ๋ณด๊ฐ “์ด ์ด๋ฏธ์ง์ ๊ณ ์์ด๋ฅผ ๊ทธ๋ ค์ผ ํด”๋ผ๋ ์ ํธ๋ฅผ ์ฃผ๋ ์ญํ
ํ์ต ์์ค ํจ์ (ELBO ๊ธฐ๋ฐ)
Stable Diffusion ๋ฐ ๋๋ถ๋ถ์ ๋ํจ์ ๋ชจ๋ธ์ ๋ณ๋ถ ์ถ๋ก ๊ธฐ๋ฐ ํ์ต์ ํฉ๋๋ค. ๋ชฉํ๋ ์ค์ ์ญ๋ฐฉํฅ ๋ถํฌ qq์ ๋ชจ๋ธ ๋ถํฌ pฮธp_\theta์ Kullback-Leibler ๋ฐ์ฐ์ ์ต์ํํ๋ ๊ฒ. L=Eq[โt=1TDKL(q(xtโ1โฃxt,x0)โฅpฮธ(xtโ1โฃxt,y))]L = \mathbb{E}_q \left[ \sum_{t=1}^T D_{KL}(q(x_{t-1} \mid x_t, x_0) \| p_\theta(x_{t-1} \mid x_t, y)) \right]
- ๊ฐ ์๊ฐ ์คํ tt๋ง๋ค KL ๋ฐ์ฐ์ผ๋ก ์ ๊ทํ๋ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๊ณผ์ ๊ณผ ๋ชจ๋ธ์ ์์ธก์ ๋น๊ต
- ์ค์ ํ๋ จ์์๋ ์ ์ ์ฒด ELBO ๋์ , ๋ ธ์ด์ฆ ์์ธก ์์ค์ ์๋๋ค.
๋ ธ์ด์ฆ ์์ธก ๋ชฉํ๋ก ๋จ์ํ (Noise Prediction Objective)
๋ํจ์ ํ์ต์ ํต์ฌ์ “๋ ธ์ด์ฆ ์์ฒด๋ฅผ ์์ธกํ๋ ๊ฒ”์ผ๋ก ๋จ์ํํ ์ ์์ต๋๋ค. ์ด๋ฏธ์ง x0x_0์์ ๋ ธ์ด์ฆํ๋ ์ด๋ฏธ์ง xtx_t๋ฅผ ๋ง๋ ํ, ๋ชจ๋ธ์ ๋ค์์ ์์ธก: ฯตฮธ(xt,t,y)\epsilon_\theta(x_t, t, y)
- xtx_t: ์๊ฐ tt์์์ ๋ ธ์ด์ฆ ์ด๋ฏธ์ง
- yy: ํ ์คํธ ์กฐ๊ฑด
- ฯตฮธ\epsilon_\theta: ํ์ฌ ๋ ธ์ด์ฆ์ ํฌ๊ธฐ์ ๋ฐฉํฅ์ ์์ธกํ๋ ๋ชจ๋ธ (U-Net)
ํ์ต ์์ค (์ค์ ํ์ต ์ ์ฌ์ฉํ๋ ๊ฒ)
L=Ex0,t,ฯต[โฅฯตโฯตฮธ(xt,t,y)โฅ2]L = \mathbb{E}_{x_0, t, \epsilon} \left[ \|\epsilon – \epsilon_\theta(x_t, t, y)\|^2 \right]
- ์ค์ ๋ ธ์ด์ฆ ฯต\epsilon๊ณผ ๋ชจ๋ธ์ด ์์ธกํ ๋ ธ์ด์ฆ ฯตฮธ\epsilon_\theta์ MSE ์์ค
- ํ ์คํธ yy๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ ํต์ฌ
- ๋ชจ๋ธ์ ์ด ์์ค์ ์ต์ํํ๋ฉด์, ํ ์คํธ์ ๋ง๋ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ฐฉํฅ์ ๋ฐฐ์ฐ๊ฒ ๋จ
๐ 3. Text Conditioning ๊ตฌ์ฒด ๋ฉ์ปค๋์ฆ
ํ ์คํธ ์๋ฒ ๋ฉ
- ํ ์คํธ ํ๋กฌํํธ yy๋ ๋ณดํต CLIP ํ ์คํธ ์ธ์ฝ๋๋ฅผ ํตํด ๋ฒกํฐ E(y)E(y)๋ก ๋ณํ
- ์ด ์๋ฒ ๋ฉ์ ๋ํจ์ ๋ชจ๋ธ์ ๋ชจ๋ U-Net ๋ธ๋ก์ Cross-Attention ํํ๋ก ๋ค์ด๊ฐ
Cross-Attention
๊ฐ ๋ํจ์ ๋ธ๋ก์์ ๋ค์๊ณผ ๊ฐ์ด ํ ์คํธ ์ ๋ณด๋ฅผ ์ด๋ฏธ์ง์ ์ฃผ์ : Attention(Q,K,V)=softmax(QKTd)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d}}\right)V
- QQ: ์ด๋ฏธ์ง์ ์ค๊ฐ ํํ
- KK, VV: ํ ์คํธ ์๋ฒ ๋ฉ์์ ์จ ํ ํฐ ํํ
- ํ ์คํธ๊ฐ ์ด๋ฏธ์ง์ ์ด๋ค ์์ญ์ ์ํฅ์ ์ค์ง๋ฅผ ํ์ตํ๋ ๊ตฌ์กฐ
๐ 4. Stable Diffusion์ Latent Diffusion Trick
Latent ๊ณต๊ฐ์์ ๋ํจ์ ์ํ
- Stable Diffusion์ ํฝ์ ๊ณต๊ฐ์์ ์ง์ ๋ ธ์ด์ฆ ์ฒ๋ฆฌ๊ฐ ์๋๋ผ, VAE๋ก ์ธ์ฝ๋ฉํ latent ๊ณต๊ฐ์์ ๋ํจ์ ์งํ
- ํ๋ จ ๋ฐ์ดํฐ๋ (์ด๋ฏธ์ง, ์บก์ ) ์์ด์ง๋ง, ์ด๋ฏธ์ง ๋์ ์์ถ๋ latent zz๋ฅผ ์ฌ์ฉ
z=Encoder(x)z = \text{Encoder}(x) pฮธ(ztโ1โฃzt,y)p_\theta(z_{t-1} \mid z_t, y)
- ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ๋ฐ ํ๋ จ ์๋ ํฅ์ ํจ๊ณผ
๐ 5. ์ ๋ฆฌ: ์ ์ฒด ํ์ต ํ์ดํ๋ผ์ธ
- (์ด๋ฏธ์ง, ํ ์คํธ ์บก์ ) ์ ์์ง
- ์ด๋ฏธ์ง โ VAE Encoder โ latent ๋ฒกํฐ zz
- ํ ์คํธ โ CLIP โ ํ ์คํธ ์๋ฒ ๋ฉ E(y)E(y)
- zz์ forward process๋ก ๋ ธ์ด์ฆ ์ถ๊ฐ
- U-Net์ด ztz_t์์ ๋ ธ์ด์ฆ ฯต\epsilon ์์ธก, ํ ์คํธ ์๋ฒ ๋ฉ์ผ๋ก ์กฐ๊ฑด๋ถ ์ ์ด
- ๋ ธ์ด์ฆ ์์ธก ์์ค๋ก ํ์ต
๐ 6. ์ฐธ๊ณ ๋ ผ๋ฌธ
- DDPM: Denoising Diffusion Probabilistic Models (Ho et al., 2020)
- GLIDE: Guided Language to Image Diffusion (Nichol et al., 2021)
- Latent Diffusion Models (LDM) (Rombach et al., 2022) – Stable Diffusion์ ๊ธฐ๋ฐ ๋ ผ๋ฌธ
- https://arxiv.org/abs/2112.10752 (LDM ๊ณต์ ๋ ผ๋ฌธ)
๐ 7. ์์ฝ ํ ์ค
Stable Diffusion์ ๋ ธ์ด์ฆ ์ ๊ฑฐ ๋ชจ๋ธ์ ํ ์คํธ ์กฐ๊ฑด๊ณผ ํจ๊ป ํ์ตํ์ฌ, “ํ ์คํธ์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ ธ์ด์ฆ์์ ๋ณต์ํ๋ ๋ฒ”์ ๋ฐฐ์ฐ๋ ๊ตฌ์กฐ
๋ต๊ธ ๋จ๊ธฐ๊ธฐ