본문 바로가기
1페이지 논문읽기

[1페이지 논문읽기] FreeCustom: Tuning-Free Customized Image Generationfor Multi-Concept Composition

by Ricolacola 2024. 10. 23.
반응형

해당 논문은 multi-concept에서의 이미지 생성에 대한 연구이다. 예를 들어, 아래 그림에서 보는 것과 같이, 강아지와 선글라스, 모자의 이미지를 가지고 각각 합성된 이미지를 그려내는 등의 task를 하도록 하는 연구이다.

Freecustom

특히, 이러한 task를 tuning-free 방법으로 해결했는데, 이 과정에서 어떠한 문제점을 어떻게 해결했고, 어떤 한계점을 가지고 있는지를 알아보겠다.

 

기존 연구의 한계점

Custom concept 을 이용해 이미지를 생성하는 연구는 크게 아래의 두가지 방법으로 진행되어 왔다. 컨셉 이미지를 가지고 fine-tuning하는 tranining 기반의 방법과 거대한 이미지-텍스트 데이터셋에서 task에 맞게 다시 학습한 모델을 사용하는 tailored model 기반의 방법들이 그것이다.

기존 연구들의 방법론

 

FreeCustom은 이러한 방법들의 학습과정에서의 시간과 데이터가 필요한 문제를 해결해 training 없이 합성된 이미지를 생성하는 방법을 제안한다.

 

아이디어

저자는 각각의 레퍼런스 이미지들의 feature들을 합치기 위해 self-attention 모듈 대시 MRSA를 활용했고, 각각의 concept들을 강조하기 위해 weighted mask strategy를 활용했다. 각각에 대해 자세히 알아보자.

 

Multi-Reference Self-Attention (MRSA)

전체 Pipeline

 

전체 파이프라인은 위 그림과 같이 각각의 concept들의 정보를 뽑아내는 윗 부분(Concept reference path)과, 이를 합쳐서 이미지를 그려내는 아래 부분(Composition path) 두가지 경로로 구성된다.

Concept reference path에서는 각각의 concept 이미지에 diffusion process를 적용해 노이즈를 더하고, noised 이미지와 각각에 해당되는 프롬프트를 이용해 cocnept, layer, timestep에 해당되는 Q, K, V 값을 뽑아낸다.

Composition path에서는 unet의 self attention 모듈을 MRSA로 바꾼뒤, timestep과 unet layer마다의 Q, K, V 값을 계산한다. 이 때, self-attention 모듈의 feature가 denoising 과정에서 inject되는데, 그로 인해 MRSA는 레퍼런스 이미지들의 feature에 대한 정보를 가지게 된다.

이런 방법은 concept 외적인 부분에도 신경을 쓰게 해, 원하는 대로 이미지가 그려지지 않아, 각각의 mask 정보를 이용해 MRSA 어텐션 값을 계산했다.

 

Weighted mask strategy

Mask 정보를 이용하면 관계 없는 feature에 대한 정보를 배제시킬 수는 있지만, 여전히 각 concept들의 특성이 흐려지는 경향이 있다. 그래서, 아래 그림과 같이 mask마다 weight를 주고 어떤 mask 의 정보를 보다 많이 활용할지에 대한 가중치를 주어 inference를 진행했다.

아래 w 리스트에서 첫번째 값은 전체 이미지, 두번째부터 마지막까지의 값은 각각의 concept들에 해당하는 weight를 의미한다. 저자에 따르면, 2~3 사이의 값을 줬을 때, 가장 좋은 성능을 냈다고 한다.

Weighted mask strategy

MRSA replacement

Unet의 모든 layer의 self-attention 모듈을 MRSA로 바꿨을 때, 자연스러운 결과가 나오지 않았다. MasaCtrl 과 같은 선행연구에 따르면, unet의 query feature는 생성되는 이미지의 전반적인 layout과 시맨틱 정보를 담고 있다고 한다. 이러한 선행연구의 발견을 참고해, 저자는 unet의 특정 layer에서만 MRSA를 적용했고, 5번째와 6번째 layer를 교체했을 때, 가장 좋은 결과를 얻었다.

MRSA

결론

해결해야 하는 문제에 다양한 방법들을 적용하며 좋은 결과를 그려냈다. 이론적으로 설명하기 어려운, MRSA의 적용 layer, weighted mask의 값 등은 실험을 통해 적절한 값을 찾아낸 것 같다. Reproduce 측면에서 논문과는 조금 상이한 결과가 나오기도 하지만, 아이디어를 설득력 있게 잘 풀어냈다.