Adding Conditional Control to Text-to-Image Diffusion Models

2024. 7. 30. 11:45Diffusion

Adding Conditional Control to Text-to-Image Diffusion Models

 

Lvmin Zhang, Anyi Rao, Maneesh Agrawala

 

Abstract

저희는 사전 학습된 대규모 text-to-image 디퓨전 모델에 공간 조건화 제어를 추가하기 위한 신경망 아키텍처인 ControlNet을 소개합니다.

ControlNet은 프로덕션 준비가 된 대규모 디퓨전 모델을 잠그고, 수십억 개의 이미지로 사전 학습된 심층적이고 강력한 인코딩 레이어를 강력한 백본으로 재사용하여 다양한 조건부 제어 세트를 학습합니다.

신경망 아키텍처는 매개 변수를 0에서 점진적으로 확장하고 유해한 노이즈가 파인튜닝에 영향을 미치지 않도록 하는 "zero convolution"(제로 초기화 컨볼루션 레이어)과 연결됩니다.

저희는 프롬프트가 있든 없든 단일 또는 여러 조건을 사용하여 Stable Diffusion으로 다양한 조건화 제어(예: 에지, depth, 세그멘테이션, 인간 포즈 등)를 테스트합니다.

저희는 ControlNet의 학습이 소규모(<50k) 및 대규모(>1m) 데이터 세트에서 강력하다는 것을 보여줍니다.

광범위한 결과는 ControlNet이 이미지 디퓨전 모델을 제어하기 위한 더 넓은 응용 프로그램을 용이하게 할 수 있음을 보여줍니다.

 

 

1. Introduction

우리 중 많은 사람들이 고유한 이미지에 담고자 하는 시각적 영감의 섬광을 경험했습니다.

text-to-image 디퓨전 모델 [54, 62, 72]의 등장으로 텍스트 프롬프트를 입력하여 시각적으로 놀라운 이미지를 만들 수 있습니다.

그러나 text-to-image 모델은 이미지의 공간적 구성에 대해 제공하는 제어에 제한이 있습니다; 복잡한 레이아웃, 포즈, 모양 및 형태를 정확하게 표현하는 것은 텍스트 프롬프트만으로는 어려울 수 있습니다.

우리의 정신 이미지와 정확하게 일치하는 이미지를 생성하려면 종종 프롬프트를 편집하고 결과 이미지를 검사한 다음 프롬프트를 다시 편집하는 수많은 시행착오 주기가 필요합니다.

 

사용자가 원하는 이미지 구성을 직접 지정하는 추가 이미지를 제공함으로써 더 세분화된 공간 제어를 가능하게 할 수 있을까요?

컴퓨터 비전 및 머신러닝에서 이러한 추가 이미지(예: 에지 맵, 인간 포즈 골격, 세그멘테이션 맵, depth, normal 등)는 종종 이미지 생성 프로세스에 대한 조건화로 처리됩니다.

image-to-image 변환 모델 [34, 98]은 조건화 이미지에서 타겟 이미지로의 매핑을 학습합니다.

연구 커뮤니티는 또한 공간 마스크 [6, 20], 이미지 편집 지침 [10], 파인튜닝 통한 개인화 [21, 75] 등을 사용하여 text-to-image 모델을 제어하는 조치를 취했습니다.

디노이징 디퓨전 프로세스 제한 또는 어텐션 레이어 활성화 편집과 같은 학습 없는 기술로 몇 가지 문제(예: 이미지 변형 생성, 인페인팅)를 해결할 수 있지만, depth-to-image, pose-to-image 등과 같은 보다 다양한 문제에는 종단 간 학습 및 데이터 기반 솔루션이 필요합니다.

 

대규모 text-to-image 디퓨전 모델을 엔드투엔드 방식으로 학습하는 것은 어렵습니다.

특정 조건에 대한 학습 데이터의 양은 일반적인 text-to-image 학습에 사용할 수 있는 데이터보다 훨씬 적을 수 있습니다.

예를 들어, 다양한 특정 문제(예: 객체 모양/normal, 인간 포즈 추출 등)에 대한 가장 큰 데이터 세트의 크기는 일반적으로 약 100K이며, 이는 Stable Diffusion [82]을 학습하는 데 사용된 LAION-5B [79] 데이터 세트보다 50,000배 작습니다.

제한된 데이터로 대규모 사전 학습된 모델을 직접 파인튜닝하거나 계속 학습하면 과적합 및 치명적인 망각 [31, 75]을 일으킬 수 있습니다.

연구자들은 이러한 망각이 학습 가능한 매개 변수의 수나 순위를 제한함으로써 완화될 수 있음을 보여주었습니다 [14, 25, 31, 92].

문제의 경우 복잡한 모양과 다양한 높은 레벨 시맨틱을 가진 야생 조건화 이미지를 처리하기 위해 더 깊고 맞춤화된 신경 아키텍처를 설계하는 것이 필요할 수 있습니다.

 

이 논문에서는 사전 학습된 대규모 text-to-image 디퓨전 모델(우리의 구현에서 Stable Diffusion)을 위한 조건부 제어를 학습하는 엔드투엔드 신경망 아키텍처인 ControlNet을 소개합니다.

ControlNet은 매개변수를 잠그고 인코딩 레이어의 학습 가능한 복사본을 만들어 대규모 모델의 품질과 기능을 보존합니다.

이 아키텍처는 사전 학습된 대규모 모델을 다양한 조건부 제어를 학습하기 위한 강력한 백본으로 취급합니다.

학습 가능한 복사본과 원래 잠긴 모델은 0으로 초기화된 가중치로 컨볼루션 레이어가 없는 상태로 연결되어 학습 중에 점진적으로 성장합니다.

이 아키텍처는 학습 초기에 대규모 디퓨전 모델의 심층 피쳐에 유해한 노이즈가 추가되지 않도록 보장하고, 학습 가능한 복사본의 대규모 사전 학습된 백본이 이러한 노이즈로 인해 손상되지 않도록 보호합니다.

그림 1: 학습된 조건으로 Stable Diffusion 제어. ControlNet을 사용하면 사용자가 Canny edges (위), 인간 포즈 (아래) 등의 조건을 추가하여 미리 학습된 대규모 디퓨전 모델의 이미지 생성을 제어할 수 있습니다. 기본 결과는 "a high-quality, detailed, and professional image"라는 프롬프트를 사용합니다. 사용자는 선택적으로 "chef in kitchen"과 같은 프롬프트를 줄 수 있습니다.

실험 결과, ControlNet은 Canny edges, Hough lines, 사용자 낙서, 인간 키 포인트, 세그멘테이션 맵, 모양 normals, depths 등을 포함한 다양한 조건화 입력으로 Stable Diffusion을 제어할 수 있는 것으로 나타났습니다(그림 1).

저희는 텍스트 프롬프트가 있든 없든 단일 조건화 이미지를 사용하여 접근 방식을 테스트하고, 저희의 접근 방식이 여러 조건의 구성을 어떻게 지원하는지 보여줍니다.

또한, 저희는 ControlNet의 학습이 다양한 크기의 데이터 세트에서 강력하고 확장 가능하며, depth-to-image 조건화와 같은 일부 작업의 경우 단일 NVIDIA RTX 3090Ti GPU에서 ControlNet을 학습하면 대규모 계산 클러스터에서 학습된 산업 모델과 경쟁할 수 있는 결과를 얻을 수 있다고 보고합니다.

마지막으로, 저희는 모델의 각 구성 요소의 기여도를 조사하기 위해 ablation 연구를 수행하고, 모델을 사용자 연구를 통해 여러 강력한 조건부 이미지 생성 베이스라인과 비교합니다.

 

요약하자면, (1) 저희는 효율적인 파인튜닝을 통해 사전 학습된 text-to-image 디퓨전 모델에 공간적으로 국한된 입력 조건을 추가할 수 있는 신경망 아키텍처인 ControlNet을 제안하고, (2) Canny edges, Hough lines, 사용자 낙서, 인간 키 포인트, 세그멘테이션 맵, 모양 normals, depth 및 만화 라인 드로잉을 조건으로 하는 Stable Diffusion을 제어하기 위해 사전 학습된 ControlNet을 제시하고, (3) 여러 대체 아키텍처와 비교한 ablation 실험을 통해 방법을 검증하고, 다양한 작업에 걸쳐 이전의 여러 베이스라인에 초점을 맞춘 사용자 연구를 수행합니다.

 

 

2. Related Work

2.1 Finetuning Neural Networks

신경망을 파인튜닝하는 한 가지 방법은 추가 학습 데이터로 신경망을 직접 계속 학습시키는 것입니다.

그러나 이 접근 방식은 과적합, 모드 붕괴 및 치명적인 망각으로 이어질 수 있습니다.

광범위한 연구는 이러한 문제를 방지하는 파인튜닝 전략을 개발하는 데 초점을 맞추고 있습니다.

 

HyperNetwork는 더 큰 신경망의 가중치에 영향을 미치기 위해 작은 순환 신경망을 학습시키는 것을 목표로 Natural
Language Processing (NLP) 커뮤니티 [25]에서 시작된 접근 방식입니다.

generative adversarial networks (GAN) [4, 18]을 사용한 이미지 생성에 적용되었습니다.

Heathen et al. [26]과 Kurumuz [43]은 출력 이미지의 예술적 스타일을 변경하기 위해 Stable Diffusion [72]을 위한 하이퍼네트워크를 구현합니다.

 

Adapter 방법은 사전 학습된 트랜스포머 모델에 새로운 모듈 레이어를 내장하여 다른 작업에 사용자 지정하는 데 NLP에서 널리 사용됩니다 [30, 84].

컴퓨터 비전에서 어댑터는 incremental learning [74] 및 domain adaptation [70]에 사용됩니다.

이 기술은 사전 학습된 백본 모델을 다른 작업 [23, 66, 85, 94]으로 전송하기 위해 CLIP [66]과 함께 자주 사용됩니다.

최근에는 어댑터가 비전 트랜스포머 [49, 50] 및 ViT-Adapter [14]에서 성공적인 결과를 얻었습니다.

T2I-Adapter [56]는 우리와 동시에 외부 조건에 Stable Diffusion을 적응시킵니다.

 

Additive Learning은 학습된 가중치 마스크 [51, 74], pruning [52] 또는 hard attetion [80]을 사용하여 원래 모델 가중치를 동결하고 소수의 새로운 매개변수를 추가함으로써 잊어버리는 것을 방지합니다.

Side-Tuning [92]은 사이드 브랜치 모델을 사용하여 동결 모델과 추가된 네트워크의 출력을 미리 정의된 혼합 가중치 스케줄과 함께 선형으로 혼합하여 추가 기능을 학습합니다.

 

Low-Rank Adaptation (LoRA)은 많은 과도하게 매개변수화된 모델이 낮은 고유 차원 부분 공간 [2, 47]에 존재한다는 관찰을 기반으로 낮은 순위 행렬로 매개변수의 오프셋을 학습하여 치명적인 망각 [31]을 방지합니다.

 

Zero-Initialized Layers는 네트워크 블록을 연결하는 데 사용됩니다.

신경망에 대한 연구는 네트워크 가중치의 초기화 및 조작에 대해 광범위하게 논의했습니다[36, 37, 44, 45, 46, 76, 83, 95].

예를 들어, 가중치의 가우시안 초기화는 0으로 초기화하는 것 [1]보다 덜 위험할 수 있습니다.

보다 최근에는 Nichol et al. [59]이 학습을 개선하기 위해 디퓨전 모델에서 컨볼루션 레이어의 초기 가중치를 확장하는 방법에 대해 논의했으며, "zero module"의 구현은 가중치를 0으로 확장하는 극단적인 경우입니다.

안정성의 모델 카드 [83]도 신경망 레이어에서 제로 가중치 사용에 대해 언급합니다.

초기 컨볼루션 가중치를 조작하는 것은 ProGAN [36], StyleGAN [37] 및 Noise2Noise [46]에서도 논의됩니다.

 

2.2. Image Diffusion

Image Diffusion Models은 Sohl-Dickstein et al. [81]에 의해 처음 소개되었으며 최근에는 이미지 생성에 적용되었습니다[17, 42].

Latent Diffusion Models (LDM) [72]은 잠재 이미지 공간 [19]에서 디퓨전 단계를 수행하여 계산 비용을 절감합니다.

text-to-image 디퓨전 모델은 CLIP [66]과 같은 사전 학습된 언어 모델을 통해 텍스트 입력을 잠재 벡터로 인코딩하여 SOTA 이미지 생성 결과를 달성합니다.

Glide [58]는 이미지 생성 및 편집을 지원하는 텍스트 유도 디퓨전 모델입니다.

Disco Diffusion [5]은 clip 가이던스로 텍스트 프롬프트를 처리합니다.

Stable Diffusion [82]은 latent diffusion [72]의 대규모 구현입니다.

Imagen [78]은 잠재 이미지를 사용하지 않고 피라미드 구조를 사용하여 픽셀을 직접 디퓨즈합니다.

상용 제품에는 DAL-E2 [62] 및 Midjourney [54]가 있습니다.

 

Controlling Image Diffusion Models는 개인화, 사용자 지정 또는 작업별 이미지 생성을 용이하게 합니다.

이미지 디퓨전 프로세스는 색상 변화 [53] 및 인페인팅 [67, 7]에 대한 일부 제어를 직접 제공합니다.

텍스트 가이드 제어 방법은 프롬프트 조정, CLIP 피쳐 조작 및 크로스 어텐션 수정 [7, 10, 20, 27, 40, 41, 58, 64, 67]에 중점을 둡니다.

MakeAScene [20]은 이미지 생성을 제어하기 위해 세그멘테이션 마스크를 토큰으로 인코딩합니다.

SpaText [6]은 세그멘테이션 마스크를 로컬화된 토큰 임베딩으로 매핑합니다.

GLIGEN [48]은 grounded 생성을 위해 디퓨전 모델의 어텐션 레이어에서 새로운 매개 변수를 학습합니다.

Textual Inversion [21] 및 DreamBooth [75]은 사용자 제공 예제 이미지의 작은 세트를 사용하여 이미지 디퓨전 모델을 파인튜닝하여 생성된 이미지의 콘텐츠를 개인화할 수 있습니다.

프롬프트 기반 이미지 편집 [10, 33, 86]은 프롬프트로 이미지를 조작할 수 있는 실용적인 도구를 제공합니다.

Voynov et al. [88]은 스케치로 디퓨전 프로세스에 맞는 최적화 방법을 제안합니다.

동시 작업 [8, 9, 32, 56]은 디퓨전 모델을 제어하는 매우 다양한 방법을 검토합니다.

 

2.3. Image-to-Image Translation

Conditional GAN [15, 34, 63, 90, 93, 97, 98, 99] 및 트랜스포머 [13, 19, 68]은 서로 다른 이미지 도메인 간의 매핑을 학습할 수 있습니다, 예를 들어, Taming Transformer [19]는 비전 트랜스포머 접근 방식입니다; Palette [77]는 처음부터 학습된 조건부 디퓨전 모델입니다; PITI [89]는 image-to-image 변환을 위한 사전 학습 기반 조건부 디퓨전 모델입니다.

사전 학습된 GAN을 조작하면 특정 image-to-image 작업을 처리할 수 있습니다, 예를 들어, StyleGAN은 추가 인코더에 의해 제어될 수 있으며, [3, 22, 38, 39, 55, 60, 65, 71]에서 더 많은 애플리케이션이 연구됩니다.

 

 

3. Method

ControlNet은 공간적으로 국한된 작업별 이미지 조건으로 사전 학습된 대규모 text-to-image 디퓨전 모델을 향상시킬 수 있는 신경망 아키텍처입니다.

먼저 섹션 3.1의 ControlNet의 기본 구조를 소개한 다음 섹션 3.2의 이미지 디퓨전 모델인 Stable Diffusion [72]에 ControlNet을 적용하는 방법을 설명합니다.

섹션 3.3의 학습에 대해 자세히 설명하고 섹션 3.4의 여러 ControlNet 구성과 같은 추론 중 몇 가지 추가 고려 사항을 자세히 설명합니다.

그림 2: 신경 블록은 (a)와 같이 피쳐 맵 x를 입력으로 받아 다른 피쳐 맵 y를 출력합니다. 이러한 블록에 ControlNet을 추가하기 위해 원래 블록을 잠그고 학습 가능한 복사본을 만들고 가중치와 바이어스가 모두 0으로 초기화된 제로 컨볼루션 레이어, 즉 1 × 1 컨볼루션을 사용하여 서로 연결합니다. 여기 (b)와 같이 c는 네트워크에 추가하고자 하는 조건화 벡터입니다.

3.1. ControlNet

ControlNet은 신경망의 블록에 추가적인 조건을 주입합니다 (그림 2).

여기서 네트워크 블록이라는 용어를 사용하여 신경망의 단일 단위를 형성하기 위해 일반적으로 결합되는 신경망 레이어 세트(예: resnet 블록, conv-bn-relu 블록, 멀티 헤드 어텐션 블록, 트랜스포머 블록 등)를 나타냅니다.

F(·; θ)가 입력 피쳐 맵 x를

과 같이 다른 피쳐 맵 y로 변환하는 파라미터 θ를 갖는 학습된 신경 블록이라고 가정합니다.

설정에서 x와 y는 일반적으로 맵의 높이, 너비 및 채널 수를 {h,w, c}로 하는 2D 피쳐 맵, 즉 x ∈ R^(h×w×c)입니다(그림 2a).

 

이러한 사전 학습된 신경 블록에 ControlNet을 추가하기 위해 원본 블록의 매개 변수 θ를 잠금(동결)하고 동시에 매개 변수 θ_c를 사용하여 블록을 학습 가능한 복사본에 복제합니다(그림 2b).

학습 가능한 복사본은 외부 조건화 벡터 c를 입력으로 사용합니다.

이 구조가 Stable Diffusion과 같은 대규모 모델에 적용되면 잠금 매개 변수는 수십억 개의 이미지로 학습된 프로덕션 준비 모델을 보존하는 반면, 학습 가능한 복사본은 이러한 대규모 사전 학습 모델을 재사용하여 다양한 입력 조건을 처리하기 위한 깊고 강력하며 강력한 백본을 설정합니다.

 

학습 가능한 복사본은 Z(·; ·)로 표시된 제로 컨볼루션 레이어가 있는 잠금 모델에 연결됩니다.

구체적으로 Z(·; ·)는 가중치와 바이어스가 모두 0으로 초기화된 1 × 1 컨볼루션 레이어입니다.

ControlNet을 구축하기 위해 매개 변수 θ_z1과 θ_z2가 있는 제로 컨볼루션의 두 가지 인스턴스를 각각 사용합니다.

그런 다음 완전한 ControlNet이

를 계산하고, 여기서 y_c는 ControlNet 블록의 출력입니다.

첫 번째 학습 단계에서는 제로 컨볼루션 레이어의 가중치와 바이어스 매개 변수가 모두 0으로 초기화되기 때문에 식 (2)의 Z(·; ·) 항 모두를 0으로 평가하고,

을 0으로 평가합니다.

이러한 방식으로 유해한 노이즈는 학습을 시작할 때 학습 가능한 복사본의 신경망 레이어의 숨겨진 상태에 영향을 미칠 수 없습니다.

또한 Z(c; θ_z1) = 0과 학습 가능한 복사본도 입력 이미지 x를 받기 때문에 학습 가능한 복사본은 완전히 작동하며, 추가 학습을 위한 강력한 백본 역할을 할 수 있는 대규모 사전 학습된 모델의 기능을 유지합니다.

제로 컨볼루션은 초기 학습 단계에서 랜덤 노이즈를 그래디언트로 제거하여 이 백본을 보호합니다.

저희는 보충 자료에서 제로 컨볼루션에 대한 그라디언트 계산을 자세히 설명합니다.

그림 3: Stable Diffusion의 U-net 구조는 인코더 블록과 중간 블록에 있는 ControlNet과 연결되어 있습니다. 잠긴 회색 블록은 Stable Diffusion V1.5(또는 V2.1, 동일한 U-net 구조를 사용함)의 구조를 보여줍니다. 학습 가능한 파란색 블록과 흰색 제로 컨볼루션 레이어가 추가되어 ControlNet을 구축합니다.

3.2. ControlNet for Text-to-Image Diffusion

저희는 Stable Diffusion [72]를 예로 사용하여 ControlNet이 어떻게 사전 학습된 대규모 디퓨전 모델에 조건부 제어를 추가할 수 있는지 보여줍니다.

Stable Diffusion은 기본적으로 인코더, 중간 블록 및 건너뛰기 연결 디코더가 있는 U-Net [73]입니다.

인코더와 디코더 모두 12개의 블록을 포함하고 전체 모델은 중간 블록을 포함하여 25개의 블록을 포함합니다.

25개의 블록 중 8개의 블록은 다운 샘플링 또는 업 샘플링 컨볼루션 레이어이고, 나머지 17개의 블록은 각각 4개의 resnet 레이어와 2개의 Vision Transformers (ViT)를 포함하는 메인 블록입니다.

각 ViT에는 여러 개의 크로스 어텐션 및 셀프 어텐션 메커니즘이 포함되어 있습니다.

예를 들어, 그림 3a에서 "SD Encoder Block A"는 4개의 resnet 레이어와 2개의 ViT를 포함하고, "×3"은 이 블록이 세 번 반복됨을 나타냅니다.

텍스트 프롬프트는 CLIP 텍스트 인코더 [66]를 사용하여 인코딩되고, 디퓨전 시간 단계는 위치 인코딩을 사용하여 시간 인코더로 인코딩됩니다.

 

ControlNet 구조는 U-net의 각 인코더 레벨에 적용됩니다(그림 3b).

특히 ControlNet을 사용하여 Stable Diffusion의 12개 인코딩 블록과 1개의 중간 블록의 학습 가능한 복사본을 만듭니다.

12개 인코딩 블록은 4 해상도(64 × 64, 32 × 32, 16 × 16, 8 × 8)이며 각 인코딩 블록은 3번 복제됩니다.

출력은 U-net의 12개 건너뛰기 연결과 1개의 중간 블록에 추가됩니다.

Stable Diffusion은 일반적인 U-net 구조이므로 이 ControlNet 구조는 다른 모델에도 적용될 수 있을 것으로 보입니다.

 

ControlNet을 연결하는 방법은 계산적으로 효율적입니다 — 고정 복사 매개변수가 동결되어 있으므로 파인튜닝을 위해 원래 고정 인코더에서 그래디언트 계산이 필요하지 않습니다.

이 접근 방식은 학습 속도를 높이고 GPU 메모리를 절약합니다.

단일 NVIDIA A100 PCIE 40GB에서 테스트한 것처럼 ControlNet을 사용하여 Stable Diffusion을 최적화하는 것은 ControlNet을 사용하지 않고 Stable Diffusion을 최적화하는 것에 비해 각 학습 반복에서 약 23% 더 많은 GPU 메모리와 34% 더 많은 시간이 필요합니다.

 

이미지 디퓨전 모델은 점진적으로 디노이즈하고 학습 도메인에서 샘플을 생성하는 방법을 학습합니다.

디노이징 프로세스는 픽셀 공간 또는 학습 데이터에서 인코딩된 잠재 공간에서 발생할 수 있습니다.

Stable Diffusion은 잠재 이미지를 학습 도메인으로 사용하여 이 공간에서 작업하는 것이 학습 프로세스를 안정화하는 것으로 나타났습니다[72].

특히 Stable Diffusion은 VQ-GAN [19]과 유사한 전처리 방법을 사용하여 512 × 512 픽셀 공간 이미지를 더 작은 64 × 64 잠재 이미지로 변환합니다.

Stable Diffusion에 ControlNet을 추가하기 위해 먼저 입력 크기 512 × 512에서 Stable Diffusion의 크기와 일치하는 64 × 64 피쳐 공간 벡터로 각 입력 조건 이미지(예: 에지, 포즈, depth 등)를 변환합니다.

특히 4 × 4 커널 및 2 × 2 보폭 (ReLU에 의해 활성화되고 각각 16, 32, 64, 128 채널을 사용하여 가우시안 가중치로 초기화되고 전체 모델과 공동으로 학습됨)을 사용하여 이미지 공간 조건 c_i를

와 같이 피쳐 공간 조건 벡터 c_f로 인코딩합니다.

조건 벡터 c_f는 ControlNet으로 전달됩니다.

 

3.3. Training

입력 이미지 z_0이 주어지면 이미지 디퓨전 알고리즘은 이미지에 노이즈를 점진적으로 추가하고 노이즈 이미지 z_t를 생성하며, 여기서 t는 노이즈가 추가된 횟수를 나타냅니다.

시간 단계 t, 텍스트 프롬프트 c_t 및 작업별 조건 c_f를 포함한 일련의 조건이 주어지면 이미지 디퓨전 알고리즘은 네트워크 ϵ_θ를 학습하여

로 노이즈 이미지 z_t에 추가된 노이즈를 예측하며, 여기서 L은 전체 디퓨전 모델의 전체 학습 objective입니다.

이 학습 objective는 ControlNet을 사용한 파인튜닝 디퓨전 모델에 직접 사용됩니다.

 

학습 과정에서 50% 텍스트 프롬프트 c_t를 빈 문자열로 랜덤으로 대체합니다.

이 접근 방식은 입력 조건 이미지(예: 가장자리, 포즈, depth 등)에서 시맨틱을 프롬프트를 대체하는 것으로 직접 인식하는 ControlNet의 능력을 향상시킵니다.

 

학습 과정에서 제로 컨볼루션은 네트워크에 노이즈를 추가하지 않기 때문에 모델은 항상 고품질 이미지를 예측할 수 있어야 합니다.

우리는 모델이 제어 조건을 점진적으로 학습하지 않고 입력 조건 이미지를 갑자기 따라가는 데 성공하는 것을 관찰했습니다; 일반적으로 10K 미만의 최적화 단계에서 수행됩니다.

그림 4에서 보는 바와 같이, 우리는 이것을 “sudden convergence phenomenon"이라고 부릅니다.

그림 4: 갑작스런 수렴 현상. 컨볼루션이 0이기 때문에 ControlNet은 전체 학습 중에 항상 고품질 이미지를 예측합니다. 학습 프로세스의 특정 단계(예: 굵은 글씨로 표시된 6133 단계)에서 모델은 갑자기 입력 조건을 따르는 법을 학습합니다.

3.4. Inference

ControlNet의 추가 조건이 디노이징 디퓨전 과정에 미치는 영향을 여러 가지 방법으로 제어할 수 있습니다.

그림 5: Classifier-Free Guidance (CFG)와 제안된 CFG Resolution Weighting (CFG-RW)의 효과.

Classifier-free guidance resolution weighting.

Stable Diffusion은 고품질 이미지를 생성하기 위해 Classifier-Free Guidance (CFG)[29]라는 기술에 따라 달라집니다.

CFG는 ϵ_prd = ϵ_uc + β_cfg(ϵ_c - ϵ_uc)로 공식화되며, 여기서 ϵ_prd, ϵ_uc, ϵ_c, β_cfg는 각각 모델의 최종 출력, 무조건 출력, 조건부 출력 및 사용자 지정 가중치입니다.

ControlNet을 통해 컨디셔닝 이미지를 추가하면 ϵ_uc와 ϵ_c 모두에 추가하거나 ϵ_c에만 추가할 수 있습니다.

예를 들어, 어려운 경우 프롬프트가 표시되지 않을 때 ϵ_uc와 ϵ_c 모두에 추가하면 CFG 가이던스가 완전히 제거됩니다(그림 5b).

ϵ_c만 사용하면 가이던스가 매우 강해집니다(그림 5c).

저희 솔루션은 먼저 ϵ_c에 컨디셔닝 이미지를 추가한 다음 각 블록 w_i = 64/h_i, 여기서 h_i는 i^번째 블록의 크기입니다(예: h_1 = 8, h_2 = 16, ..., h_13 = 64).

CFG 가이던스 강도를 줄임으로써 그림 5d에 표시된 결과를 얻을 수 있으며, 이를 CFG 해상도 가중치라고 부릅니다.

그림 6: 다중 조건의 구성. depth와 포즈를 동시에 사용할 수 있는 애플리케이션을 소개합니다.

Composing multiple ControlNets.

Stable Diffusion의 단일 인스턴스에 여러 개의 컨디셔닝 이미지(예: Canny Edge 및 포즈)를 적용하려면 해당 ControlNet의 출력을 Stable Diffusion 모델에 직접 추가할 수 있습니다(그림 6).

이러한 구성에는 추가 가중치 또는 선형 보간이 필요하지 않습니다.

 

 

4. Experiments

저희는 Stabel Diffusion 기능이 있는 ControlNets를 구현하여 Canny Edge [11], Depth Map [69], Normal Map [87], M-LSD lines [24], HED soft edge [91], ADE20K segmentation [96], Openpose [12] 및 사용자 스케치를 포함한 다양한 조건을 테스트합니다.

자세한 학습 및 추론 매개 변수와 함께 각 조건의 예에 대한 보충 자료도 참조하십시오.

 

4.1. Qualitative Results

그림 1은 여러 프롬프트 설정에서 생성된 이미지를 보여줍니다.

그림 7은 프롬프트 없이 다양한 조건으로 결과를 보여주며, 여기서 ControlNet은 다양한 입력 컨디셔닝 이미지에서 콘텐츠 시맨틱을 강력하게 해석합니다.

그림 7: 프롬프트 없이 다양한 조건으로 Stable Diffusion 제어. 맨 위 행은 입력 조건이고 다른 모든 행은 출력입니다. 입력 프롬프트로 빈 문자열을 사용합니다. 모든 모델은 일반 도메인 데이터로 학습됩니다. 모델은 이미지를 생성하기 위해 입력 조건 이미지에서 시맨틱 내용을 인식해야 합니다.

4.2. Ablation Study

저희는 (1) 제로 컨볼루션을 가우시안 가중치로 초기화된 표준 컨볼루션 레이어로 대체하고 (2) 각 블록의 학습 가능한 복사본을 하나의 단일 컨볼루션 레이어로 대체하여 ControlNet의 대체 구조를 연구합니다.

이러한 ablation 구조에 대한 전체 세부 사항은 보충 자료도 참조하십시오.

그림 8: 스케치 조건과 다른 프롬프트 설정에 대한 다양한 아키텍처에 대한 ablation 연구. 각 설정에 대해 체리피킹 없이 6개의 샘플을 랜덤으로 배치하여 보여줍니다. 이미지는 512 × 512이며 확대하면 가장 잘 보입니다. 왼쪽의 녹색 "conv" 블록은 가우시안 가중치로 초기화된 표준 컨볼루션 레이어입니다.

실제 사용자의 가능한 동작을 테스트하기 위해 다음과 같은 4가지 프롬프트 설정을 제시합니다: (1) 프롬프트 없음; (2) 컨디셔닝 이미지의 객체를 완전히 다루지 않는 불충분한 프롬프트, 예를 들어, 본 논문의 기본 프롬프트 "“a high-quality, detailed, and professional image"; (3) 컨디셔닝 이미지의 시맨틱을 변경하는 충돌하는 프롬프트, (4) 필요한 콘텐츠 의미론을 설명하는 완벽한 프롬프트, 예를 들어 "a nice house".

그림 8a는 ControlNet이 4가지 설정 모두에서 성공한다는 것을 보여줍니다.

경량 ControlNet-Lite(그림 8c)는 컨디셔닝 이미지를 해석할 만큼 강하지 않고 불충분하고 프롬프트가 없는 조건에서 실패합니다.

0개의 컨볼루션을 교체하면 ControlNet의 성능이 ControlNet-Lite와 거의 동일한 수준으로 떨어지며, 이는 학습 가능한 복사본의 사전 학습된 백본이 파인튜닝 중에 파괴됨을 나타냅니다(그림 8b).

 

4.3. Quantitative Evaluation

User study.

보이지 않는 손으로 그린 스케치 20개를 샘플링한 다음 각 스케치를 5가지 방법으로 할당합니다: 디폴트 에지 guidance 스케일 (β = 1.6)을 사용하는 PITI [89]의 스케치 모델인 Sktetch-Guided Diffusion (SGD) [88], 상대적으로 높은 에지 guidance 스케일 (β = 3.2)을 사용하는 SGD [88], 앞서 언급한 ControlNet-lite 및 ControlNet입니다.

저희는 12명의 사용자를 초대하여 5개 결과로 구성된 이 20개 그룹의 결과를 "the quality of displayed images" 및 "the fidelity to the sketch" 측면에서 개별적으로 순위를 매겼습니다.

이러한 방식으로, 저희는 결과 품질에 대해 100개의 순위를 얻고 조건 충실도에 대해 100개의 순위를 얻습니다.

저희는 사용자가 각 결과에 대해 1~5의 척도로 순위를 매기는 선호도 메트릭으로 Average Human Ranking (AHR)를 사용합니다(낮음은 더 나쁨).

평균 순위는 표 1에 나와 있습니다.

표 1: 결과 품질 및 상태 충실도의 Average User Ranking (AUR). 다양한 방법의 사용자 선호 순위(1~5는 최악에서 최고를 나타낸다)를 보고합니다.

Comparison to industrial models.

Stable Diffusion V2 depth-to-image (SDV2-D2I) [83]는 대규모 NVIDIA A100 클러스터, 수천 시간의 GPU 시간 및 12M 이상의 학습 이미지로 학습됩니다.

저희는 동일한 depth 조건으로 SDV2용 ControlNet을 학습하지만 200k 학습 샘플, 단일 NVIDIA RTX 3090Ti, 5일간의 학습만 사용합니다.

저희는 각 SDv2-D2I와 ControlNet에서 생성한 100개의 이미지를 사용하여 12명의 사용자에게 두 가지 방법을 구별할 수 있도록 가르칩니다.

그런 다음 200개의 이미지를 생성하고 사용자에게 각 이미지를 생성한 모델을 알려달라고 요청합니다.

사용자의 평균 정밀도는 0.52 ± 0.17로 두 가지 방법이 거의 구별할 수 없는 결과를 산출한다는 것을 나타냅니다.

표 2: Intersection over Union (IoU ↑)을 이용한 시멘틱 세그멘테이션 레이블 재구성(ADE20K) 평가.

Condition reconstruction and FID score.

저희는 조건화 충실도를 평가하기 위해 ADE20K [96]의 테스트 세트를 사용합니다.

SOTA 세그멘테이션 방법인 OneFormer [35]는 ground-truth 세트에서 0.58의 Intersection-over-Union (IoU)을 달성합니다.

저희는 다양한 방법을 사용하여 ADE20K 세그멘테이션으로 이미지를 생성한 다음 OneFormer를 적용하여 재구성된 IoU를 계산합니다(표 2).

또한 Frechet Inception Distance(FID) [28]를 사용하여 다양한 세그멘테이션 조건화 방법을 사용하여 랜덤으로 생성된 512×512 이미지 세트에 대한 분포 거리를 측정하고 표 3의 텍스트 이미지 CLIP 점수 [66] 및 CLIP 미적 점수 [79]를 참조하십시오.

자세한 설정은 보충 자료도 참조하십시오.

표 3: 시멘틱 세그멘테이션에 의해 조건화된 이미지 생성에 대한 평가입니다. 저희는 방법 및 기타 베이스라인에 대한 FID, CLIP 텍스트 이미지 점수 및 CLIP aesthetic 점수를 보고합니다. 또한 세그멘테이션 조건이 없는 Stable Diffusion의 성능을 보고합니다. "*"로 표시된 방법은 처음부터 학습됩니다.
그림 9: 이전 방법과의 비교. PITI [89], Sketch-Guided Diffusion [88] 및 Taming Transformers [19]와의 정성적 비교를 제시합니다.

4.4. Comparison to Previous Methods

그림 9는 베이스라인과 우리의 방법을 시각적으로 비교한 것입니다 (Stable Diffusion + ControlNet).

구체적으로, 우리는 PITI [89], Sketch-Guided Diffusion [88] 및 Taming Transformers [19]의 결과를 보여줍니다. (PITI의 백본은 서로 다른 시각적 품질과 성능을 가진 OpenAI GLIDE [57]입니다.)

우리는 ControlNet이 다양한 컨디셔닝 이미지를 강력하게 처리하고 샤프하고 깨끗한 결과를 얻을 수 있음을 관찰했습니다.

그림 10: 다양한 학습 데이터 세트 크기의 영향. 확장된 예에 대한 보충 자료도 참조하십시오.

4.5. Discussion

Influence of training dataset sizes.

우리는 그림 10에서 ControlNet 학습의 견고성을 보여줍니다.

학습은 제한된 1k 개의 이미지로 붕괴되지 않으며 모델이 인식 가능한 lion을 생성할 수 있습니다.

더 많은 데이터가 제공될 때 학습이 확장 가능합니다.

그림 11: 내용 해석. 입력이 모호하고 사용자가 프롬프트에서 개체 내용을 언급하지 않으면 결과는 모델이 입력 모양을 해석하려고 하는 것처럼 보입니다.

Capability to interpret contents.

우리는 그림 11의 입력 컨디셔닝 이미지에서 의미를 캡처하는 ControlNet의 기능을 보여줍니다.

그림 12: 신경망을 다시 학습하지 않고 사전 학습된 ControlNet을 커뮤니티 모델로 전송합니다[16, 61].

Transferring to community models.

ControlNets는 사전 학습된 SD 모델의 네트워크 토폴로지를 변경하지 않기 때문에 그림 12의 Comic Diffusion [61] 및 Protogen 3.4 [16]과 같은 Stable Diffusion 커뮤니티의 다양한 모델에 직접 적용할 수 있습니다.

 

 

5. Conclusion

ControlNet은 사전 학습된 대규모 text-to-image 디퓨전 모델에 대한 조건부 제어를 학습하는 신경망 구조입니다.

소스 모델의 대규모 사전 학습된 레이어를 재사용하여 특정 조건을 학습하기 위해 깊고 강력한 인코더를 구축합니다.

원본 모델과 학습 가능한 복사본은 학습 중에 유해한 노이즈를 제거하는 "제로 컨볼루션" 레이어를 통해 연결됩니다.

광범위한 실험을 통해 ControlNet이 프롬프트가 있든 없든 단일 또는 여러 조건으로 Stable Diffusion을 효과적으로 제어할 수 있는지 확인합니다.

다양한 조건화 데이터 세트에 대한 결과는 ControlNet 구조가 더 광범위한 조건에 적용 가능하고 관련 응용 프로그램을 용이하게 할 수 있음을 보여줍니다.