Post

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Adding Conditional Control to Text-to-Image Diffusion Models

๐Ÿ“ CVPR 2023

[๋…ผ๋ฌธ๋ฆฌ๋ทฐ] Adding Conditional Control to Text-to-Image Diffusion Models

[Paper] [GitHub]

fig0

Introduction

๊ธฐ์กด ์—ฐ๊ตฌ๋“ค์˜ ํ•œ๊ณ„์ 

  • ํ…์ŠคํŠธ๋งŒ์œผ๋กœ ํ”„๋กฌํ”„ํŠธ๋งŒ์œผ๋กœ๋Š” ์ž์„ธ, ๋ ˆ์ด์•„์›ƒ ๋“ฑ ๋ณต์žกํ•œ ์ด๋ฏธ์ง€ ๊ตฌ์„ฑ์„ ์ •๋ฐ€ํ•˜๊ฒŒ ์ œ์–ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

์ œ์•ˆํ•˜๋Š” ๋ฐฉ๋ฒ•

Stable Diffusion๊ณผ ๊ฐ™์€ ๋Œ€ํ˜• T2I ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ, ์™ธ๋ถ€ ์ด๋ฏธ์ง€ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์ •๋ฐ€ํ•œ ์ œ์–ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.

  • ๊ธฐ์กด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ณ ์ •ํ•˜๊ณ , ํ•™์Šต ๊ฐ€๋Šฅํ•œ ๋ณต์‚ฌ๋ณธ์ธ ์ธ์ฝ”๋”ฉ ๊ณ„์ธต์„ ์›๋ณธ๊ณผ zero convolution layer๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.
  • Zero convolution layer๋Š” ์ฒ˜์Œ์— ๊ฐ€์ค‘์น˜๊ฐ€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ convolution์„ ์˜๋ฏธํ•˜๋ฉฐ,

Methods

1. ControlNet

ControlNet์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€์ ์ธ ์กฐ๊ฑด์„ ์‹ ๊ฒฝ๋ง ๋‚ด๋ถ€์— ์ฃผ์ž…ํ•œ๋‹ค.

fig1
$\Theta$๋กœ ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋˜์–ด ์žˆ๋Š” ์‹ ๊ฒฝ๋ง ๋ธ”๋ก์„ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„ํ•œ๋‹ค.

\[\mathbf{y}=\mathcal{F}(\mathbf{x};\Theta)\]

์œ„์˜ ์ˆ˜์‹์—์„œ $\mathbf{x}$์™€ $\mathbf{y}$๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 2D feature์ด๋ฉฐ, $\mathbf{x}\in\mathbb{R}^{h\times w\times c}$ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

์‚ฌ์ „ํ•™์Šต๋œ ๋ธ”๋ก์— ControlNet์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด $\Theta_c$๋กœ ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋˜์–ด ์žˆ๋Š” trainable copy ๋ธ”๋ก์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด ๋ธ”๋ก์€ ์™ธ๋ถ€ ์กฐ๊ฑด $\mathbf{c}$๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค.

Trainable copy ๋ธ”๋ก์€ ์›๋ณธ๊ณผ zero convolution $\mathcal{Z}(\cdot;\cdot)$์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, zero convolution์€ ์ดˆ๊ธฐ์— ๊ฐ€์ค‘์น˜์™€ ๋ฐ”์ด์–ด์Šค๊ฐ€ ๋ชจ๋‘ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ 1x1 convolution์„ ์˜๋ฏธํ•œ๋‹ค.

ControlNet ๋ธ”๋ก์˜ ์ถœ๋ ฅ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

\[\mathbf{y}_c=\mathcal{F}(\mathbf{x};\Theta)+\mathcal{Z}\left( \mathcal{F}\left(\mathbf{x}+\mathcal{Z}(\mathbf{c;\Theta_{z1}});\Theta_C\right);\Theta_{z2} \right)\]

Zero convolution์— ์˜ํ•ด ์ดˆ๊ธฐ์—๋Š” $\mathbf{y}_c=\mathbf{y}$๊ฐ€ ๋œ๋‹ค. ์ด ๋•๋ถ„์— ๋ฌด์ž‘์œ„๋กœ ์ดˆ๊ธฐํ™”๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ํ•™์Šต ์ดˆ๊ธฐ์— trainable copy ๋ธ”๋ก์˜ hidden state์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค. ์ฆ‰, backbone์„ ๋ณดํ˜ธํ•˜๋ฉฐ, $\mathbf{c}$์˜ ์˜ํ–ฅ์„ ์ ์ง„์ ์œผ๋กœ ๋ฐ˜์˜ํ•˜๊ฒŒ ํ•œ๋‹ค.

2. ControlNet for Text-to-Image Diffusion

ControlNet์—๋„ Stable Diffusion์—์„œ์™€ ๋™์ผํ•˜๊ฒŒ Prompt $\mathbf{c}_t$์™€ timestep $\mathbf{t}$๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์ด๋•Œ, Text prompt๋Š” CLIP์œผ๋กœ ์ธ์ฝ”๋”ฉ๋˜๊ณ , timestep์€ positional encoding์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ๋‹ค.

fig2

ControlNet ๊ตฌ์กฐ๋Š” UNet์˜ ์ธ์ฝ”๋”์—๋งŒ ์ ์šฉ๋œ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š”, Stable Diffusion์˜ 12๊ฐœ์˜ Encoder Block๊ณผ 1๊ฐœ์˜ Middle Block์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ControlNet์œผ๋กœ ๋ณต์‚ฌํ•œ๋‹ค.

ControlNet์„ Stable Diffusion์— ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด, ๋จผ์ € 512x512 ํฌ๊ธฐ์˜ ์กฐ๊ฑด ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ 64x64์˜ latent ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด 4๊ฐœ์˜ convolution layer๋กœ ๊ตฌ์„ฑ๋œ ์ธ์ฝ”๋” $\mathcal{E}(\cdot)$์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ „์ฒด ๋ชจ๋ธ๊ณผ ํ•จ๊ป˜ ๊ณต๋™์œผ๋กœ ํ•™์Šต๋œ๋‹ค.

\[\mathbf{c}_f=\mathcal{E}(\mathbf{c}_i)\]

์œ„์˜ ์ˆ˜์‹์—์„œ $\mathbf{c}_f$๋Š” ControlNet์— ์ „๋‹ฌ๋˜๋Š” conditioning ๋ฒกํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

3. Training

์•„๋ž˜์˜ ์ˆ˜์‹์€ ControlNet์„ ํ™œ์šฉํ•ด ๋””ํ“จ์ „ ๋ชจ๋ธ์„ ํŒŒ์ธํŠœ๋‹ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ชฉ์ ํ•จ์ˆ˜์ด๋‹ค.

\[\mathcal{L}=\mathbb{E}_{\mathbf{z}_0,\mathbf{t},\mathbf{c}_t,\mathbf{c}_f,\epsilon\sim\mathcal{N}(0,1)} \left[\lVert \epsilon-\epsilon_\theta(\mathbf z_t,t,\mathbf c_t,\mathbf c_f) \rVert^2_2\right]\]

์‹ค์ œ ํ•™์Šต ๋•Œ๋Š” 50%์˜ ํ™•๋ฅ ๋กœ $\mathbf{c}_t$๋ฅผ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋Œ€์ฒดํ•˜์—ฌ, ๋ชจ๋ธ์ด ํ…์ŠคํŠธ ํ”„๋กฌํ”„ํŠธ ์—†์ด ์ด๋ฏธ์ง€ $\mathbf{c}_f$๋งŒ์œผ๋กœ๋„ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•˜๋„๋ก ์œ ๋„ํ•ด, ControlNet์˜ ๋Šฅ๋ ฅ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค.

์‹คํ—˜ ๊ฒฐ๊ณผ, ๋ชจ๋ธ์ด ์กฐ๊ฑด์„ ์ ์ง„์ ์œผ๋กœ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ‘์ž๊ธฐ ์กฐ๊ฑด์„ ๋”ฐ๋ฅด๋Š” ํ˜„์ƒ์„ ๋ฐœ๊ฒฌํ•˜์˜€๋‹ค.

fig3

์ €์ž๋“ค์€ ์œ„์™€ ๊ฐ™์€ ํ˜„์ƒ์„ ๊ธ‰๊ฒฉํ•œ ์ˆ˜๋ ด ํ˜„์ƒ(sudden convergence phenomenon)์ด๋ผ๊ณ  ๋ช…๋ช…ํ•˜์˜€๋‹ค.

4. Inference

Classifier-free guidance resolution weighting

Stable Diffusion์€ ๊ณ ํ’ˆ์งˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Classifier-Free Guidance๋ผ๋Š” ๊ธฐ๋ฒ•์— ์˜์กดํ•œ๋‹ค.

\[\epsilon_{\text{prd}}=\epsilon_{\text{uc}}+\beta_{\text{cfg}}(\epsilon_{\text{c}}-\epsilon_{\text{uc}})\]

CFG๋Š” ์œ„์™€ ๊ฐ™์ด ์ •์˜๋˜๋ฉฐ, $\epsilon_{\text{uc}}$๋Š” unconditional ์ถœ๋ ฅ, $\epsilon_{\text{c}}$๋Š” conditional ์ถœ๋ ฅ์„ ์˜๋ฏธํ•œ๋‹ค.

ControlNet์„ ํ†ตํ•ด ์กฐ๊ฑด ์ด๋ฏธ์ง€๊ฐ€ ์ถ”๊ฐ€๋  ๊ฒฝ์šฐ, ์ด ์ด๋ฏธ์ง€๋Š” $\epsilon_{\text{uc}}$์™€ $\epsilon_{\text{c}}$์— ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์˜ค์ง $\epsilon_{\text{c}}$์—๋งŒ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.

CFG guidance์˜ ์„ธ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๊ธฐ ์œ„ํ•ด CFG Resolution Weighting ๊ธฐ๋ฒ•์„ ๋„์ž…ํ•˜์˜€๋‹ค. ์ด๋Š” ์กฐ๊ฑด์„ ๋จผ์ € $\epsilon_{\text{c}}$์—๋งŒ ์ถ”๊ฐ€ํ•˜๊ณ , ControlNet๊ณผ Stable Diffusion ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์— ํ•ด์ƒ๋„ ๊ธฐ๋ฐ˜์˜ ๊ฐ€์ค‘์น˜ $w_i=\frac{64}{h_i}$๋ฅผ ๊ณฑํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์—†๋Š” ์ƒํ™ฉ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ฒฝ์šฐ์—์„œ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

fig4

  • (b): ์กฐ๊ฑด์„ $\epsilon_{\text{uc}}$์™€ $\epsilon_{\text{c}}$์— ๋ชจ๋‘ ์ถ”๊ฐ€ํ•˜๋ฉด CFG guidance๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.
  • (c): ์กฐ๊ฑด์„ $\epsilon_{\text{c}}$์—๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด guidance๊ฐ€ ๋งค์šฐ ๊ฐ•ํ•ด์ง„๋‹ค.
  • (d): CFG-RW์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ์˜ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์ด ๊ฐ€์žฅ ๋›ฐ์–ด๋‚˜๋‹ค.

Composing multiple ControlNets

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ๊ฑด ์ด๋ฏธ์ง€๋ฅผ ๋™์‹œ์— ์ ์šฉํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ, ๊ฐ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ControlNet์˜ ์ถœ๋ ฅ๋“ค์„ ๋‹จ์ˆœํžˆ Stable Diffusion์— ๋”ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.

fig5

Experiments

Qualitative Results

fig6

์œ„์˜ ๊ทธ๋ฆผ์€ ํ”„๋กฌํ”„ํŠธ ์—†์ด ๋‹ค์–‘ํ•œ condition์— ๋”ฐ๋ฅธ ๋ชจ๋ธ์˜ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

Ablation Study

fig7

Quantitative Evaluation

fig8

This post is licensed under CC BY 4.0 by the author.