2024. 7. 8. 11:50ㆍDiffusion
IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models
Hu Ye, Jun Zhang, Sibo Liu, Xiao Han, Wei Yang
Abstract
최근 몇 년 동안 고충실도 이미지를 생성하는 인상적인 생성 기능에 대한 대규모 text-to-image 디퓨전 모델의 강력한 힘을 목격했습니다.
그러나 복잡한 프롬프트 엔지니어링이 수반되는 경우가 많기 때문에 텍스트 프롬프트만으로 원하는 이미지를 생성하는 것은 매우 까다롭습니다.
텍스트 프롬프트의 대안은 "an image is worth a thousand words"는 말처럼 이미지 프롬프트입니다.
사전 학습된 모델을 직접 파인튜닝하는 기존 방법은 효과적이지만 대규모 컴퓨팅 리소스가 필요하고 다른 base 모델, 텍스트 프롬프트 및 구조적 제어와 호환되지 않습니다.
본 논문에서는 사전 학습된 text-to-image 디퓨전 모델에 대한 이미지 프롬프트 기능을 달성하기 위한 효과적이고 가벼운 어댑터인 IP-Adapter를 소개합니다.
IP-Adapter의 핵심 설계는 텍스트 피쳐와 이미지 피쳐에 대한 크로스 어텐션 레이어를 분리하는 분리된 크로스 어텐션 메커니즘입니다.
이 방법의 단순성에도 불구하고 22M개의 매개 변수만 있는 IP-Adapter는 완전히 파인튜닝된 이미지 프롬프트 모델과 비슷하거나 훨씬 더 나은 성능을 달성할 수 있습니다.
사전 학습된 디퓨전 모델을 동결함에 따라 제안된 IP-Adapter는 동일한 base 모델에서 파인튜닝된 다른 사용자 지정 모델뿐만 아니라 기존의 제어 가능한 도구를 사용하여 제어 가능한 생성에도 일반화될 수 있습니다.
분리된 크로스 어텐션 전략의 이점을 통해 이미지 프롬프트는 텍스트 프롬프트와도 잘 작동하여 멀티모달 이미지 생성을 달성할 수 있습니다.
1 Introduction
이미지 생성은 최근 GLIDE [1], DALL-E 2 [2], Imagen [3], Stable Diffusion (SD) [4], eDiff-I [5] 및 RAPHAEL [6]과 같은 대규모 text-to-image 디퓨전 모델의 성공으로 괄목할 만한 발전을 이루었습니다.
사용자는 강력한 text-to-image 디퓨전 모델로 이미지를 생성하기 위해 텍스트 프롬프트를 작성할 수 있습니다.
그러나 원하는 콘텐츠를 생성하기 위해 좋은 텍스트 프롬프트를 작성하는 것은 종종 복잡한 프롬프트 엔지니어링 [7]이 필요하기 때문에 쉽지 않습니다.
또한 텍스트는 복잡한 장면이나 개념을 표현하는 데 도움이 되지 않으므로 콘텐츠 생성에 방해가 될 수 있습니다.
텍스트 프롬프트의 위와 같은 한계를 고려하여 이미지를 생성하기 위한 다른 프롬프트 유형이 있는지 물어볼 수 있습니다.
이미지는 텍스트에 비해 더 많은 콘텐츠와 세부 정보를 표현할 수 있기 때문에 자연스러운 선택은 이미지 프롬프트를 사용하는 것입니다: "an image is worth a thousand words"
DALL-E 2 [2]는 이미지 프롬프트를 지원하기 위한 첫 번째 시도를 하며, 디퓨전 모델은 텍스트 임베딩이 아닌 이미지 임베딩을 기반으로 하며, text-to-image 기능을 달성하려면 prior 모델이 필요합니다.
그러나 대부분의 기존 text-to-image 디퓨전 모델은 이미지를 생성하기 위해 텍스트에 조건이 지정되며, 예를 들어 인기 있는 SD 모델은 frozen CLIP [8] 텍스트 인코더에서 추출한 텍스트 피쳐에 조건이 지정됩니다.
이미지 프롬프트가 이러한 text-to-image 디퓨전 모델에서도 지원될 수 있습니까?
우리의 작업은 간단한 방식으로 이러한 text-to-image 디퓨전 모델에 대한 이미지 프롬프트로 생성 기능을 가능하게 하려고 시도합니다.
SD Image Variations 및 Stable unCLIP와 같은 이전 연구에서는 이미지 프롬프트 기능을 달성하기 위해 이미지 임베딩에서 텍스트 조건 디퓨전 모델을 직접 파인튜닝하는 것이 효과적임을 입증했습니다.
그러나 이 접근 방식의 단점은 분명합니다.
첫째, 텍스트를 사용하여 이미지를 생성하는 원래의 능력을 제거하고 이러한 파인튜닝을 위해서는 종종 대규모 컴퓨팅 리소스가 필요합니다.
둘째, 이미지 프롬프트 기능을 동일한 text-to-image base 모델에서 파생된 다른 사용자 지정 모델로 직접 전송할 수 없기 때문에 파인튜닝된 모델은 일반적으로 재사용할 수 없습니다.
또한 새로운 모델은 종종 ControlNet [9]과 같은 기존 구조 제어 도구와 호환되지 않아 다운스트림 애플리케이션에 중요한 문제가 있습니다.
파인튜닝의 단점으로 인해 일부 연구에서는 디퓨전 모델의 파인튜닝을 피하면서 텍스트 인코더를 이미지 인코더로 대체하는 것을 선택합니다.
이 방법은 효과적이고 간단하지만 여전히 몇 가지 단점이 있습니다.
먼저 이미지 프롬프트만 지원되어 사용자가 텍스트와 이미지 프롬프트를 동시에 사용하여 이미지를 생성할 수 없습니다.
또한 이미지 인코더를 단순히 파인튜닝하는 것만으로는 이미지 품질을 보장하기에 충분하지 않은 경우가 많으며 일반화 문제로 이어질 수 있습니다.
이 연구에서는 원래 text-to-image 모델을 수정하지 않고도 이미지 프롬프트 기능을 달성할 수 있는지 궁금합니다.
다행히 이전 작업은 고무적입니다.
ControlNet [9] 및 T2I-Adapter [11]와 같은 제어 가능한 이미지 생성의 최근 발전으로 인해 기존 text-to-image 디퓨전 모델에 추가 네트워크를 효과적으로 연결하여 이미지 생성을 가이드할 수 있음이 입증되었습니다.
대부분의 연구는 사용자가 그린 스케치, depth 맵, 시맨틱 세그멘테이션 맵 등과 같은 추가 구조 제어 기능을 갖춘 이미지 생성에 중점을 둡니다.
또한 T2I-Adapter [11]의 스타일 어댑터 및 Uni-ControlNet [12]의 전역 컨트롤러와 같은 간단한 어댑터를 통해 스타일이나 참조 이미지가 제공하는 콘텐츠를 사용한 이미지 생성도 달성했습니다.
이를 달성하기 위해 CLIP 이미지 인코더에서 추출한 이미지 피쳐는 학습 가능한 네트워크에 의해 새로운 피쳐에 매핑된 다음 텍스트 피쳐와 연결됩니다.
원본 텍스트 피쳐를 대체하여 병합된 피쳐를 디퓨전 모델의 UNet에 공급하여 이미지 생성을 가이드합니다.
이러한 어댑터는 이미지 프롬프트를 사용하는 기능을 갖춘 것으로 볼 수 있지만 생성된 이미지는 프롬프트 이미지에 부분적으로만 충실합니다.
결과는 처음부터 학습된 모델은 고사하고 파인튜닝된 이미지 프롬프트 모델보다 더 나쁜 경우가 많습니다.
저희는 앞서 언급한 방법의 주요 문제가 text-to-image 디퓨전 모델의 크로스 어텐션 모듈에 있다고 주장합니다.
사전 학습된 디퓨전 모델에서 크로스 어텐션 레이어의 key 및 value 투영 가중치는 텍스트 피쳐를 조정하도록 학습됩니다.
결과적으로 이미지 피쳐와 텍스트 피쳐를 크로스 어텐션 레이어에 병합하면 이미지 피쳐를 텍스트 피쳐에 맞게 정렬할 수 있지만, 이는 잠재적으로 일부 이미지별 정보를 놓치고 결국 참조 이미지와 coarse-grained 제어 가능한 생성(예: 이미지 스타일)만 초래할 수 있습니다.
이를 위해 이전 방법의 단점을 피하기 위해 IP-Adapter라는 보다 효과적인 이미지 프롬프트 어댑터를 제안합니다.
특히 IP-Adapter는 텍스트 피쳐와 이미지 피쳐에 분리된 크로스 어텐션 메커니즘을 채택합니다.
UNet 디퓨전 모델의 모든 크로스 어텐션 레이어에 대해 이미지 피쳐에 대해서만 추가 크로스 어텐션 레이어를 추가합니다.
학습 단계에서는 새로운 크로스 어텐션 레이어의 매개 변수만 학습되고 원래 UNet 모델은 froze됩니다.
저희가 제안한 어댑터는 가볍지만 매우 효율적입니다: 22M개의 매개변수만 있는 IP-Adapter의 생성 성능은 text-to-image 디퓨전 모델의 완전 파인튜닝된 이미지 프롬프트 모델과 유사합니다.
더 중요한 것은 우리의 IP-Adapter가 우수한 일반화 기능을 나타내며 텍스트 프롬프트와 호환된다는 것입니다.
제안된 IP-Adapter를 사용하면 그림 1과 같이 다양한 이미지 생성 작업을 쉽게 수행할 수 있습니다.
요약하자면, 우리의 기여는 다음과 같습니다:
• 기존 text-to-image 디퓨전 모델에 대한 분리된 크로스 어텐션 전략을 갖춘 경량 이미지 프롬프트 적응 방법인 IP-Adapter를 소개합니다.
정량적 및 정성적 실험 결과에 따르면 약 22M 개의 매개 변수를 가진 작은 IP-Adapter가 이미지 프롬프트 기반 생성을 위한 완전히 파인튜닝된 모델과 비슷하거나 훨씬 더 우수한 것으로 나타났습니다.
• 우리의 IP-Adapter는 재사용 가능하고 유연합니다.
base 디퓨전 모델로 학습된 IP-Adapter는 동일한 base 디퓨전 모델에서 파인튜닝된 다른 사용자 지정 모델로 일반화할 수 있습니다.
또한 IP-Adapter는 ControlNet과 같은 다른 제어 가능한 어댑터와 호환되므로 이미지 프롬프트와 구조 제어를 쉽게 결합할 수 있습니다.
• 분리된 크로스 어텐션 전략으로 인해 이미지 프롬프트는 텍스트 프롬프트와 호환되어 멀티모달 이미지 생성을 달성할 수 있습니다.
2 Related Work
저희는 기존 text-to-image 디퓨전 모델을 위한 이미지 프롬프트 어댑터를 설계하는 데 중점을 둡니다.
이 섹션에서는 text-to-image 디퓨전 모델에 대한 최근 연구와 대형 모델용 어댑터에 대한 관련 연구를 검토합니다.
2.1 Text-to-Image Diffusion Models
대형 text-to-image 모델은 주로 두 가지 범주로 나뉩니다: autoregressive 모델 및 디퓨전 모델.
DALLE [13], CogView [14, 15] 및 Make-A-Scene [16]과 같은 초기 작품은 autoregressive 모델입니다.
autoregressive 모델의 경우 VQ-VAE [17]와 같은 이미지 토큰화기를 사용하여 이미지를 토큰으로 변환한 다음 텍스트 토큰을 조건으로 하는 autoregressive transformer [18]를 학습하여 이미지 토큰을 예측합니다.
그러나 autoregressive 모델은 Parti [19]에서 볼 수 있듯이 고품질 이미지를 생성하기 위해 큰 매개 변수와 컴퓨팅 리소스가 필요한 경우가 많습니다.
최근 디퓨전 모델 (DM) [20, 21, 22, 23]이 text-to-image 생성을 위한 새로운 SOTA 모델로 부상했습니다.
GLIDE는 선구자로서 64×64 해상도의 3.5B 텍스트 조건부 디퓨전 모델과 256×256 해상도의 1.5B 텍스트 조건부 업샘플링 디퓨전 모델을 갖춘 계단식 디퓨전 아키텍처를 사용합니다.
DALL-E 2는 디퓨전 모델 조건부 이미지 임베딩을 사용하며, prior 모델은 텍스트 프롬프트를 제공하여 이미지 임베딩을 생성하도록 학습되었습니다.
DALL-E 2는 이미지 생성을 위한 텍스트 프롬프트뿐만 아니라 이미지 프롬프트도 지원합니다.
텍스트 이해를 향상시키기 위해 Imagen은 텍스트 전용 데이터로 사전 학습된 대규모 트랜스포머 언어 모델인 T5 [24]를 디퓨전 모델의 텍스트 인코더로 채택합니다.
Re-Imagen [25]은 검색된 정보를 사용하여 희귀하거나 보이지 않는 개체에 대해 생성된 이미지의 충실도를 향상시킵니다.
SD는 픽셀 공간 대신 잠재 공간에서 작동하는 latent diffusion model [4]을 기반으로 구축되어 SD는 디퓨전 모델만으로 고해상도 이미지를 생성할 수 있습니다.
텍스트 정렬을 개선하기 위해 eDiff-I는 T5 text, CLIP text 및 CLIP 이미지 임베딩을 포함한 여러 조건을 활용하여 text-to-image 디퓨전 모델의 앙상블로 설계되었습니다.
Versatile Diffusion [26]은 단일 모델 내에서 text-to-image, image-to-text 및 변형을 지원하기 위한 통합된 multi-flow 디퓨전 프레임워크를 제시합니다.
제어 가능한 이미지 합성을 달성하기 위해 Composer [27]는 이미지 임베딩 조건부 사전 학습된 디퓨전 모델에 다양한 조건을 갖춘 공동 파인튜닝 전략을 제시합니다.
RAFAEL은 텍스트 조건부 이미지 디퓨전 모델에 mixture-of-experts (MoES) 전략[28, 29]을 도입하여 이미지 품질과 미적 매력을 향상시킵니다.
DALL-E 2의 매력적인 특징은 이미지 프롬프트를 사용하여 이미지 변형을 생성할 수도 있다는 것입니다.
따라서 텍스트로만 조건화된 text-to-image 디퓨전 모델에 대한 이미지 프롬프트를 지원하기 위해 탐색하는 작업도 있습니다.
SD Image Variations 모델은 텍스트 피쳐가 CLIP 이미지 인코더의 이미지 임베딩으로 대체되는 수정된 SD 모델에서 파인튜닝됩니다.
Stable unCLIP도 SD에서 파인튜닝된 모델로, 이미지 임베딩이 시간 임베딩에 추가됩니다.
파인튜닝 모델은 이미지 프롬프트를 성공적으로 사용하여 이미지를 생성할 수 있지만 상대적으로 큰 학습 비용이 필요한 경우가 많으며 기존 도구(예: ControlNet [9])와 호환되지 않습니다.
2.2 Adapters for Large Models
사전 학습된 대규모 모델을 파인튜닝하는 것이 비효율적이기 때문에, 대안적인 접근 방식은 몇 가지 학습 가능한 매개 변수를 추가하지만 원래 모델은 freeze하는 어댑터를 사용하는 것입니다[30].
어댑터는 오랫동안 NLP 분야에서 사용되어 왔습니다[30].
최근에는 어댑터가 대규모 언어 모델에 대한 비전-언어 이해를 달성하는 데 활용되고 있습니다[31, 32, 33, 34, 35].
최근 text-to-image 모델이 인기를 끌면서 어댑터는 text-to-image 모델 생성을 위한 추가 제어 기능을 제공하는 데에도 사용되고 있습니다.
ControlNet [9]은 먼저 어댑터가 사전 학습된 text-to-image 디퓨전 모델로 학습되어 작업별 입력 조건, 예를 들어 kanny edge를 학습할 수 있음을 증명합니다.
거의 동시에 T2I-adapter [11]는 생성된 이미지의 색상과 구조에서 세분화된 제어를 달성하기 위해 간단하고 가벼운 어댑터를 사용합니다.
파인튜닝 비용을 줄이기 위해 Uni-ControlNet [12]은 다양한 로컬 제어를 위한 어댑터를 학습하는 멀티 스케일 조건 주입 전략을 제시합니다.
구조적 제어를 위한 어댑터 외에도 제공된 이미지의 내용과 스타일에 따라 조건이 지정된 제어 가능한 생성을 위한 작업도 있습니다.
이미지를 재구성하도록 학습된 ControlNet Shuffle을 사용하여 사용자가 제공한 이미지로 생성을 가이드할 수 있습니다.
또한 학습 없이 간단한 피쳐 주입을 통해 SD 모델에서 이미지 변형을 달성하기 위해 ControlNet Reference 전용이 제공되었습니다.
업데이트된 T2I 어댑터 버전에서는 CLIP 이미지 인코더에서 추출한 이미지 피쳐를 텍스트 피쳐에 추가하여 참조 이미지를 사용하여 생성된 이미지의 스타일을 제어하도록 style adapter가 설계되었습니다.
Uni-ControlNet의 전역 제어 어댑터는 또한 CLIP 이미지 인코더의 이미지 임베딩을 작은 네트워크에 의한 조건 임베딩으로 투영하여 원본 텍스트 임베딩과 연결하고 참조 이미지의 스타일 및 내용으로 생성을 가이드하는 데 사용됩니다.
SeeCoder [10]에는 이미지 변형을 생성하기 위해 원본 텍스트 인코더를 대체하는 시맨틱 컨텍스트 인코더가 표시됩니다.
위에서 언급한 어댑터는 가볍지만 성능은 처음부터 학습된 어댑터는 고사하고 파인튜닝된 이미지 프롬프트 모델과 거의 비교할 수 없습니다.
본 연구에서는 보다 효과적인 이미지 프롬프트 어댑터를 달성하기 위해 분리된 크로스 어텐션 메커니즘을 소개합니다.
제안된 어댑터는 여전히 간단하고 작지만 이전 어댑터 방식보다 성능이 뛰어나며 파인튜닝된 모델과도 유사합니다.
3 Methods
이 섹션에서는 먼저 text-to-image 디퓨전 모델에 대한 몇 가지 예비 사항을 소개합니다.
그런 다음 제안된 IP-Adapter의 동기와 설계를 자세히 설명합니다.
3.1 Preliminaries
디퓨전 모델은 두 가지 프로세스로 구성된 생성 모델의 한 종류입니다: T 단계의 고정된 마르코프 체인을 사용하여 데이터에 가우시안 노이즈를 점진적으로 추가하는 디퓨전 프로세스(순방향 프로세스라고도 함)와 학습 가능한 모델로 가우시안 노이즈로부터 샘플을 생성하는 디노이징 프로세스.
디퓨전 모델은 text-to-image 디퓨전 모델의 경우 텍스트와 같은 다른 입력에도 적용될 수 있습니다.
일반적으로 노이즈를 예측하는 ϵ_θ로 표시되는 디퓨전 모델의 학습 objective는 변형 경계의 단순화된 변형으로 정의됩니다:
, 여기서 x_0는 c 조건이 추가된 실제 데이터를 나타내고, t ∈ [0, T]는 디퓨전 과정의 시간 단계를 나타내며, x_t = α_t x_0 + σ_t ϵ는 t 단계의 노이즈 데이터이며, α_t, σ_t는 디퓨전 과정을 결정하는 t의 미리 정의된 함수입니다.
일단 모델 ϵ_θ가 학습되면, 이미지들은 반복적인 방식으로 랜덤 노이즈로부터 생성될 수 있습니다.
일반적으로 DDIM [21], PNDM [36] 및 DPM-Solver [37, 38]과 같은 빠른 샘플러들은 생성 과정을 가속화하기 위해 추론 단계에서 채택됩니다.
조건부 디퓨전 모델의 경우, classifier guidance [23]는 별도로 학습된 분류기의 그대디언트를 활용하여 이미지 충실도와 샘플 다양성의 균형을 맞추는 간단한 기술입니다.
분류기를 독립적으로 학습할 필요를 제거하기 위해 종종 classifier-free guidance [39]가 대안 방법으로 사용됩니다.
이 접근 방식에서는 학습 중에 c를 랜덤으로 떨어뜨려 조건부 및 무조건부 디퓨전 모델을 공동으로 학습합니다.
샘플링 단계에서는 조건부 모델 ϵ_θ(x_t, c, t)와 무조건부 모델 ϵ_θ(x_t, t)의 예측을 기반으로 예측 노이즈를 계산합니다:
, 여기서 종종 가이던스 스케일 또는 가이던스 가중치로 명명되는 w는 조건 c와의 정렬을 조정하는 스칼라 값입니다.
text-to-image 디퓨전 모델의 경우 classifier-free guidance는 생성된 샘플의 이미지-텍스트 정렬을 향상시키는 데 중요한 역할을 합니다.
본 연구에서는 IP-Adapter를 구현하기 위해 오픈 소스 SD 모델을 예제 base 모델로 사용합니다.
SD는 frozen CLIP 텍스트 인코더에서 추출한 텍스트 피쳐를 기반으로 하는 잠재 디퓨전 모델입니다.
디퓨전 모델의 아키텍처는 어텐션 레이어가 있는 UNet [40]을 기반으로 합니다.
Imagen과 같은 픽셀 기반 디퓨전 모델에 비해 SD는 사전 학습된 오토인코더 모델의 잠재 공간에 구축되기 때문에 더 효율적입니다.
3.2 Image Prompt Adapter
이 논문에서는 이미지 프롬프트 어댑터가 사전 학습된 text-to-image 디퓨전 모델이 이미지 프롬프트로 이미지를 생성할 수 있도록 설계되었습니다.
이전 섹션에서 언급했듯이 현재 어댑터는 파인튜닝된 이미지 프롬프트 모델 또는 처음부터 학습된 모델의 성능을 일치시키기 어렵습니다.
가장 큰 이유는 이미지 피쳐를 사전 학습된 모델에 효과적으로 임베딩할 수 없기 때문입니다.
대부분의 방법은 단순히 concat된 피쳐를 frozen 크로스 어텐션 레이어에 공급하여 디퓨전 모델이 이미지 프롬프트에서 세분화된 피쳐를 캡처하는 것을 방지합니다.
이 문제를 해결하기 위해 이미지 피쳐를 새로 추가된 크로스 어텐션 레이어에 의해 임베딩하는 분리된 크로스 어텐션 전략을 제시합니다.
제안된 IP-Adapter의 전체 아키텍처는 그림 2에 나와 있습니다.
제안된 IP-Adapter는 두 부분으로 구성됩니다: 이미지 프롬프트에서 이미지 피쳐를 추출하기 위한 이미지 인코더 및 사전 학습된 text-to-image 디퓨전 모델에 이미지 피쳐를 임베딩하기 위해 디커플링된 크로스 어텐션을 갖는 적응된 모듈.
3.2.1 Image Encoder
대부분의 방법을 따라 사전 학습된 CLIP 이미지 인코더 모델을 사용하여 이미지 프롬프트에서 이미지 피쳐를 추출합니다.
CLIP 모델은 이미지-텍스트 쌍이 포함된 대규모 데이터 세트에 대한 대조 학습으로 학습된 멀티모달 모델입니다.
저희는 이미지 캡션과 잘 정렬되고 이미지의 풍부한 콘텐츠와 스타일을 나타낼 수 있는 CLIP 이미지 인코더의 전역 이미지 임베딩을 활용합니다.
학습 단계에서는 CLIP 이미지 인코더가 frozen됩니다.
전역 이미지 임베딩을 효과적으로 분해하기 위해 학습 가능한 작은 투영 네트워크를 사용하여 이미지 임베딩을 길이가 N인 일련의 피쳐로 투영합니다 (이 연구에서는 N = 4를 사용합니다), 이미지 피쳐의 차원은 사전 학습된 디퓨전 모델의 텍스트 피쳐의 차원과 동일합니다.
이 연구에 사용된 투영 네트워크는 선형 레이어와 Layer Normalization [41]로 구성됩니다.
3.2.2 Decoupled Cross-Attention
이미지 피쳐는 크로스 어텐션이 분리된 적응된 모듈에 의해 사전 학습된 UNet 모델에 통합됩니다.
원래 SD 모델에서는 CLIP 텍스트 인코더의 텍스트 피쳐가 크로스 어텐션 레이어에 공급되어 UNet 모델에 연결됩니다.
쿼리 피쳐 Z와 텍스트 피쳐 c_t가 주어지면 크로스 어텐션 Z'의 출력은 다음 식으로 정의할 수 있습니다:
, 여기서 Q = Z W_q, K = c_t W_k, V = c_t W_v는 각각 어텐션 연산의 query, key 및 value 행렬이고, W_q, W_k, W_v는 학습 가능한 선형 투영 레이어의 가중치 행렬입니다.
이미지 피쳐를 삽입하는 간단한 방법은 이미지 피쳐와 텍스트 피쳐를 concat한 다음 크로스 어텐션 레이어에 공급하는 것입니다.
그러나 이 접근 방식이 충분히 효과적이지 않다는 것을 발견했습니다.
대신 텍스트 피쳐와 이미지 피쳐에 대한 크로스 어텐션 레이어가 별도인 분리된 크로스 어텐션 메커니즘을 제안합니다.
구체적으로 말씀드리면, 이미지 피쳐를 삽입하기 위해 원래 UNet 모델에서 각 크로스 어텐션 레이어에 대한 새로운 크로스 어텐션 레이어를 추가합니다.
이미지 피쳐 c_i가 주어지면 새로운 크로스 어텐션 Z''의 출력은 다음과 같이 계산됩니다:
, 여기서 Q = Z W_q, K' = c_i W'_k 및 V' = c_i W'_v가 이미지 피쳐의 query, key 및 value 행렬입니다.
W'_k 및 W'_v가 해당 가중치 행렬입니다.
이미지 크로스 어텐션에는 텍스트 크로스 어텐션과 동일한 쿼리를 사용합니다.
결과적으로 각 크로스 어텐션 레이어에 대해 두 개의 매개 변수 W'_k, W'_v만 추가하면 됩니다.
수렴 속도를 높이기 위해 W'_k 및 W'_v는 W_k 및 W_v에서 초기화됩니다.
그런 다음 이미지 크로스 어텐션의 출력을 텍스트 크로스 어텐션의 출력에 추가하기만 하면 됩니다.
따라서 분리된 크로스 어텐션의 최종 공식은 다음과 같이 정의됩니다:
원래 UNet 모델을 freeze하기 때문에 위의 분리된 크로스 어텐션에서 W'_k와 W'_v만 학습할 수 있습니다.
3.2.3 Training and Inference
학습 중에는 사전 학습된 디퓨전 모델의 매개 변수를 고정된 상태로 유지하면서 IP-Adapter만 최적화합니다.
IP-Adapter는 또한 원래 SD와 동일한 학습 objective를 사용하여 이미지-텍스트 쌍으로 데이터 세트에서 학습됩니다:
우리는 또한 추론 단계에서 classifier-free guidance를 가능하게 하기 위해 학습 단계에서 이미지 조건을 랜덤으로 떨어 뜨립니다:
여기서는 이미지 조건이 삭제된 경우 CLIP 이미지 임베딩을 제로화하기만 하면 됩니다.
텍스트 크로스 어텐션과 이미지 크로스 어텐션이 분리됨에 따라 추론 단계에서 이미지 조건의 가중치도 조정할 수 있습니다:
, 여기서 λ은 가중치 인자이며, 모델은 λ = 0인 경우 원래 text-to-image 디퓨전 모델이 됩니다.
4 Experiments
4.1 Experimental Setup
4.1.1 Training Data
IP-Adapter를 학습하기 위해 두 개의 오픈 소스 데이터 세트에서 약 1,000만 개의 텍스트-이미지 쌍을 포함하는 멀티모달 데이터 세트를 구축합니다 - LAION-2B [42] and COYO-700M [43].
4.1.2 Implementation Details
저희의 실험은 SD v1.5를 기반으로 하며, OpenCLIP ViT-H/14 [44]를 이미지 인코더로 사용합니다.
SD 모델에는 16개의 크로스 어텐션 레이어가 있으며, 이 각 레이어에 대해 새로운 이미지 크로스 어텐션 레이어를 추가합니다.
프로젝션 네트워크와 적응된 모듈을 포함한 IP-Adapter의 총 학습 가능한 매개 변수는 약 22M에 달하므로 IP-Adapter는 상당히 가볍습니다.
저희는HuggingFace diffusers library [45]를 구현하고 빠른 학습을 위해 DeepSpeed ZeRO-2 [13]를 사용합니다.
IP-Adapter는 GPU당 배치 크기가 8개인 1M 단계를 위해 8개의 V100 GPU가 있는 단일 기계에서 학습됩니다.
저희는 고정 학습률이 0.0001이고 가중치 감쇠가 0.01인 AdamW 옵티마이저 [46]를 사용합니다.
학습 중에 이미지의 가장 짧은 면의 크기를 512로 조정한 다음 512 × 512 해상도로 이미지를 중앙 크롭합니다.
classifier-free guidance를 가능하게 하기 위해 텍스트와 이미지를 개별적으로 드롭하는 확률 0.05, 텍스트와 이미지를 동시에 드롭하는 확률 0.05를 사용합니다.
추론 단계에서는 50단계의 DDIM 샘플러를 채택하고 가이던스 척도를 7.5로 설정합니다.
이미지 프롬프트만 사용하는 경우 텍스트 프롬프트를 비워두고 λ = 1.0으로 설정합니다.
4.2 Comparison with Existing Methods
이 방법의 효과를 입증하기 위해 IP-Adapter를 이미지 프롬프트가 있는 기존 생성 방법과 비교합니다.
우리는 세 가지 유형의 방법을 선택합니다: 처음부터 학습, text-to-image 모델로 파인튜닝 및 어댑터.
처음부터 학습된 방법에 대해서는 3개의 오픈 소스 모델을 선택합니다: DALL-E 2, DALL-E 2와 잠재 디퓨전이 혼합된 Kandinsky-2-1, Versatile Diffusion [26]을 재현한 오픈 unCLIP.
파인튜닝된 모델의 경우 SD Image Variations과 SD unCLIP을 선택합니다.
어댑터의 경우 IP-Adapter를 Uni-ControlNet, ControlNet Shuffle, ControlNet Reference-only 및 SeeCoder의 전역 컨트롤러인 T2I-Adapter의 style-adapter와 비교합니다.
4.2.1 Quantitative Comparison
저희는 정량적 평가를 위해 캡션이 포함된 5,000개의 이미지가 포함된 COCO2017 [47]의 검증 세트를 사용합니다.
공정한 비교를 위해 데이터 세트의 각 샘플에 대해 이미지 프롬프트에 따라 4개의 이미지를 생성하여 각 방법에 대해 총 20,000개의 이미지를 생성합니다.
저희는 이미지 조건과의 정렬을 평가하기 위해 두 가지 메트릭을 사용합니다:
• CLIP-I: 생성된 이미지의 CLIP 이미지 임베딩과 이미지 프롬프트의 유사성.
• CLIP-T: 이미지 프롬프트의 캡션과 함께 생성된 이미지의 CLIPScore [48].
CLIP ViT-L/14 모델을 사용하여 생성된 모든 이미지에서 두 메트릭의 평균값을 계산합니다.
오픈 소스 SeeCoder가 추가 구조 제어와 함께 사용되고 ControlNet Reference-only가 웹 프레임워크에서 출시됨에 따라 정성적 평가만 수행합니다.
비교 결과는 표 1에 나와 있습니다.
저희가 관찰한 바와 같이, 저희의 방법은 다른 어댑터보다 훨씬 우수하며, 또한 22M 매개 변수만 있는 파인튜닝 모델과 비교하거나 심지어 더 나은 것으로 나타났습니다.
4.2.2 Qualitative Comparison
또한 다양한 종류와 스타일의 이미지를 선택하여 우리의 방법을 정성적으로 평가합니다.
개인 정보 보호를 위해 실제 얼굴이 있는 이미지는 합성입니다.
SeeCoder의 경우 ControlNet과 함께 스크라이블 컨트롤을 사용하여 이미지를 생성합니다.
ControlNet Reference-only의 경우 BLIP 캡션 모델 [49]로 생성된 캡션도 입력합니다.
각 이미지 프롬프트에 대해 랜덤으로 4개의 샘플을 생성하고 공정성을 보장하기 위해 각 방법에 가장 적합한 것을 선택합니다.
그림 3에서 볼 수 있듯이 제안된 IP-Adapter는 이미지 품질과 참조 이미지와의 정렬 모두에서 다른 어댑터보다 대부분 우수합니다.
또한 우리의 방법은 파인튜닝된 모델보다 약간 더 우수하며 대부분의 경우 처음부터 학습된 모델과 비슷합니다.
결론적으로, 제안된 IP-Adapter는 사전 학습된 text-to-image 디퓨전 모델에 대한 이미지 프롬프트로 생성 기능을 달성하는 가볍고 효과적인 방법입니다.
4.3 More Results
제안된 IP-Adapter는 이미지 프롬프트로 생성을 이루도록 설계되었지만 강력한 일반화 기능을 통해 더 넓은 범위의 애플리케이션을 사용할 수 있습니다.
표 1에서 볼 수 있듯이 IP-Adapter는 사용자 지정 모델에서 재사용할 수 있을 뿐만 아니라 기존의 제어 가능한 도구 및 텍스트 프롬프트와도 호환됩니다.
이 부분에서는 어댑터가 생성할 수 있는 더 많은 결과를 보여줍니다.
4.3.1 Generalizable to Custom Models
학습 단계에서 원래 디퓨전 모델을 frozen함에 따라 IP-Adapter는 다른 어댑터(예: ControlNet)와 마찬가지로 SD v1.5에서 파인튜닝된 사용자 지정 모델에도 일반화할 수 있습니다.
즉, IP-Adapter가 학습되면 동일한 base 모델에서 파인튜닝된 사용자 지정 모델에서 직접 재사용할 수 있습니다.
이를 검증하기 위해 HuggingFace 모델 라이브러리에서 다음과 같은 세 가지 커뮤니티 모델을 선택합니다: Realistic Vision V4.0, Anythy v4 및 ReV Animated.
이 모델은 모두 SD v1.5에서 파인튜닝되었습니다.
그림 4에서 볼 수 있듯이 IP-Adapter는 이러한 커뮤니티 모델에서 잘 작동합니다.
또한 생성된 이미지는 커뮤니티 모델의 스타일을 혼합할 수 있으며 예를 들어 애니메이션 스타일 모델 Anythy v4를 사용할 때 애니메이션 스타일의 이미지를 생성할 수 있습니다.
흥미롭게도 SD v1.5는 SD v1.4를 기반으로 더 많은 단계로 학습되기 때문에 SD v1.4에 직접 적용할 수 있습니다.
4.3.2 Structure Control
text-to-image 디퓨전 모델의 경우 인기 있는 응용 분야는 추가적인 구조 제어로 이미지를 만들 수 있다는 것입니다.
저희 어댑터는 원래 네트워크 구조를 변경하지 않기 때문에 IP-Adapter가 기존의 제어 가능한 도구와 완전히 호환된다는 것을 발견했습니다.
결과적으로 이미지 프롬프트 및 추가 조건으로 제어 가능한 이미지도 생성할 수 있습니다.
여기서는 IP-Adapter를 기존의 제어 가능한 두 가지 도구인 ControlNet 및 T2I-Adapter와 결합합니다.
그림 5는 이미지 프롬프트 및 다양한 구조 제어로 생성되는 다양한 샘플을 보여줍니다: 처음 두 행의 샘플은 ControlNet 모델을 사용하여 생성되고 마지막 행의 샘플은 T2I-Adapter를 사용하여 생성됩니다.
우리의 어댑터는 이러한 도구와 효과적으로 작동하여 파인튜닝 없이도 보다 제어 가능한 이미지를 생성합니다.
또한 구조 제어 생성의 다른 어댑터와 어댑터를 비교한 결과는 그림 6과 같습니다.
T2I-Adapter와 Uni-ControlNet의 경우 기본 구성 가능한 다중 조건을 사용합니다.
SeeCoder와 IP-Adapter의 경우 구조 제어를 달성하기 위해 ControlNet을 사용합니다.
ControlNet Shuffle과 ControlNet Reference-inly의 경우 multi-ControlNet을 사용합니다.
보시다시피, 우리의 방법은 이미지 품질 측면에서 다른 방법보다 성능이 뛰어날 뿐만 아니라 참조 이미지와 더 잘 일치하는 이미지를 생성합니다.
4.3.3 Image-to-Image and Inpainting
text-to-image 생성 외에도 text-to-image 디퓨전 모델은 text-guided image-to-image 및 SDEdit [50]을 사용한 인페인팅도 달성할 수 있습니다.
그림 7에서 볼 수 있듯이, 텍스트 프롬프트를 이미지 프롬프트로 교체하기만 하면 image-to-image 및 인페인팅도 얻을 수 있습니다.
4.3.4 Multimodal Prompts
완전히 파인튜닝된 이미지 프롬프트 모델의 경우 원래의 text-to-image 기능이 거의 손실됩니다.
그러나 제안된 IP-Adapter를 사용하면 이미지 프롬프트와 텍스트 프롬프트를 포함한 멀티모달 프롬프트로 이미지를 생성할 수 있습니다.
이 기능은 커뮤니티 모델에서 특히 잘 작동한다는 것을 발견했습니다.
멀티모달 프롬프트가 있는 추론 단계에서는 이미지 프롬프트와 텍스트 프롬프트 간의 균형을 맞추기 위해 λ을 조정합니다.
그림 8은 Realistic Vision V4.0 모델을 사용하여 멀티모달 프롬프트로 다양한 결과를 표시합니다.
보시다시피 추가 텍스트 프롬프트를 사용하여 보다 다양한 이미지를 생성할 수 있습니다.
예를 들어, 간단한 텍스트 설명을 사용하여 이미지 프롬프트에서 속성을 편집하고 주제의 장면을 변경할 수 있습니다.
또한 IP-Adapter를 Versatile Diffusion, BLIP Diffusion [31], Uni-ControlNet, T2I-Adapter, ControlNet Shuffle 및 ControlNet Reference-only를 포함한 다른 방법과 비교합니다.
비교 결과는 그림 9에 나와 있습니다.
기존의 다른 방법과 비교했을 때, 우리의 방법은 이미지 품질과 멀티모달 프롬프트와의 정렬 모두에서 우수한 결과를 생성할 수 있습니다.
4.4 Ablation Study
4.4.1 Importance of Decoupled Cross-Attention
분리된 크로스 어텐션 전략의 효과를 검증하기 위해 분리된 크로스 어텐션이 없는 간단한 어댑터도 비교합니다: 이미지 피쳐는 텍스트 피쳐와 연결된 다음 미리 학습된 크로스 어텐션 레이어에 포함됩니다.
공정한 비교를 위해 동일한 구성으로 200,000 단계에 대해 두 어댑터를 모두 학습했습니다.
그림 10은 크로스 어텐션이 분리된 IP-Adapter와 간단한 어댑터와의 비교 예를 제공합니다.
우리가 관찰할 수 있듯이 IP-Adapter는 간단한 어댑터보다 고품질의 이미지를 생성할 수 있을 뿐만 아니라 이미지 프롬프트로 더 일관된 이미지를 생성할 수 있습니다.
4.4.2 Comparison of Fine-grained Features and Global Features
IP-Adapter는 CLIP 이미지 인코더의 전역 이미지 임베딩을 활용하기 때문에 참조 이미지에서 일부 정보를 잃을 수 있습니다.
따라서 세분화된 피쳐를 기반으로 하는 IP-Adapter를 설계합니다.
먼저 CLIP 이미지 인코더에서 두 번째 레이어의 그리드 피쳐를 추출합니다.
그런 다음 작은 쿼리 네트워크를 사용하여 피쳐를 학습합니다.
특히 경량 트랜스포머 모델을 사용하여 그리드 피쳐에서 정보를 추출하기 위해 16개의 학습 가능한 토큰을 정의합니다.
쿼리 네트워크의 토큰 피쳐는 크로스 어텐션 레이어에 대한 입력 역할을 합니다.
두 어댑터의 결과는 그림 11에 나와 있습니다.
세분화된 피쳐를 가진 IP-Adapter는 이미지 프롬프트와 함께 더 일관된 이미지를 생성할 수 있지만 공간 구조 정보도 학습할 수 있어 생성된 이미지의 다양성을 줄일 수 있습니다.
그러나 텍스트 프롬프트 및 구조 맵과 같은 추가 조건을 이미지 프롬프트와 결합하여 더 다양한 이미지를 생성할 수 있습니다.
예를 들어, 우리는 추가적인 인간 포즈의 가이던스를 통해 새로운 이미지를 합성할 수 있습니다.
5 Conclusions and Future Work
이 작업에서는 사전 학습된 text-to-image 디퓨전 모델에 대한 이미지 프롬프트 기능을 달성하기 위해 IP-Adapter를 제안합니다.
IP-Adapter의 핵심 설계는 이미지 피쳐를 위한 별도의 크로스 어텐션 레이어를 통합하는 분리된 크로스 어텐션 전략을 기반으로 합니다.
정량적 및 정성적 실험 결과 모두 22M개의 매개 변수만을 가진 IP-Adapter가 완전히 파인튜닝된 이미지 프롬프트 모델 및 기존 어댑터와 비교할 수 있거나 훨씬 더 나은 성능을 발휘한다는 것을 보여줍니다.
또한 IP-Adapter는 한 번만 학습한 후 동일한 base 모델 및 기존 구조적 제어 가능한 도구에서 파생된 사용자 지정 모델과 직접 통합하여 적용 가능성을 확장할 수 있습니다.
더 중요한 것은 이미지 프롬프트를 텍스트 프롬프트와 결합하여 멀티모달 이미지 생성을 달성할 수 있다는 것입니다.
IP-Adapter의 효과에도 불구하고 콘텐츠와 스타일에서 참조 이미지와 유사한 이미지만 생성할 수 있습니다.
즉, Textual Inversion [51] 및 DreamBooth [52]와 같은 일부 기존 방법처럼 주어진 이미지의 대상과 매우 일치하는 이미지를 합성할 수 없습니다.
향후에는 일관성을 향상시키기 위해 보다 강력한 이미지 프롬프트 어댑터를 개발하는 것을 목표로 합니다.
'Diffusion' 카테고리의 다른 글
Adding Conditional Control to Text-to-Image Diffusion Models (0) | 2024.07.30 |
---|---|
Improving Diffusion Models for Authentic Virtual Try-on in the Wild (0) | 2024.06.27 |
Projected GANs Converge Faster (0) | 2024.06.15 |
On Distillation of Guided Diffusion Models (0) | 2023.07.20 |
GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models (0) | 2023.05.30 |