본문 바로가기

AI/Paper - Theory

[ControlNet 논문 리뷰] - Adding Conditional Control to Text-to-Image Diffusion Models

반응형

*ControlNet를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요!

 

ControlNet paper: [2302.05543] Adding Conditional Control to Text-to-Image Diffusion Models (arxiv.org)

 

Adding Conditional Control to Text-to-Image Diffusion Models

We present ControlNet, a neural network architecture to add spatial conditioning controls to large, pretrained text-to-image diffusion models. ControlNet locks the production-ready large diffusion models, and reuses their deep and robust encoding layers pr

arxiv.org

 

ControlNet github: GitHub - lllyasviel/ControlNet: Let us control diffusion models!

 

GitHub - lllyasviel/ControlNet: Let us control diffusion models!

Let us control diffusion models! Contribute to lllyasviel/ControlNet development by creating an account on GitHub.

github.com


Contents

1. Simple Introduction

2. Background Knowledge: Diffusion

3. Method

4. Result


Simple Introduction

이미지 생성분야는 정말 아직도 핫하다!

요즘은 비디오, 3D의 영역까지 생성AI가 확장하고 있는데, 여기서 주로 보이는 논문들은 adapter 느낌이 많다.

 

예를 들면, 내가 원하는 이미지를 생성AI로 만들어내고 싶을 때, 100% 만족하는 이미지를 만들어내는 일은 매우 어렵지만, 좀 낮은 퀄리티의 이미지들은 많이 생성할 수 있다.

따라서, ControlNet처럼 adapter 기능을 하는 모델을 활용한다면 70~80% 완성된 이미지를 100%로 만들어줄 수 있다.

 

이와 관련하여 최근에는 InstantID라는 논문이 굉장히 핫한데, 나중에 한번 다뤄보도록 하겠다!


Background Knowledge: Diffusion

Diffusion 논문리뷰: https://kyujinpy.tistory.com/95

 

[DDPM 논문 리뷰] - Denoising Diffusion Probabilistic Models

*DDPM를 위한 논문 리뷰 글입니다! 궁금하신 점은 댓글로 남겨주세요! DDPM paper: https://arxiv.org/abs/2006.11239 Denoising Diffusion Probabilistic Models We present high quality image synthesis results using diffusion probabilistic m

kyujinpy.tistory.com

 

*Diffusion을 알아야 이해가 가능합니다!


Method

Overview

ControlNet은 정말 간단한 적용만으로도, 쉽게 diffusion network를 통제할 수 있도록 설계했다.

바로 위의 그림처럼, network를 기준으로, 아래 2개의 개념을 적용한다.

1. zero-convolution

2. trainable copy

각각이 무엇인지 한번 살펴보자.


trainable copy

먼저 trainable copy가 무엇인지 정의를 하고 가자.

기존의 input feature map X와 layer에 해당하는 파라미터 Θ가 있다고 하고, 이를 함수 F로 표현하자.

그렇다면, trainable copy는 함수 F에 해당하는 구조와 파라미터 Θ를 그대로 복제한 layer 이다.

 

ControlNet with Zero convolution

ControlNet은 위에서 정의한 trainable copy와 zero convolution을 이용한다.

Zero convolution은 아래와 같이 정의된다.

1. 1x1 convolution layer (feature map의 크기를 유지하기 위해)

2. weight와 bias의 초깃값을 zero로 설정한다.

여기서 우리가 알 수 있는 사실은, first training step에서 ControlNet의 값은 기존 diffusion layer의 값과 동일하다는 사실이다!

 

First training step

사실 논문의 저자들은 zero-convolution을 활용하여서 위와 같은 현상을 설계(?)하였는데,

그 이유는 모델을 학습할 때, trainable copy에 있는 hidden layer가 backpropagation에서 생기는 noise에 영향을 심각하게 받는다는 것이다. 

따라서 이것을 해결하기 위해, 초기 학습에서 random noise를 제거하여서 학습이 올바른 방향으로 진행될 수 있도록 유도하였다고 설명하고 있다.

 

+) 추가적으로, ControlNet의 학습 구조는 위의 사진에서 equation (2)를 참고하면 된다.


Loss function with MSE

Loss function은 우리가 많이 봤던 noise를 예측하는 형태이다.

잘 기억이 나지 않는다면 DDPM을 참고하길 바란다!


Result

Ablation study with zero-convolution

- Ablation study로, zero-convolution에 대한 효과를 보여주고 있다.

 

- 마찬가지로, 여러 conditional에 대해서 뛰어난 확장성을 보인다.


- 2024.02.12 Kyujinpy 작성.

 

 

반응형