피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
Hugging Face Diffusers 라이브러리가 StableDiffusionControlNetPipeline을 통합하여 ControlNet 기반 이미지 생성을 Google Colab에서 5초에 처리 (기존 구현 17초 대비 70% 단축)
ControlNet in 🧨 Diffusers
AI 요약
Context
Stable Diffusion 출시 이후 사용자들이 생성 과정에 대한 제어 능력의 필요성이 증대되었다. 기존 Stable Diffusion은 텍스트 프롬프트만으로 제어 가능했으나, 엣지 맵, 깊이 맵, 세그멘테이션 맵, 키포인트 등 다양한 공간적 조건을 활용한 정밀한 생성이 필요했다.
Technical Solution
- ControlNet 모델 구조 채택: 사전학습된 Stable Diffusion의 UNet 파라미터를 복제하여 잠긴 복사본(locked copy)과 학습 가능한 복사본(trainable copy)으로 분리
- 영점 합성곱(zero convolution) 계층 추가: 잠긴 파라미터와 학습 가능한 파라미터를 연결하는 중간 계층으로 새로운 조건 학습 시 기존 의미론적 정보 보존
- StableDiffusionControlNetPipeline 인터페이스 제공: controlnet 인자를 통해 조건부 ControlNetModel 인스턴스를 사전학습된 확산 모델 가중치와 함께 사용 가능하도록 설계
- 8가지 조건화 모델 지원: Canny 엣지, 깊이 맵, 의미론적 세그멘테이션, 스크리블, 키포인트 등 다양한 공간적 조건화 방식 구현
- 성능 최적화 기법 적용: 빠른 스케줄러(fast scheduler) 사용, 스마트 모델 오프로딩, xformers 적용으로 메모리 효율성 및 생성 속도 개선
Impact
- Google Colab T4 GPU 환경에서 이미지 생성 시간 5초 달성 (기존 구현 대비 70.6% 단축)
- V100 GPU에서 단일 이미지 생성 시간 약 3초, VRAM 소비 약 4GB 달성
- Stable Diffusion v1-5와 ControlNet 조합 사용 시 약 7억 개의 추가 파라미터 필요 (기존 구현 대비)
Key Takeaway
사전학습된 모델의 지식을 보존하면서 새로운 조건화 능력을 추가하기 위해 파라미터 복제와 영점 합성곱 연결이라는 설계 패턴을 활용했다. 또한 모델 오프로딩과 스케줄러 최적화 같은 추론 단계의 세부 기법들을 조합하면 동일한 하드웨어에서 대폭의 성능 향상을 달성할 수 있음을 보여준다.
실천 포인트
Stable Diffusion 기반의 이미지 생성 서비스를 개발할 때, 엣지 맵이나 세그멘테이션 맵 같은 공간적 조건을 활용하려면 StableDiffusionControlNetPipeline을 통해 사전학습된 모델을 유지하면서 조건화 능력만 추가할 수 있다. 이때 xformers와 모델 오프로딩을 함께 적용하면 제한된 GPU 메모리(T4, 4GB VRAM)에서도 5초 이내의 응답 속도를 확보할 수 있다.