ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Uni-ControlNet: All-in-One Control to Text-to-Image Diffusion Models 논문 리뷰
    논문 후기와 구현 2024. 10. 23. 11:01

     

    2023년 초에 ControlNet 논문이 발표되고 나서, 수많은 ControlNet 계승 연구가 나왔다. Uni-ControlNet 또한 그중 하나이다. Uni-ControlNet은 여러개의 conditions가 실상 비슷한 구조로 conditioning이 됨에도 불구하고, N개 condition을 위해 N번 fine-tuning이 이루어지는 기존 ControlNet 및 기타 T2I 논문의 문제를 해결하기 위해 발표되었다.

     

    그들이 밀고나가는 이 논문의 contribution을 한 눈에 볼 수 있는 표는 아래와 같다:

     

    즉, ControlNet 같은 경우에는, 아래와 같이 condition 하나 당 하나의 모듈(fine-tuning)이 필요한 데 반해, Uni-ControlNet 같은 경우는 condition이 몇 개라고 하더라도 2개의 모듈(fine-tuning)만 있으면 된다는 것.

    ControlNet

     

    Uni-ControlNet의 전체 아키텍처

    이 논문은 (U-Net을 활용한) Stable Diffusion을 활용하여 Uni-ControlNet을 선보이는데, 그러므로 Local Control Adapter는 Encoder 12개 블록과 Middle Block 하나, 총 13개 블록에 주입된다. 동시에 Global Control Adapter로부터 Extend Prompt도 주입되는데, 이는 Decoder에도 주입된다. 

     

    (참고로 어느 Neural Network에든 활용이 가능하다고 주장하는 원조(?) ControlNet도 논문에서는 Stable Diffusion을 예시로 활용하였다.)

     

    소신 발언하자면 아키텍처를 조금... 못 그린 편에 속하는 것 같습니다...

    여튼 이 논문에서는 condition이 걸려오는 것을, local control과 global control로 나눈다.

     

    1. Local Control Adapter (엣지 맵, 깊이 맵, 스케치 등을 처리)

    Local Control Adapter는 여러 "해상도"에서 동시에 주입된다. 모델이 처리하는 각 해상도마다 첫 번째 Convolution 블록에서 Local Control 신호가 처리된다. 이는 이 논문에서 제시된 FDN (Feature Denormalization) 방식으로 처리되는데 이는 SPADE 라는 논문에서 영감을 받은 기법이다. 

    SPADE

     

    위의 아키텍처를 보면 γ는 feature map을 scaling하는 역할이고, β는 feature map을 이동시키는 역할을 한다. 논문에 명시적인 언급은 없으나 FDN의 γ와 β도 마찬가지일 것이다. 

    • Z_r : 해상도 r에서의 feature map
    • c_l : 로컬 컨트롤 신호
    • h_r : 해상도 r에서 feature extractor H의 output
    • conv_γ, conv_β : learnable한 conv layer

     

    2. Global Control Adapter (CLIP Embedding 처리)

    이 논문을 읽으면서 의문이었고 아직도 좀 풀리지는 않았는데, 보통 이 논문처럼 Stable Diffusion을 기왕 활용하는 논문이라면 text condition에 대해서, CLIP Embedding 말고 다른 벡터를 컨디션으로 걸지 않는다. 다들 알다시피 이미 CLIP Embedding은 이미지와 텍스트를 동일한 Latent Space에 나타낼 수 있도록 학습되어 이미지-텍스트 간 Mapping에 매우 뛰어난 성능을 보이기 때문이다.

     

    하지만 이 논문에서는,

     

    y^t : 텍스트 토큰

    y^g : CLIP Embedding


    CLIP Embbeding과 텍스트 토큰이 concat되어 extended prompt가 된 채로 Stable Diffusiond에 주입된다. 아마 CLIP은 다소 내용이 압축되는지라 원문 내용을 더 잘 살리기 위해서 텍스트 토큰들을 보존하나 싶다. 

     

    Local 및 Global Control Adapter는 독립적으로 훈련된다.

     

    결과

     

Designed by Tistory.