[๋ ผ๋ฌธ๋ฆฌ๋ทฐ] Null-text Inversion for Editing Real Images using Guided Diffusion Models
๐ CVPR 2023
๐ Summary
์ค์ ์ด๋ฏธ์ง์ ๋์๋๋ caption์ latent space๋ก ํจ๊ณผ์ ์ผ๋ก invertํ๋ฉด์ ๋ชจ๋ธ์ editing ๋ฅ๋ ฅ์ ์ ์งํ๊ธฐ ์ํด 2๋จ๊ณ ์ ๊ทผ๋ฒ์ ์ฌ์ฉํ๋ค.
DDIM inversion์ ์ฌ์ฉํด์ noisy latent code ์ํ์ค๋ฅผ ๊ณ์ฐํจ์ผ๋ก์จ, ์ฃผ์ด์ง ์บก์ ์ ๊ธฐ์ค์ผ๋ก ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋๋ต์ ์ผ๋ก ๊ทผ์ฌํ๋ค.
์ดํ, ํด๋น ์ํ์ค๋ฅผ ๊ณ ์ ๋ pivot(๊ธฐ์ค)์ผ๋ก ์ฌ์ฉํ์ฌ pivot ๊ทผ์ฒ์์ ์ ๋ ฅ null-text ์๋ฒ ๋ฉ์ ์ต์ ํํ๋ค.
Null-text optimization์์๋ conditional ์บก์ ์ ๊ณ ์ ํ ์ฑ, unconditional ์๋ฒ ๋ฉ(null-text embedding)๋ง์ ์ต์ ํํ์ฌ ์ฌ๊ตฌ์ฑ ์ค๋ฅ๋ฅผ ๋ณด์ ํ๋ค.
Introduction
๊ธฐ์กด ์ฐ๊ตฌ์ ํ๊ณ์
- ๊ธฐ์กด ์ฐ๊ตฌ๋ค์ ํฉ์ฑ ์ด๋ฏธ์ง์ ๋ํ ํธ์ง์ ๊ฐ๋ฅํ์ง๋ง ์ค์ ์ด๋ฏธ์ง์ ๋ํ ํ ์คํธ ๊ธฐ๋ฐ ํธ์ง์ ์ฑ๋ฅ์ด ๋ถ์กฑํ๋ค.
์ด๋ฏธ์ง์ ํ ์คํธ ํ๋กฌํํธ๋ฅผ ์ญ์ผ๋ก ๋งคํํ๋ ๊ณผ์ (inversion)์ด ์ด๋ ค์ ๋ค.
์ฆ, ์ด๋ค ์ด๊ธฐ ๋ ธ์ด์ฆ ๋ฒกํฐ๊ฐ ์ฃผ์ด์ง ํ๋กฌํํธ์ ๊ฒฐํฉํ์ ๋ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์์ฑํด๋ด๋์ง ์ฐพ์์ผ ํ๋ฉฐ, ๋์์ ๋ชจ๋ธ์ ํธ์ง ๋ฅ๋ ฅ๋ ์ ์งํด์ผ ํ๋ค.
- Classifier-free guidance์์ ๋๋ถ๋ถ์ ๊ธฐ์กด ์ฐ๊ตฌ๋ conditional prediction์ ์ง์คํ๋ค.
- Classifier-free guidance๋ฅผ ์ ์ฉํ์ ๋, DDIM inversion์ ์ค์ฐจ๊ฐ ์ฆํญ๋์ด ์ฑ๋ฅ์ด ์ ํ๋๋ค.
์ ์ํ๋ ๋ฐฉ๋ฒ
์๋ณธ ๋ชจ๋ธ์ ํ ์คํธ ๊ธฐ๋ฐ ํธ์ง ๋ฅ๋ ฅ์ ์ ์งํ๋ฉด์, ๊ฑฐ์ ์๋ฒฝ์ ๊ฐ๊น์ด ์ฌ๊ตฌ์ฑ์ ๋ฌ์ฑํ ์ ์๋ ํจ๊ณผ์ ์ธ inversion ๊ธฐ๋ฒ์ ์ ์ํ๋ค.
- Diffusion Pivotal Inversion: ์ด๊ธฐ DDIM inversion์ผ๋ก ์ป์ ๋ ธ์ด์ฆํ๋ latent code๋ค์ pivot์ผ๋ก ์ฌ์ฉํ์ฌ, pivot ๊ทผ์ฒ์์ ์ต์ ํ๋ฅผ ์ํํ๋ค.
- Null-text optimization: ์ ์๋ค์ CFG์์ unconditionalํ ๋ถ๋ถ๋ ๊ฒฐ๊ณผ์ ์๋นํ ์ํฅ์ ๋ฏธ์น๋ค๋ ์ ์ ์ฃผ๋ชฉํ์ผ๋ฉฐ, ์ ๋ ฅ ์ด๋ฏธ์ง์ ํ๋กฌํํธ๋ฅผ ๋ณต์ํ๊ธฐ ์ํด unconditionalํ ๋ถ๋ถ์ ์๋ฒ ๋ฉ์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์๋ค.
์ ์ํ ๋ฐฉ๋ฒ์ ์ค์ ์ด๋ฏธ์ง์ ๋ํ P2P ๊ธฐ๋ฒ์ ์ ์ฉํ ์ ์๊ฒ ํ๋ ์ฒซ ๋ฒ์งธ ์ ๊ทผ์ด๋ฉฐ, editing๋ง๋ค ํ์ธํ๋์ ํ ํ์๊ฐ ์๋ค.
Background
Classifier-free guidance
[Classifier-Free Guidance] (CFG)์์๋ ์กฐ๊ฑด์ด ์๋ ์ํ์๋ ์์ธก์ ์ํํ๊ณ , ์ด๋ฅผ ์กฐ๊ฑด์ด ์๋ ์์ธก๊ณผ ๊ฒฐํฉํ์ฌ ์ต์ข ์์ธก๊ฐ์ ์์ฑํ๋ค.
$\varnothing=\psi(``~โ)$๋ฅผ null text์ ์๋ฒ ๋ฉ, $\omega$๋ฅผ guidance scale ํ๋ผ๋ฏธํฐ๋ผ๊ณ ํ ๋, CFG ์์ธก์ ์๋์ ๊ฐ์ด ์ ์๋๋ค.
\[\tilde{\epsilon}_\theta(z_t, t, \mathcal{C}, \varnothing) = w \cdot \epsilon_\theta(z_t, t, \mathcal{C}) + (1 - w) \cdot \epsilon_\theta(z_t, t, \varnothing)\]DDIM inversion
\[z_{t-1} = \sqrt{\frac{\alpha_{t-1}}{\alpha_t}} z_t + \left( \sqrt{\frac{1}{\alpha_{t-1}} - 1} - \sqrt{\frac{1}{\alpha_t} - 1} \right) \cdot \epsilon_\theta(z_t, t, \mathcal{C})\]Step ๊ฐ๊ฒฉ์ด ๋งค์ฐ ์๋ค๋ฉด ODE process๊ฐ ์ญ๋ฐฉํฅ์ผ๋ก ์ํ๋ ์ ์๋ค๋ ๊ฐ์ ํ์, DDIM ์ํ๋ง์ ์ํ ๊ฐ๋จํ inversion ๊ธฐ๋ฒ์ด ์ ์๋์๋ค.
DDIM inversion์ ์ ๊ณผ์ ์ ์ญ์ผ๋ก ์ํํ๋ ๊ฒ์ผ๋ก, ํ์ฐ ๊ณผ์ ์ด ์ญ๋ฐฉํฅ $z_0\to z_T$์ผ๋ก ์งํ๋๋ค.
\[z_{t+1} = \sqrt{\frac{\alpha_{t+1}}{\alpha_t}} z_t + \left( \sqrt{\frac{1}{\alpha_{t+1}} - 1} - \sqrt{\frac{1}{\alpha_t} - 1} \right) \cdot \epsilon_\theta(z_t, t, \mathcal{C})\]์ฆ, ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋์๋๋ latent ๋ ธ์ด์ฆ๋ฅผ ์ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ์ด์ฉํด ํ ์คํธ ๊ธฐ๋ฐ์ editing ๋ฑ์ ํ ์ ์๋ค.
- ๊ธฐ์กด ์ด๋ฏธ์ง $x_0$๋ฅผ latent $z_0$์ผ๋ก ์ธ์ฝ๋ฉํ๋ค.
- DDIM inversion์ ์ฌ์ฉํด์ $z_0$์ $z_T$๋ก ๋๋๋ฆฐ๋ค.
- ์๋ก์ด ํ ์คํธ ํ๋กฌํํธ์ ํจ๊ป $z_T$์์๋ถํฐ ๋ค์ ํ์ฐ ๊ณผ์ ์ ์ํํ์ฌ ์์ ๋ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค.
Methods
1. Pivotal Inversion
์ต๊ทผ inversion ์ฐ๊ตฌ๋ค์ ๋ ธ์ด์ฆ ๋ฒกํฐ๊ฐ ๋จ ํ๋์ ์ด๋ฏธ์ง์๋ง ๋งคํ๋๋๋ก ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค. ์ฆ, ์ด๋ค ๋ ธ์ด์ฆ ๋ฒกํฐ๊ฐ ์ด ์ด๋ฏธ์ง๋ฅผ ์ ์ฌ๊ตฌ์ฑํ๋์ง๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
์ถ๋ก ๋จ๊ณ์์๋ ์ค์ง ํ๋์ ๋ ธ์ด์ฆ ๋ฒกํฐ๋ง ์ฌ์ฉํด์ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ ํ์ํ ๊ฒ์ ํ๋์ ์ข์ ๋ ธ์ด์ฆ ๋ฒกํฐ์ด๋ค.
์ด ๋๋ฌธ์ ์ฌ๋ฌ ๋ ธ์ด์ฆ ๋ฒกํฐ๋ฅผ ์ฌ์ฉํด ์ต์ ํํ๋ ๊ฒ์ ๋นํจ์จ์ ์ด๋ฉฐ, ํ๋์ pivotal noise vector (์ต์ ๊ฐ๊ณผ ๊ฐ๊น์ด ๋ฒกํฐ)๋ฅผ ์ค์ฌ์ผ๋ก localํ ์ต์ ํ๋ฅผ ํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค.
DDIM inversion์ ๋งค step๋ง๋ค ์ค์ฐจ๊ฐ ์กฐ๊ธ์ฉ ๋์ ๋์ง๋ง, ์กฐ๊ฑด์ด ์๋ ๋ํจ์ ๋ชจ๋ธ์์๋ ๋์ ์ค์ฐจ๊ฐ ๋ฏธ๋ฏธํ๊ธฐ ๋๋ฌธ์ DDIM inversion์ด ์ ์๋ํ๋ค.
ํ์ง๋ง Stable Diffusion์ ์ด์ฉํด editing์ ํ๊ธฐ ์ํด์๋ ํฐ guidance scale $\omega>1$ ์ ์ฌ์ฉํ CFG๋ฅผ ์ ์ฉํด์ผํ๋ฉฐ, ์ด๋์ ํฐ guidance scale์ด ์ค์ฐจ๋ฅผ ์ฆํญ์ํจ๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์๋ค.
guidance๊ฐ ํฌํจ๋ ์ํ์์ DDIM inversion์ ์ํํ๋ฉด ์๊ฐ์ ์ํฐํฉํธ๊ฐ ์๊ธธ ๋ฟ๋ง ์๋๋ผ, ์ป์ด์ง ๋ ธ์ด์ฆ ๋ฒกํฐ๊ฐ ๊ฐ์ฐ์์ ๋ถํฌ๋ฅผ ๋ฒ์ด๋ ์ ์๋ค.
์ ์๋ค์ $\omega=1$์ผ ๋ DDIM inversion์ด ์๋ ์ด๋ฏธ์ง์ rough approximation์ ์ ๊ณตํ๋ฉฐ, highly editable(ํ ์คํธ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ด๋ฏธ์ง ๋ณํ๊ฐ ์ ๋๋ ์ํ)ํ์ง๋ง ์ ๋ฐํ์ง๋ ์๋ค๊ณ ํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก, reverse DDIM์ $z_0$์ $z_T^*$ ์ฌ์ด์ $T$ step ๊ถค์ ์ ๊ทธ๋ฆฐ๋ค.
์ฆ, high editability๋ฅผ ์ํด์๋ ํฐ guidance scale์ด ํ์์ ์ด์ง๋ง, ๋๋ฌด ํฐ $\omega$๋ ์๋ณธ ์ด๋ฏธ์ง์ ๋ํ ์ฌ๊ตฌ์ฑ ์ ํ๋๋ ๋จ์ด์ง ์ ์๋ค.
๋ฐ๋ผ์ $\omega=1$์ผ ๋์ ์ด๊ธฐ DDIM inversion์ pivot trajectory๋ก ์ ์ํ๊ณ , $\omega>1$์ ์ฌ์ฉํ์ฌ ์ด pivot ๊ฒฝ๋ก ์ฃผ๋ณ์์ ์ต์ ํ๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
์ฆ, ์ต์ ํ๋ ์๋ ์ด๋ฏธ์ง์์ ์ ์ฌ์ฑ์ ์ต๋ํํ๋ ๋์์ ์๋ฏธ ์๋ ํธ์ง ๋ฅ๋ ฅ๋ ์ ์งํ๋ ค๋ ๋ชฉ์ ์ ๊ฐ์ง๋ค.
์ค์ ๋ก๋ $t=T\to t=1$๊น์ง ๊ฐ step $t$์ ๋ํด ๊ฐ๋ณ์ ์ธ ์ต์ ํ๋ฅผ ์ํํ๋ฉฐ, ์ด๊ธฐ pivot ๊ฒฝ๋ก $z_T^,\dots,z_0^$์ ์ต๋ํ ๊ฐ๊น๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
\[\min\lVert z_{t-1}^*-z_{t-1} \rVert_2^2\]์์ ์์์์ $z_{t-1}$์ ํด๋น step์์์ ์ต์ ํ ๊ฒฐ๊ณผ์ด๋ค.
๋ชจ๋ $t<T$์ ๋ํด ์ต์ ํ๋ ๋ฐ๋์ ์ด์ step $t+1$์ ์ต์ ํ ๊ฒฐ๊ณผ๋ฅผ ์์์ ์ผ๋ก ์ผ์์ผ ํ๋ฉฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ต์ข ์ ์ผ๋ก ์์ฑ๋๋ ๊ฒฝ๋ก๊ฐ ์ถ๋ก ๋ ์ผ๊ด์ ์ด์ง ์๊ฒ ๋๋ค.
์ด๋ฌํ ๋ฐฉ์์ผ๋ก ์๋ก์ด ๊ฒฝ๋ก๊ฐ $z_0$ ๊ทผ์ฒ์์ ๋๋๋๋ก ์ ๋ํ๋ค.
2. Null-text Optimization
์ค์ ์ด๋ฏธ์ง๋ฅผ ๋ชจ๋ธ์ ๋๋ฉ์ธ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ์ต๊ทผ ์ฐ๊ตฌ๋ค์ ํ ์คํธ ์ธ์ฝ๋ฉ์ ์ต์ ํํ๊ฑฐ๋, ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ํ์ธํ๋ํ๊ฑฐ๋ ๋๋ ์ด ๋์ ํจ๊ป ์ํํ๊ธฐ๋ ํ๋ค.
- ์ด๋ฏธ์ง๋ง๋ค ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ํ์ธํ๋ํ๋ ๋ฐฉ์์ ์ ์ฒด ๋ชจ๋ธ์ ๋ณต์ ํด์ผ ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ๋นํจ์จ์ ์ด๋ฉฐ, ๋ชจ๋ editing์ ๋ํด์ ํ์ธํ๋์ ํ์ง ์์ผ๋ฉด ํน์ ํธ์ง์๋ง ์ค๋ฒํผํ ์ด ๋์ด์ ๋ชจ๋ธ์ prior์ ํธ์ง์ ์๋ฏธ๊ฐ ํผ์๋๋ค.
ํ ์คํธ ์๋ฒ ๋ฉ์ ์ง์ ์ต์ ํํ๋ ๋ฐฉ์์ ๋ชจ๋ธ์ด ์ฃผ์ด์ง ์ด๋ฏธ์ง์๋ง ์ ๋ง๊ฒ ํ ํฐ์ ์ต์ ํํ๊ธฐ ๋๋ฌธ์ ์์ฑ๋ ์๋ฒ ๋ฉ์ด ๊ธฐ์กด์ ๋จ์ด๋ค๊ณผ ์๋ฏธ์ ์ผ๋ก ์ฐ๊ฒฐ์ฑ์ด ์์ ์ ์๋ค.
๋ฐ๋ผ์ ํด์์ด ๋ถ๊ฐ๋ฅํ ํํ์ด ๋ง๋ค์ด์ง ์ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ์ง๊ด์ ์ธ Prompt-to-Prompt ํธ์ง์ด ์ด๋ ค์์ง๋ค.
๋ณธ ์ฐ๊ตฌ์์๋ ๊ฒฐ๊ณผ๊ฐ unconditional ์์ธก์ ์ํฅ์ ๋ง์ด ๋ฐ๋๋ค๋ CFG์ ํต์ฌ ํน์ง์ ํ์ฉํ์ฌ, ๊ธฐ๋ณธ null-text ์๋ฒ ๋ฉ์ null-text optimization์ด๋ผ๊ณ ํ๋ ์ต์ ํ๋ ์๋ฒ ๋ฉ์ผ๋ก ๊ต์ฒดํ๋ค.
์ฆ, ๋ชจ๋ธ์ ๊ฐ์ค์น์ conditional ํ ์คํธ ์๋ฒ ๋ฉ์ ๊ณ ์ ํ ์ํ๋ก ๊ฐ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํด null-text ์๋ฒ ๋ฉ์ผ๋ก ์ด๊ธฐํ๋์ด ์๋ unconditional ์๋ฒ ๋ฉ $\varnothing$๋ง ์ต์ ํํ๋ค.
์ ์๋ค์ ํ๋์ unconditional ์๋ฒ ๋ฉ $\varnothing$์ ์ต์ ํํ๋ ๋ฐฉ์์ global null-text optimization์ด๋ผ๊ณ ๋ช ๋ช ํ์ผ๋ฉฐ, ์คํ์ ํตํด ๊ฐ step $t$๋ง๋ค ์๋ก ๋ค๋ฅธ null-text ์๋ฒ ๋ฉ $\varnothing_t$๋ฅผ ์ต์ ํํ๋ ๋ฐฉ์์ด ์ฌ๊ตฌ์ฑ ํ์ง์ ํฅ์์ํจ๋ค๋ ๊ฒ์ ํ์ธํ์๋ค.
๋ฐ๋ผ์ $\lbrace\varnothing_t\rbrace_{t=1}^T$๋ฅผ ์ฌ์ฉํ๊ณ , ๊ฐ step์ $\varnothing_t$๋ ์ด์ step์ $\varnothing_{t-1}$๋ก ์ด๊ธฐํ๋๋ค.
์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ๊ฐ๋ค.
- DDIM inversion ($\omega=1$)์ ์ํํ์ฌ noisy latent code ์ํ์ค์ธ $z_T^,\dots,z_0^$์ ์ป๋๋ค. ($z_0^*=z_0$)
- $\bar{z}_T=z_t$๋ก ์ด๊ธฐํํ๋ค.
$\omega=7.5$๋ก ๊ณ ์ ํ๊ณ ๊ฐ step์ ๋ํด ์๋์ ์ต์ ํ๋ฅผ ์ํํ๋ค.
\[\underset{\varnothing_t}{\min}~ \lVert z_{t-1}^*-z_{t-1}(\bar{z}_t,\varnothing_t,\mathcal{C})\rVert_2^2\]๊ฐ step์ด ๋๋ ๋๋ง๋ค ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
\[\bar{z}_{t-1}=z_{t-1}(\bar{z}_t,\varnothing_t,\mathcal{C})\]





