데이터/Machine Learning
Adding Conditional Control to Text-to-Image Diffusion Models 논문 리뷰
성장하기
2025. 1. 5. 19:02
이미지 생성형 모델에 이미지로 조건을 줄 수 있는 아키텍쳐인 ControlNet에 대한 논문을 읽어보았다.
Abstract
- ControlNet : pre-trained text-to-image에 공간적인 조건을 주는 아키텍쳐
- encoding layers만 많은 이미지로 재학습 한다.
- zero convolution으로 연결
- → 0으로 초기화 되어서 점점 커지며 불필요한 노이즈가 파인튜닝에 영향을 못미치도록 함.
1. Introduction
- text-to-image를 공간적 요소에 대한 control에 한계가 있음.
- text를 통해 설명이 어렵기 때문
- 추가적인 이미지로 공간적인 컨트롤이 가능하다.
- image-to-image 모델은 conditioning 이미지에서 target 이미지로의 매핑을 배울 수 있다.
- spatial mask, image editing instruction 등으로 text-to-image 모델을 control하려는 시도가 있었음
- → 어떤 문제들은 denoising process에 제한을 주는 등으로 풀릴 수 있겠지만 end-to-end learning과 data driven solution이 필요함.
- specific condition 학습을 위한 데이터 부족 문제가 있음
- → 이 데이터로 large pre-trained model을 파인튜닝 이슈가 발생할 것이다.
- ControlNet
- end-to-end로 large pretrained text-to-image의 continional control을 학습하는 아키텍쳐
- large model의 파라미터를 locking하고 encoding layer에서 trainable copy를 만들어 모델의 능력과 질을 보존한다.
- large train model을 다양한 conditional control을 학습하기 위한 backbone으로 취급
- trainable copy와 원래의 locked model은 ‘zero convolution’ layer로 연결됨
- Summary
- ControlNet 제안
- StableDiffusion을 Canny edge, segmentation map 등으로 condition 줄 수 있는 ControlNet 발표
- Vailidate method
2. Related Works
2.1. Finetuning Neural Networks
- 원래 네트워크의 그냥 데이터를 추가해서 학습을 이어가는 파인튜닝 기법도 있지만, overfitting, mode collapse, catastrophic forgetting 등의 문제를 야기함.
- HyperNetwork : 큰 모델의 weight에 영향을 미치는 작은 RNN을 학습
- → GAN이나 stable diffusion에 적용되어 style trasfer 등에 사용
- Apapter : NLP에서 새로운 modul layer를 transformer에 임베딩해 다른 task에 커스터마이징.
- Computer vison에서는 CLIP과 함께 사용되어 backbone 모델을 다른 task로 전환시킴
- T2I-Adapter라는 Stable Diffusion에 추가적인 컨디션을 위해 사용된 어댑터도 있음.
- Additive Learning : 원래 모델 weight을 freeze하고, 작은 수의 새로운 파라미터를 더함.
- LoRA : low-rank matrices로 파라미터들의 offset을 학습
- Zero-Initialized Layers : Neural Net의 파라미터를 0으로 초기화 하는 연구
2.2. Image Diffusion
- Image Diffusion Model
- LDM → Latent Space에서 diffusion step을 수행해서 계산량 낮춤
- Text-to-Image → CLIP으로 text input을 latent로 보냄
- Glide, Disco Diffusion, Stable Diffusion, …,
- Controlling Image Diffusion Model
- Text-guided control → 프롬프트를 조정하는 것 , CLIP feature 다루기, cross-attention을 수정하는 것에 초점을 맞춤
- SpaText : segmentation mask를 localized token embedding에 매핑
- GLIGEN : attention layer의 새 파라미터 학습
- Textual Inversion & Dream Booth : 작은 데이터셋으로 학습해서 개인화된 콘텐츠 생성
- Prompt-based image editing
2.3. Image-to-Image Translation
- Conditional GANs and transformer는 다른 이미지 도메인들 사이의 매핑을 학습할 수 있다.
3. Method
3.1. ControlNet
- additional condition을 neural network에 주입한다.
- network block : 함께 쓰여 작은 층을 형성하는 여러 층들의 집합(resnet block, multi-head attention block 등)$F$ : neural block
- $\Theta$ : parameters
- x, y는 2D feature map으로 사용 → $\mathbb{R}^{h\times w \times c}$
- ControlNet을 pretrained neural block에 추가하여, 원래 블럭의 파라미터는 그대로두고, trainable copy $\Theta _c$ 를 복사한다.
- trainable copy는 condition vector c를 추가로 인풋 받음
- SD 같은 모델에 적용하면 원래 모델의 파라미터는 보존하고, trainable copy는 이 큰 모델을 deep, robust, strong한 backbone으로 사용할 수 있음
- trainable copy는 zero convolution $Z(\cdot ; \cdot)$으로 원래 모델과 연결된다.
- $Z(\cdot ; \cdot)$ : 1 x 1 convolution layer, 0으로 초기화된 weight과 bias가 있음.
- zero convolution $Z(\cdot ; \Theta_{z1})$과 $Z(\cdot ; \Theta_{z2})$ 2개 사용$y_c$ : controlnet block의 아웃풋
- 첫번째 training step에선 zero convolution layer가 0으로 초기화 되기 때문에 yc = y가 됨
- Training이 시작될 때, 해로운 노이즈는 hidden state에 영향을 미치지 않는다.
- $Z(c;\Theta_{z1}) = 0$ 이고, trainable copy는 input image x를 받기 때문에, trainable copy는 완전히 작동하고, pre-trained model의 능력을 이후 학습에 강한 backbone 모델로 사용할 수 있다.
- zero convolution은 첫스텝에서 gradient로서의 random noise를 제거하여 backbone을 보존한다.
3.2. ControlNet for Text-to-Image Diffusion
- ControlNet은 UNet의 각 encoder 블럭에 적용된다.
- Skip connection과 middle block에 이 아웃풋이 더해지며(add) 효율적으로 계산된다.
- Stable Diffusion은 512 x 512 pixel space에서 64 x 64 latent image로 변환하기에, ControlNet을 SD에 더하기 위해서 input conditioning image를 변환해준다.
- 4 convolution layer짜리 네트워크를 이용해 input image feature space로 보낸다
Training
- objective
- timestep t, text prompt $c_t$, task-specific condition $c_f$를 받아서 $z_t$에 더해진 노이즈를 예측하는 $\epsilon_\theta$를 학습
- training 중 50% 텍스트 프롬프트를 무작위로 빈 문자열로 대체 → 프롬프트를 대신할 image의 sematics를 학습시킬 수 있음
- sudden convergence phenomenon : training step에서 점진적으로 control condition을 학습하는 것이 아니라, 어느 순간 성공함.
3.4. Inference
- Classifier-free guidance resolution weighting
- $\epsilon_{prd} = \epsilon_{uc} + \beta_{cfg}(\epsilon_c - \epsilon_{uc})$
- Stable diffusion block 마다 CFG의 Weight을 다르게 준다.(resolution과 반비례하게)
- composing multiple ControlNets
- multiple ControlNet을 한개의 SD에 적용하기 위해서, ControlNet의 output을 SD 모델에 직접 더해주기만 하면 된다.
4. Experiment
4.1. Qualitative Result
- Several prompt setting
- No prompt setting
4.2. Ablative Study
- ContolNet structure setting
- zero convolution 대신 Gaussian weight으로 초기화된 standard convolution 사용
- trainable copy 대신에 one single convolution layer 사용(controlNet-lite)
- prompt setting
- no prompt
- insufficient prompt : 이미지의 모든 object를 커버하지 못하는 프롬프트
- conflict prompt : conditioning image의 의미를 바꿈
- perfect prompt
4.3. Quantitative Evaluation
- User study
- 20 unseen hand-drawn sketch
- 총 5개의 method를 비교하여 Human Ranking
- Comparison to industrial models
- SDv2-D2I : A100으로 수천시간 동안 12M images로 학습
- ControlNet : 3090 Ti 한장으로 200k images로 5일만에 학습
- → 12명의 user에게 물어본 결과 거의 구분 못함
- Condition reconstruction and FID score
- Oneformer를 이용해서 GroundTruth의 IoU와 reconstructed IoU 계산
- FID를 활용해서 randomly generated image set들의 distribution distance를 추정
- text-image CLIP score와 CLIP aesthetic score(미적 점수 예측) 추정
4.4. Comparison to Previous Method
- Capablity to interpret contents
- input condition 의 의미를 잘 반영함.
- Transferring commutity models
- 다양한 모델에 적용 가능