『 Adding Conditional Control to Text-to-Image Diffusion Models. ICCV. 2023. 』
생성 모델을 사용하여 사람 이미지를 만들다보면 드는 생각이 있다. "생성 모델을 활용하여 내가 원하는 포즈를 가진 사람의 이미지를 만들 수 있을까?" 이번 논문은 그 해답에 대한 방법을 소개하는 ControlNet 논문이다. 사실 사용자가 원하는 Condition이라는 것이 텍스트건 이미지건 잘 반영되기 쉽지 않다. ChatGPT를 쓰더라도 사람의 검토가 필요하고, 원하는 글자를 생성 이미지로 만들어달라고 하더라도 아직 완벽한 이미지를 만들지 못하는 것이 현실이다.
이러한 상황에서 Low-level의 Condition일지라도 이미지에 사용자가 원하는 정보를 반영해준다는 것이 이번 논문이 가지는 가장 큰 의미일 것이다. 비슷한 Task의 논문들을 읽기 전, 가장 읽어보고 싶었던 ControlNet을 잘 정리해보고자 한다.
Github
https://github.com/lllyasviel/ControlNet
0. Abstract
본 논문은 대규모로 Pretrain된 Text-Image Diffusion 모델에 Spatial Conditioning Control을 추가한 ControlNet 모델을 제안한다. ControlNet은 대규모 Diffusion 모델의 Deep & Robust한 Encoding Layer를 강력한 Backbone으로 사용하여 다양한 Conditional Control을 학습한다. 이 네트워크는 Zero Convolution으로 연결되어 있어 파라미터를 0에서부터 성장시켜 Fine-Tuning 단계에서 유해한 Noise가 영향을 미치지 않도록 만든다.
본 논문에서는 Stable Diffusion을 사용하여 다양한 Conditional Control을 테스트하였다.
1. Introduction
Text-Image Diffusion 모델은 현재 Prompt만으로 이미지를 생성할 수 있지만, 구체적인 이미지의 Spatial Composition을 제어하기는 어렵다. 본 논문은 이러한 기존 모델들의 한계점을 극복하고자 하였고, 아래의 질문에 대한 답을 내고 싶어하였다.
Can we enable finer grained spatial control by letting users provide additional images that directly specify their desired image composition?
여기서 말하는 Additional Image는 Edge map, Human Pose Skeleton, Segmentation Maps, Depth 등을 말한다. 물론 대규모 Text-Image Diffusion 모델에서 Conditional Control을 학습한다는 것은 쉽지 않은 일이다. 그 이유는 특정 Condition에 대한 Train 데이터 양이 Text-Image 학습에 사용되는 일반 데이터보다 훨씬 적을 수 있기 때문인데, 예를 들어 object shape/normal, human pose extraction 등 다양한 Specific Problem에 대해 다룬 데이터 셋은 약 10만개로 Stable Diffusion 학습에 사용된 LAION-5B 데이터 셋보다 5만배 정도 작다. 제한된 데이터로 Fine-Tuning을 진행할 경우 Overfitting이나 Catastrophic Forgetting이 발생할 가능성이 크다.
위와 같은 문제를 해결하기 위해 복잡한 Shape와 다양한 high-level Semantics를 가진 이미지를 다룰 수 있는 구조의 Neural Architecture가 필요하며, 이를 반영한 ControlNet의 핵심적인 특징은 다음과 같다.
- 대규모 Text-Image Diffusion 모델의 Parameter를 고정하고, Encoding Layer의 학습가능한 복사본을 추가한다. 이 때 학습 가능한 복사본과 Parameter가 고정된 원본 모델을 Zero Convolution Layer로 연결하는데, 이 Layer는 가중치가 0으로 초기화되어 학습 초기 대규모 Diffusion 모델의 Deep Feature에 유해한 Noise가 추가되지 않고 학습가능한 복사본의 Backbone이 Noise로 인해 손상되지 않도록 보호한다.
-> Zero Convolution이 어떻게 이러한 효과를 만들어내는지를 이후 확인해보자 - Canny Edge, Hough Line, User Scribble(낙서), Human Keypoint, Segmentation map, Shape normal, Depth 등 다양한 조건을 사용하여 Stable Diffusion을 제어할 수 있으며, 단일 조건뿐만 아니라 여러 조건을 같이 사용할 수도 있다.
- Ablative Study를 통해 다양한 Conditional 이미지 생성 작업에 대해 Method를 검증하였다.
2. Related Work
2.1. FineTuning Neural Networks
단순히 추가적인 학습 데이터를 활용하여 Network를 Fine-Tuning하는 것은 Overfitting, Mode Collapse, Catastrophic Forgetting 문제를 발생시킬 수 있다.
🤔 왜 그럴까?
각 문제가 무엇인지 알아보고, 왜 일어나는지 생각해보자
- Overfitting: 모델이 학습 데이터에 지나치게 최적화되어 새로운 데이터에 대한 성능이 저하되는 현상. 기존에 학습된 데이터와 Fine-Tuning을 진행하는 데이터 간의 분포가 다르기에 발생할 수 있다.
- Mode Collapse: 모델이 다양한 출력을 생성하지 못하고 제한된 패턴만을 반복적으로 출력하는 현상. GAN 계열의 모델에서 많이 일어나는 문제로 알려져 있으며, Pretrain된 모델이 이미 최대 우도를 가지는 쪽으로 편향되어 있어 추가 학습을 진행하더라도 모델이 특정 패턴에 과도하게 최적화될 수 있다.
- Catastrophic Forgetting: 새로운 정보를 학습할 때 모델이 이전에 학습한 정보를 급격하게 잊어버리는 현상. 새로운 데이터로 추가학습을 진행할 경우 Weight가 과도하게 새로운 데이터에 집중되어 이전 데이터로 학습된 정보를 많이 잊게된다.
위와 같은 문제를 피하기 위해 다양한 Fine-Tuning 전략이 존재한다.
(1) HyperNetwork
NLP에서 시작된 접근법으로 작은 RNN을 학습시켜 더 큰 네트워크의 가중치에 영향을 주는 방식. 학습 데이터가 제한적인 경우에도 Overfitting을 줄일 수 있다. 또한 기존 모델의 가중치를 직접 업데이트하지 않기 때문에 Catastrophic Forgetting에도 도움이 된다.
(2) Adapter
Pretrain된 Transformer 모델을 다른 작업에 맞게 맞춤화하는데 널리 사용되는 기법이다. 특히 CLIP 모델과 같이 활용되어 Pretrain된 Backbone 모델을 다양한 작업으로 Transfer할 때 자주 사용된다. Vision Transformer나 ViT-Adapter에서도 사용되어 좋은 성능을 보였다. 기존 모델의 성능을 유지한 채로 새로운 작업을 수행하므로 Catastrophic Forgetting 해결에 도움을 준다.
Adapter는 주로 각 Layer의 output 사이에 삽입되며 작은 FFN(Feed-Forward Network) 형태로 구현된다(Down Projection-Up Projection). 전체 모델을 재학습하지 않고 Adapter 모듈만 학습시킴으로써 기존 모델의 가중치를 고정한 상태에서 새로운 데이터나 작업에 적응할 수 있다. 이는 PEFT(Parameter-Efficient Transfer Learning)의 대표적인 사례이다.
(3) Additive Learning
원래 모델의 가중치를 고정하고 학습된 Weight Mask, Pruning, Hard Attention을 사용하여 소수의 새로운 Parameter를 추가하는 방식으로 Catastrophic Forgetting을 방지한다. 추가되는 Parameter도 소수이기 때문에 모델이 Overfitting에 빠질 가능성 또한 줄어든다.
(4) Low-Rank Adaptation(LoRA)
Catastrophic Forgetting을 방지하기 위해 Over-parameterized 모델이 Low Intrinsic Dimension Subspace에 위치한다는 관찰에 기반하여 Low-Rank Matrix를 사용하여 Parameter의 Offset을 학습하는 기법이다. Parameter의 변화량을 Low-Rank로 표현하여 학습시키는 Parameter 수가 줄고 이는 곧 Overfitting 방지에 도움이 된다. 또한 원래의 가중치를 손상시키지 않기 때문에 Catastrophic Forgetting 문제를 완화한다.
(5) Zero-Initialized Layers
ControlNet이 Network Block을 연결하기 위해 사용하는 방식으로 Stabilityai의 Model Card에서도 한가지 방법으로 언급이 된 부분이다.학습 초기 Noise가 최소화되기 때문에 데이터 분포가 치우치지 않아 더욱 안정적이다. 또한 Parameter가 0으로 시작하기에 초기 학습에서 Overfitting 방지에 도움을 줄 수 있다.
2.2. Image Diffusion
Image Diffusion Models
최근 이미지 생성 Task에서 Latent Diffusion Models(LDM)는 Latent Image Space에서 Diffusion 단계를 수행하여 계산 비용을 감소시킨다. 관련 연구로는 Glide, Disco Diffusion, Stable Diffusion, Imagen 등이 있으며 상용 제품으로는 DALLE-2와 Midjourney 등이 있다.
Controlling Image Diffusion Models
Personalization, Customization, Task-Specific Image Generation을 위해 Control 기법을 사용한다. 텍스트 기반의 Control 방법은 Prompt 조정, CLIP Feature 조작, Cross-Attention 수정에 중점을 두며 MakeAScene, SpaText, GLIGEN, Textual Inversion, DreamBooth 등의 방법론이 존재한다.
2.3. Image-to-Image Translation
Conditional GAN 기반의 모델들과 Transformer 기반의 모델들은 서로 다른 이미지 도메인 간의 매핑을 수행할 수 있다. 그 예로는 Taming Transformer, Palette, PITI, StyleGAN 등이 있다.
3. Method
- 3.1. : ControlNet의 기본구조
- 3.2. : Stable Diffusion에 ControlNet을 적용하는 방법
- 3.3. : 학습 과정
- 3.4. : Inference 단계에서의 추가적인 고려사항
3.1. ControlNet
Figure 2에서 볼 수 있듯이 ControlNet은 Neural Network에 Additional Condition을 주입하는 구조를 가진다.
$$y=F(x;\Theta)$$
학습된 Neural Network Block인 $F(\cdot; \Theta)$은 Parameter인 $\Theta$를 가지고 입력 Feature Map $x$를 출력 Feature Map $y$로 변환한다(여기서 Neural Network Block은 여러 Neural Network Layer의 집합). 이 때 $x$, $y$는 2D Feature Map으로 $x \in \mathbb{R}^{h \times w \times c}$이며, $h$, $w$, $c$는 높이, 너비, 채널 수를 의미한다(Figure 2(a)).
😎 한줄 정리: 기존 아키텍처는 Feature Map $x$를 Nerual Network Block에 통과시켜 Feature Map $y$를 출력하는 구조
본 논문에서는 ControlNet을 추가하기 위해 기존 Neural Network Block의 Parameter $\Theta$를 고정하고, 이를 복제하여 학습 가능한 복사본 $\Theta_c$를 생성하였다(Figure 2(b)).이 학습 가능한 복사본은 외부 조건 벡터 $c$를 입력으로 받으며, 고정된 파라미터는 대규모 Pretrain 모델을 재사용하는 것으로 다양한 입력 조건을 처리할 수 있는 강력한 Backbone 역할을 수행한다.
학습 가능한 복사본은 기존에 파라미터가 고정된 모델과 Zero Convolution Layer를 통해 연결된다. 여기서 Zero Convolution Layer $Z(\cdot ; \cdot)$는 Weight와 Bias가 모두 0으로 초기화된 1x1 Convolution Layer이다. Zero Convolution Instance로는 $\Theta_{z1}, \Theta_{z2}$를 사용하며(복사본 앞뒤로 적용) ControlNet Block의 계산은 아래 수식과 같이 이루어진다.
$$y_c = F(x;\Theta) + Z(F(x+Z(c;\Theta_{z1});\Theta_c);\Theta_{z2})$$
위 수식에서 볼 수 있듯이 기존 일반적인 Neural Network를 통과한 결과와 새로 추가한 Zero Convolution -Trainable Copy - Zero Convolution으로 진행된다.
Zero Convolution Layer의 Weight와 Bias가 모두 0으로 초기화 되어 있으므로, 학습 초기의 $Z(\cdot ; \cdot)$은 모두 0으로 나타난다. 그러기에 $y_c = y$ 상태가 유지되어 학습 초기 단계에서 유해한 노이즈가 학습 가능한 복사본에 영향을 미치지 않게 만들 수 있다(대규모 Pretrained 모델의 기능 수행 가능).
😎 한줄 정리: Zero Convolution은 초기 학습 단계에서 랜덤 노이즈가 개입되는 것을 방지해 Backbone을 보호하며, 모델이 점차 Condition에 맞게 학습되게 만든다.
3.2. ControlNet for Text-to-Image Diffusion
Stable Diffusion 구조에 ControlNet을 적용하기 위해 우선 Stable Diffusion 아키텍처를 살펴보도록 하자. Stable Diffusion은 기본적으로 U-Net 구조를 기반으로 하며, 12개의 Encoder, Middle Block, 12개의 Decoder로 총 25개의 Block으로 이루어져 있으며 Encoder와 Decoder 사이에는 Skip Connection 기법이 적용되었다.
ControlNet은 Stable Diffusion의 U-Net 구조 중 12개의 Encoder Block과 1개의 Middle Block에 적용된다. 따라서 총 13개의 Block에 대해 각각 학습 가능한 복사본을 만드는데, 이 때 12개의 Encoder Block은 64x64, 32x32, 16x16, 8x8 크기의 4가지 해상도 종류에서 각각 3번씩 반복된다. 또한 복사본의 출력 결과는 12개의 Skip Conection과 Middle Block에 더해진다(Figure 3).
ControlNet이 적용된 Stable Diffusion은 기존 Block들의 파라미터를 고정시켰기 때문에 Gradient 계산이 필요없어 GPU 메모리 사용량이 많이 증가하지 않는다. A100 40G에서 테스트 시 ControlNet을 제외한 Stable Diffusion 모델보다 23%정도 많은 메모리 사용량을 보였으며, 학습 시간은 34% 정도 증가하였다.
Stable Diffusion은 VQ-GAN과 유사한 전처리 방법을 사용하여 512x512 크기의 입력 이미지를 64x64 크기의 Latent Image로 변환한다. 또한 ControlNet을 추가하기 위해 Condition과 관련된 정보도 64x64 크기의 Feature Vector로 변환이 필요하다. 이를 위해 작은 네트워크인 $E(\cdot)$을 사용하며 그 구성은 다음과 같다.$$c_f = E(c_i)$$
- 구성: 4개의 Convolution Layer(Kernel Size 4, Stride 2)
- 채널: 16, 32, 64, 128
- 활성화 함수: ReLU
- 초기화: Gaussian
$E(\cdot)$ 네트워크를 통해 Condition $c_i$는 64x64 크기의 Conditional Vector $c_f$(feature라서 f를 쓴 것 같음)로 변환된다.
3.3. Training
$z_0$이 입력 이미지로 들어왔을 때 Diffusion 알고리즘은 이미지에 점차 Noise를 추가하여 Noisy Image인 $z_t$를 만든다. 여기서 $t$는 Noise가 적용된 단계를 나타내며, time step $t$, text prompt $c_t$, task-specific condition $c_f$를 포함하여 네트워크 $\epsilon_{\theta}$는 Noisy Image $z_t$에 적용된 Noise를 예측한다.
$$L = \mathbb{E}_{z_0, t, c_t, c_f, \epsilon\sim\mathcal{N}(0,1)}\left [ \left\| \epsilon - \epsilon_{\theta}(z_t, t, c_t, c_f)\right\|^2_2 \right ]$$
Objective Function은 위와 같다. 결국 실제 Noise인 $\epsilon$과 $\epsilon_{\theta}$ 네트워크를 통해 계산된 노이즈 간의 차이를 측정하여 $L$이 최소화 되도록 Noise 예측 정확도를 높이는 것이 목적이다.
디테일한 학습 방법은 다음과 같다.
- Text Prompt $c_t$의 50%만을 사용하고 나머지 50%는 빈 문자열로 대체 -> ControlNet은 텍스트에 의존하지 않고 Condition $c_f$의 제어 능력을 학습함
- Zero Convolution을 사용하여 학습 초반 Noise를 방지하고 Condition에 대한 학습이 잘 이루어지게 만듦
- 모델이 Condition에 대해 점진적으로 적응하는 것이 아니라 학습 중 특정 시점에서 갑작스럽게 Condition을 적용함(Figure 4 참고)
3.4. Inference
논문에서는 사용자가 ControlNet에 주입하는 Condition이 Diffusion에 미치는 영향을 다양한 방식으로 제어할 수 있다고 말한다.
Classifier-free guidance(CFG) resolution weighting
Stable Diffusion은 본래 CFG 기법을 사용하여 고품질 이미지를 생성한다. CFG의 수식은 다음과 같다.
$$\epsilon_{prd} = \epsilon_{uc} + \beta_{cfg}(\epsilon_c - \epsilon_{uc})$$
- $\epsilon_{prd}$: 모델의 최종 출력
- $\epsilon_{uc}$: Unconditional 출력
- $\epsilon_{c}$: Conditional 출력
- $\beta_{cfg}$: 사용자가 지정하는 가중치
Conditioning Image가 추가되면, $\epsilon_{uc}$나 $\epsilon_c$ 모두에 추가하거나 $\epsilon_c$에만 추가할 수 있다. 하지만, 이 때 Prompt가 없고 두 군데에 모두 추가할 경우 CFG의 역할이 사라져 Figure 5(b)와 같은 문제가 발생하고, 그렇다고 Conditiong Image를 $\epsilon_c$에만 추가하면 Figure 5(c)처럼 Guidance가 지나치게 강해질 수 있다.
$\epsilon_{uc}$, $\epsilon_c$에 Conditioning Image를 모두 추가할 경우 $\beta_{cfg}$ 안의 값이 0이 되어 CFG의 역할이 사라진다.
이러한 문제를 본 논문에서는 CFG Resolution Weighting이라는 방법으로 해결한다.이 방법은 우선 Conditioning Image를 $\epsilon_c$에 추가하고, Stable Diffusion과 ControlNet간의 연결에 가중치 $w_i$를 부여하는 방식이다. 이 때 $w_i$는 $\frac{64}{h_i}$ 이고 $h_i$s는 각 Block의 해상도를 지칭한다($h_1$=8, $h_2$=16 ...). 이 방법을 통해 CFG의 강도를 줄여 더 세밀한 제어가 가능하다(Figure 5(d)).
$w_i$라는 값 자체는 수식 속에 없지만, ControlNet의 결과물이 Stable Diffusion의 $\epsilon_c$를 수정하거나 보완하는데에 사용된다. 따라서 $w_i$는 ControlNet이 Stable Diffusion의 각 Block에 Condition을 추가할 때에 적용되는 것이다. 예를 들어 해상도가 낮을 경우 $w_i$ 값이 크기 때문에 Condition의 영향력이 상대적으로 크고, 높은 해상도에서는 $w_i$ 값이 작기 때문에 Condition의 영향력이 상대적으로 작다.
Composing multiple ControlNets
또한 하나의 Stable Diffusion 모델에 여러 Conditioning Image를 동시에 적용할 수 있다. ControlNet의 각 출력 값을 Stable Diffusion 모델에 직접 추가하는 것으로 구현할 수 있고, 추가적인 Weighting이나 Linear Interpolation이 필요하지 않다(Figure 6).
코드를 봐야 정확히 알겠지만, 현재로서는 여러 Condition들이 ControlNet을 거친 후 여러 Feature Vector를 생성하였을 때, 해당 Vector들을 단순히 합산하여 Stable Diffusion의 특정 Block에 적용한다고 이해하였다.
4. Experiments
본 논문에서는 ControlNet을 적용한 Stable Diffusion 모델을 기준으로 실험을 진행하였다. 실험을 진행한 Condition으로는 Canny Edge, Depth Map, Normal Map, M-LSD lines, HED soft edge, ADE20K segmentation, Openpose, user sketches 가 있다.
4.1. Qualitative Results
Figure 1과 Figure 7에서 ControlNet의 다양한 Input Condition Image에 대한 강력한 성능을 확인할 수 있으며, Figure 1에서는 여러 Prompt 설정에서 생성된 이미지를, Figure 7에서는 Prompt가 없는 설정에서 생성된 이미지의 결과를 나타낸다.
4.2. Ablative Study
Figure 8에서는 ControlNet의 구조에 대한 Ablation Study를 진행하며 ControlNet의 안정적인 성능을 강조하고 있다. 실험에 사용한 아키텍처와 Prompt Setting은 다음과 같다.
Structure
- (a): ControlNet
- (b): Zero Convolution -> 일반 Convolution Layer + Gaussian 초기화
- (c): 학습가능한 복사본 -> 단일 Convolution Layer(ControlNet-lite)
Prompt Setting
- No Prompt: Condition 없이 입력 이미지만을 사용
- Insufficient Prompt: 이미지 속에 있는 Condition에 대해 완전히 설명하지 않음
- Conflicting Prompt: 이미지 속 Condition의 내용과 의미가 충돌함(아예 다른 내용에 대한 설명)
- Perfect Prompt: 이미지 Condition을 정확하게 설명함
결과적으로 Figure 8에서 확인할 수 있듯이, ControlNet은 모든 Prompt Setting에서 성공적으로 이미지를 생성하였다. 반면 ControlNet-lite의 경우, No Prompt와 Insufficient Prompt Condition에서 성능이 좋지 않아 Condition Image를 해석하는 능력이 부족하다고 보여진다. Zero Convolution을 일반 Convolution으로 대체한 경우에도 ControlNet-lite 수준으로 성능이 떨어졌다.
4.3. Quantitative Evaluation
User study
본 논문에서는 손으로 그린 스케치 이미지 20개를 샘플링하여 아래의 5가지 모델을 활용해 실험을 진행하였다.
- PITI's sketch model
- Sketch-Guided Diffusion(SGD) + default edge-guidance scale($\beta$=1.6)
- SGD + high edge-guidance scale($\beta$=3.2)
- ControlNet-lite
- ControlNet
20개의 스케치 이미지를 5개의 생성 모델에 넣어 만들어진 100장의 이미지들을 12명의 사용자에게 주고, 100장에 대해 결과물의 Quality와 Condition에 대한 충성도(Fidelity)를 기준으로 랭킹을 매겨달라고 부탁하였다. 이 때 사용된 Metric은 Average Human Ranking(AHR)이며, 사용자는 결과를 1~5 중 하나의 값으로 매겼다(1이 낮음). 평가에 대한 결과는 Table 1에 나타나 있다.
Comparison to industrial models
Stable Diffusion V2 Depth-to-Image(SDv2-D2I) 모델은 대규보 A100 GPU, 수천 학습 시간, 1200만 개 이상의 학습 이미지를 사용해 학습되었다. 하지만, ControlNet은 동일한 Depth 조건에서 단지 20만 개의 학습 이미지와 RTX 3090Ti 1대로 5일만에 학습을 진행하였다.
ControlNet으로 만든 성능이 어떤지를 테스트하기 위해 두 모델로 각각 만든 100장의 이미지를(총 200장) 사용자에게 어떤 모델이 생성했는지 판단하도록 요청하였다. 평균 정확도는 0.52±0.17로 두 결과가 거의 구분되지 않는다는 것을 확인할 수 있었다.
⇨ 학습에 필요한 자원이 적으며, 그럼에도 성능은 비슷하게 잘 나온다는 의미
Condition reconstruction and FID score
Condition Fidelity는 ADE20K Test Set을 사용하여 평가하였다. ADE20K의 Semgnetation Map을 Condition으로 사용하여 이미지를 생성한 뒤 이를 현재 Segmentation Task에서 SOTA를 기록하고 있는 OneFormer 모델을 사용해 Segmentation Map으로 변환 후 IoU를 계산하였다(Table 2).
⇨ 색다른 평가 방법. 언젠가 다른 비슷한 실험 주제를 잡을 때 활용하면 좋을 것 같은 방법이다(일종의 Pseudo Labeling?). 예를들어 Pose Estimation Task에서는 Ground Truth Skeleton 이미지를 Condition으로 넣어 이미지를 생성하고, 생성된 이미지에서 Pose를 추출해 두 관절간의 OKS를 기준으로 평가를 진행할 수도 있을 것!
추가로 다른 Segmentation-conditioned 방법들에 대해서도 Frechet Inception Distance(FID), CLIP score, CLIP aesthetic score를 사용하여 평가를 진행했으며 그 결과는 Table 3에 나타나있다.
Frechet Inception Distance는 실제 이미지와 생성된 이미지가 얼마나 유사한지를 판단하는 평가지표이다.
4.4. Comparison to Previous Methods
Figure 9는 PITI, Sketch-Guided Diffusion, Taming Transformer 모델들과 Stable Diffusion + ControlNet의 생성된 결과를 보여준다. 본 논문에서 제안한 방법론이 다양한 Condition Image에 대해 Robust한 것을 확인할 수 있다.
4.5. Discussion
Influence of training dataset sizes
Figure 10을 보면, 1000개 정도의 이미지만으로 학습했을 때에도 Model Collapse가 일어나지 않고 어느정도 사자의 형상을 띈 이미지를 생성한 것을 확인할 수 있다.
Capability to interpret contents
Figure 11을 보면 모델이 제공된 Condition 이미지에 대해 적절한 Semantics를 해석하여 표현한다는 것을 알 수 있다.
🤔 Input 이미지는 대표적인 착시 이미지로 2가지로 해석될 수 있는 이미지인데, 모델이 그 2가지를 모두 반영한 결과를 만들어 내었기 때문에 본 저자들이 모델의 해석력이 풍부하다고 이야기 하는 것 같다. 물론 이 결과만으로 이 주장을 증명할 수 있는지는 잘 모르겠다.
Transferring to community models
ControlNet은 Stable Diffusion 모델 아키텍처에 단순히 추가되기 때문에 본 Stable Diffusion 모델의 네트워크 구조를 변경하지 않는다. 따라서 ControlNet은 Stable Diffusion 관련 모델들에 다양하게 적용될 수 있다. 그 예로 Figure 12를 보면, Comic Diffusion, Protogen 3.4 등의 Stable Diffusion 기반 모델들에 쉽게 Transfer할 수 있는 것을 확인할 수 있다.
5. Conclusion
ControlNet은 대규모로 Pretrain된 Text-Image Diffusion 모델에 Conditional Control을 학습시키는 신경망 구조이다. Source 모델의 대규모 Pretrained Layer를 사용하여 Condition을 학습하기 위한 깊고 강력한 Encoder를 구축하며, Zero Convolution을 사용하여 학습 도중 유해한 Noise가 반영되는 것을 방지한다. 또한 하나뿐만 아니라 여러 개의 Condition을 적용할 수 있으며, Prompt 유무에 상관없이 작동한다는 장점을 가진다.
세 줄 요약
1. 대규모로 Pretrain된 Text-Image Diffusion 모델에 Condition을 주입하여 사용자가 원하는 출력물을 만들어 낼 수 있는 ControlNet 모델을 제안함
2. ControlNet은 기존 대규모로 학습된 Layer의 복사본과 Zero Convolution으로 이루어진 Block을 기존 모델에 붙이는 구조로 이루어짐
3. 하나뿐만 아니라 여러개의 Condition을 적용할 수 있으며, Stable Diffusion에 ControlNet을 붙인 아키텍처가 기존 모델들 대비 Condition을 적용한 결과를 잘 만들어 내는 것을 확인함
'논문 paper 리뷰' 카테고리의 다른 글
[Paper Review] RTMPose 논문 이해하기 (0) | 2024.11.26 |
---|---|
[Paper Review] SimCC 논문 이해하기 (0) | 2024.11.24 |
[Paper Review] HRFormer 논문 이해하기 (1) | 2024.10.08 |
댓글