원본 이미지가 있다면, AI는 원본이미지처럼 새로운 그림을 그릴 수 있을까? 원본이미지"처럼" 이라는 뜻은 무엇일까? 색감이 비슷하게? 비슷한 스타일로? 비슷한 오브제가?
사람도 답하기 힘든 이러한 질문에 답하듯 그림을 그려주는 연구가 있다.
2023년 Adobe 에서 발표한 An Image is Worth Multiple Words: Multi-ttribute Inversion for Constrained Text-to-Image Synthesis 논문인데, 어떤 문제를 어떤 방법으로 해결하는지 알아보자.
기존 연구의 한계점
Stable diffusion 기반의 이미지 personalization 연구들이 디테일한 컨트롤이 어렵다는 한계점을 가지고 있어, controllability를 강화하는 방법으로 저자들은 레퍼런스 이미지를 이용한 편집 방법을 생각했다.
특히, 기존 방법들은 레퍼런스 이미지를 한 개의 token으로 치환하기 때문에 다양한 속성들이 전부 섞여서 존재하게 된다.
아이디어
저자들은 unet layer마다, timestep마다 다른 정보를 만들어내는 점에 착안했다. 아래 그림에서 보듯, 'blue' 단어를 L1, L2, L14~L16 layer에 넣어주더라도, 'red' 이미지를 볼 수 있다.
이러한 실험들로 저자들은 아래와 같은 사항을 발견한다.
Color : 중간 레이어에서 초반 denoising stage에서 생성된다.
Style : Color와 유사하다. Graffiti 스타일, 수채화 스타일 역시 이미지에 반영되지 않았다.
Object : 중간 stage (t2, t3) 에서 L6 ~ L9 에서 생성된다.
요약하자면, fine layer와 t4 stage는 이미지의 속성에 영향을 주지 않는다. Color, style은 초기 stage에서 중간 layer에서 캡쳐된다. Object는 중간 stage에서 L6~L9 layer에서, layout은 초기 stage에서 L6~L9 에서 생성된다.
이러한 발견을 기반으로 저자들은 아래와 같은 MATTE 아키텍처를 제시한다. color, style, object, layout을 stage와 layer에 맞게 각각 인코딩 해서 text encoding 값을 만들어 condition으로 넣어준다.
느낀점
Appendix에 추가로 나오는데, layer 별 timestep 별로 어떤 prompt를 줄 때, 어떤 결과 이미지가 그려지는지를 굉장히 많은 실험으로 꼼꼼하게 분석했다. Layer 별 cross attention map 등 다양한 분석을 통해 연구에 신뢰성을 더했다.
저자들도 언급했듯, <c>, <s>, <l>, <o>를 각각 fine tuning 해야 하다보니 계산량이 그만큼 늘어나게 되는데, 경험상, token 4개 정도 늘어나는 것은 큰 문제가 안될 수도 있을 것 같다.
Reproduce가 논문에 기재된 만큼 가능하다면, 다른 연구로도 확장될 수 있을 것 같다.