대규모 텍스트 이미지 모델의 등장으로 매력적인 이미지를 생성하는 것이 매우 간단해졌습니다. 사용자가 해야 할 일은 손가락의 움직임으로 간단한 프롬프트를 입력하는 것뿐입니다. 일련의 작업을 통해 이미지를 얻은 후에는 필연적으로 몇 가지 질문이 생깁니다. 프롬프트를 기반으로 생성된 이미지가 우리의 요구 사항을 충족할 수 있습니까? 사용자가 제기하는 다양한 요구 사항을 처리하려면 어떤 종류의 아키텍처를 구축해야 합니까? 대형 모델이 특정 작업에서 수십억 개의 이미지를 통해 얻은 이점과 기능을 계속 유지할 수 있습니까?
이 질문에 답하기 위해 스탠포드 연구원들은 다양한 이미지 처리 애플리케이션에 대한 광범위한 조사를 실시한 결과 다음 세 가지 결과에 도달했습니다.
첫째, 특정 도메인에서 사용 가능한 데이터가 일반 모델을 교육하는 것보다 실제로 더 좋습니다. 데이터가 적다는 것은 예를 들어 특정 문제(예: 제스처 이해 등)에 대한 가장 큰 데이터 세트가 일반적으로 100k 미만이라는 사실에 반영됩니다. 이는 큰 데이터보다 5 × 10^4 적습니다. -규모, 다중 모달 텍스트 이미지 데이터 세트 LAION 5B Magnitude. 이를 위해서는 모델의 과적합을 방지하고 특정 문제를 목표로 삼을 때 일반화가 잘 되도록 신경망이 강력해야 합니다.
두 번째로, 데이터 기반 이미지 작업 처리를 사용할 때 대규모 컴퓨팅 클러스터를 항상 사용할 수 있는 것은 아닙니다. 이는 빠른 훈련 방법, 즉 허용 가능한 시간과 메모리 공간 내에서 특정 작업에 대해 대규모 모델을 최적화할 수 있는 방법이 중요해지는 곳입니다. 또한 후속 처리에는 미세 조정, 전이 학습 및 기타 작업이 필요할 수 있습니다.
마지막으로 이미지 처리 중에 발생하는 다양한 문제는 다양한 방식으로 정의됩니다. 이러한 문제를 해결할 때 이미지 확산 알고리즘은 노이즈 제거 프로세스 제한, 다중 헤드 주의 활성화 편집 등 "절차적" 방식으로 조정될 수 있지만 이러한 손으로 만든 규칙은 기본적으로 인간의 지시에 따라 결정됩니다. 깊이 이미지, 포즈 사람 등과 같은 일부 특정 작업을 고려할 때 이러한 문제는 본질적으로 원시 입력을 개체 수준 또는 장면 수준 이해로 해석해야 하므로 수작업으로 제작된 절차적 접근 방식의 실현 가능성이 떨어집니다. 따라서 여러 업무에 대한 솔루션을 제공하기 위해서는 End-to-End 학습이 필수적입니다.
위 연구 결과를 바탕으로 본 논문에서는 추가 조건을 추가하여 확산 모델(예: Stable Diffusion)을 제어함으로써 그리기 효과를 향상시키고 선 그리기를 구현할 수 있는 엔드 투 엔드 신경망 아키텍처 ControlNet을 제안합니다. . 풀 컬러 이미지를 생성하고 동일한 깊이 구조의 이미지를 생성하며 손 키 포인트를 통해 손 생성을 최적화합니다.
논문 주소: https://arxiv.org/pdf/2302.05543.pdf
프로젝트 주소: https://github.com/lllyasviel/ControlNet
그렇다면 ControlNet의 효과는 무엇입니까?
캐니 엣지 감지: 원본 이미지에서 라인 드로잉을 추출하여 동일한 구도의 이미지를 생성할 수 있습니다.
깊이 검출: 원본 이미지의 깊이 정보를 추출하여 동일한 깊이 구조의 지도를 생성할 수 있습니다.
의미론적 분할이 포함된 ControlNet:
학습 기반 심층 Hough 변환을 사용하여 Places2에서 직선을 감지한 다음 BLIP을 사용하여 자막을 생성합니다.
HED 가장자리 감지 아이콘.
인간 자세 인식 아이콘.
ControlNet은 사전 훈련된 이미지 확산 모델을 작업별 조건으로 향상시키는 신경망 아키텍처입니다. 먼저 ControlNet의 기본 구조를 살펴보겠습니다.
ControlNet은 신경망 블록의 입력 조건을 조작하여 전체 신경망의 전반적인 동작을 추가로 제어합니다. 여기서 "네트워크 블록"이란 resnet 블록, 다중 헤드 어텐션 블록, Transformer 블록 등 신경망을 구축하기 위한 공통 단위로 함께 구성되는 신경 계층 그룹을 의미합니다.
2D 특징을 예로 들면, 특징 맵 x ϵ R^h×w×c가 주어지고, 여기서 {h, w, c}는 각각 높이, 너비 및 채널 수입니다. 매개변수 세트가 Θ인 신경망 블록 F(・; Θ)는 아래 방정식(1)과 같이 x를 다른 특징 맵 y로 변환합니다.
이 프로세스는 아래 그림 2-(a)에 나와 있습니다.
신경망 블록은 가중치와 편향이 전혀 초기화되지 않은 1×1 컨볼루션 계층인 "제로 컨볼루션"이라는 고유한 컨볼루션 계층으로 연결됩니다. 연구원은 제로 컨볼루션 연산을 Z(・;・)로 표현하고 두 개의 매개변수 인스턴스 {Θ_z1, Θ_z2}를 사용하여 다음 수식(2)과 같이 ControlNet 구조를 형성합니다.
여기서 y_c는 아래 그림 2-(b)와 같이 이 신경망 블록의 출력이 됩니다.
이미지 확산 모델의 ControlNet
연구원들은 Stable Diffusion을 예로 들어 ControlNet을 사용하여 작업별 조건으로 대규모 확산 모델을 제어하는 방법을 소개했습니다. Stable Diffusion은 기본적으로 인코더, 중간 블록 및 잔차 연결 디코더로 구성된 U-net인 수십억 개의 이미지에 대해 훈련된 대규모 텍스트-이미지 확산 모델입니다.
아래 그림 3과 같이 연구원들은 ControlNet을 사용하여 U-net의 각 계층을 제어합니다. 여기서 ControlNet이 연결되는 방식은 계산적으로 효율적이라는 점에 유의하십시오. 원래 가중치가 잠겨 있으므로 원래 인코더의 기울기 계산에는 교육이 필요하지 않습니다. 그리고 원본 모델의 기울기 계산이 절반으로 줄어들기 때문에 훈련 속도가 빨라지고 GPU 메모리도 절약할 수 있습니다. ControlNet을 사용하여 Stable Diffusion 모델을 훈련하려면 훈련 반복당 약 23% 더 많은 GPU 메모리와 34% 더 많은 시간만 필요합니다(단일 Nvidia A100 PCIE 40G에서 테스트됨).
특히 연구원들은 ControlNet을 사용하여 12개의 인코딩 블록과 1개의 Stable Diffusion 중간 블록의 훈련 가능한 복사본을 생성했습니다. 12개의 코딩 블록은 64×64, 32×32, 16×16, 8×8의 4가지 해상도로 제공되며 각 해상도에는 3개의 블록이 있습니다. 출력은 12개의 잔여 연결과 1개의 중간 블록이 있는 U-net에 추가됩니다. Stable Diffusion은 일반적인 U-net 구조이므로 이 ControlNet 아키텍처는 다른 확산 모델에도 사용될 가능성이 높습니다.
Training and Boosting Training
이미지 z_0이 주어지면 확산 알고리즘은 점진적으로 이미지에 노이즈를 추가하고 노이즈가 있는 이미지 z_t를 생성합니다. 여기서 t는 노이즈가 추가된 횟수입니다. t가 충분히 크면 이미지는 순수 노이즈에 가까워집니다. 시간 단계 t, 텍스트 프롬프트 c_t 및 작업별 조건 c_f를 포함하는 일련의 조건이 주어지면 이미지 확산 알고리즘은 아래 방정식(10)과 같이 노이즈가 있는 이미지 z_t에 추가된 노이즈를 예측하기 위해 네트워크 ϵ_θ를 학습합니다.
훈련 과정에서 연구원들은 텍스트 프롬프트 c_t의 50%를 빈 문자열로 무작위로 대체했습니다. 이는 입력 조건 맵에서 의미 체계 콘텐츠를 식별하는 ControlNet의 능력에 도움이 됩니다.
또한 연구원들은 특히 컴퓨팅 장치가 매우 제한적이거나(예: 노트북) 매우 강력한(예: 대규모 GPU를 사용할 수 있는 컴퓨팅 클러스터) 극단적인 경우 ControlNet의 교육을 개선하기 위한 여러 전략에 대해서도 논의합니다. .
자세한 기술적인 내용은 원본 문서를 참조하세요.
위 내용은 AI 차원 축소는 인간 화가를 공격하고 Vincentian 그래프는 ControlNet에 도입되었으며 깊이 및 가장자리 정보는 완전히 재사용 가능합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!