너도 그림 그리는
AI 만들어 보고 싶어? AI학교 아이펠
#인공지능 

ControlNet 으로 이미지생성 (feat. Stable Diffusion)

Stable Diffusion은 놀라운 결과를 보여주었으나 더욱 세부적인 제어가 필요함을 알게 되어 ControlNet 이라는 새로운 기술이 제안되었습니다. ControlNet 은 사용자가 생성 과정을 더욱 세부적으로 제어할 수 있게 하며, 여러 가지 공간적 컨텍스트를 조건부로 생성에 사용할 수 있도록 지원합니다. 이를 통해 생성 결과물은 놀라운 수준으로 개선되었습니다.

2023-03-15 | 정강민

Stable Diffusion 과 ControlNet

Stable Diffusion은 놀라운 결과를 보여주었고 많은 사람들이 관심을 보여주고있습니다. 이전 DIffusion 블로그 역시 매우 인기가 좋았습니다.그리고 마지막 결론부분에서 Stable Diffusion에 대한 단점을 알아볼 수 있었는데요. 결론적으로 생성 과정에서 더욱 세부적인 제어가 필요함을 알 수 있었습니다.

이런 요구에 대응하기 위해 Lvmin Zhang와 Maneesh Agrawala는 ControlNet 을 제안하였습니다. ControlNet 이라는 단어 유추해보면 컨트롤(Control)하는 네트워크(Network)라는 의미이겠죠? 이를 통해 사용자는 생성 과정을 더욱 세부적으로 제어할 수 있게 되었습니다. ControlNet 은 여러 가지 공간적 컨텍스트(깊이 맵, 세분화 맵, 스크리블, 키포인트 등)를 조건부로 생성에 사용할 수 있도록 지원한다고합니다. 어떤 원리일까요? 아래 결과물을 보면 놀랍습니다.

controlnet

출처 : https://huggingface.co/blog/controlnet

 

controlnet

출처 : https://huggingface.co/blog/controlnet

어떻게 세부적인 컨트롤이 가능할까요

전체 모델 흐름도입니다. (a)부분이 이전에 블로그에서 살펴보았던 Stable Diffusion이고 (b)부분이 ControlNet 입니다. 조건부로 생성할 수 있다는 말은 어떤 의미인지 뜯어보겠습니다.

controlnet

출처 : https://huggingface.co/blog/controlnet

(a)Stable Diffusion 사전 훈련된 Diffusion 모델(예: Stable Diffusion의 latent UNet)의 매개변수를 복제하여 “학습 가능한 복사본“과 “잠긴 복사본(자물쇠)“으로 나눕니다. 잠긴 복사본은 대규모 데이터셋에서 학습한 방대한 지식을 보존하며, 학습 가능한 복사본은 과제별 측면을 학습하는 데 사용됩니다. 학습 가능한 복사본과 잠긴 복사본의 매개변수는 “zero convolution” 레이어로 연결됩니다. 이것은 ControlNet 프레임워크의 일부로 최적화되며, 새로운 조건이 학습될 때 이미 학습된 의미론을 보존하는 학습 기법입니다. 잘 와닿지않죠? 좀 더 자세히 뜯어보겠습니다.

Zero Convolusion?

가중치 값이 0인 필터값을 거쳐서 결괏값이 0이 되면  계속 0이 되는건 아닐까요?? 😥

Image result for convolution animation

잠시 돌아가서 CNN(Convolutional Neural Network)을 살펴보면,  딥러닝 분야에서 이미지 인식, 객체 감지, 자연어 처리 등 다양한 분야에서 성능을 입증하고 있습니다. CNN에서 Convolution filter가 중요한 역할을 담당합니다. 이는 Receptive field에서 원본 이미지에서 유의미하고 압축된 값(Destination pixel)을 추출해내기 때문입니다. 따라서 Convolution filter는 CNN의 주요 원리 중 하나로써, 이미지나 자연어 등의 입력 데이터에서 특징을 추출하고, 이를 기반으로 패턴을 인식하고 분류하는 데 매우 중요한 역할을 합니다.

(b)ControlNet 에서 Zero convolution은 Convolution filter의 가중치 값이 0이 되도록 하는 기술입니다. 일반적으로 Convolution filter의 값이 0이면 결과값(Destination pixel)은 0이 됩니다. 그러나 ControlNet에서는 이를 역전파를 이용해 학습시키는데, 이를 통해 이미지의 실루엣처럼 남아서 가중치 부분이 조건부 생성을 지원합니다. 이는 ControlNet에서 이미 학습된 모델의 의미론을 보존하면서 새로운 조건을 학습시키는 핵심 기술 중 하나입니다. 이러한 ControlNet 구조는 다양한 이미지 생성 작업에서 사용될 수 있으며, 높은 수준의 이미지 생성 결과를 보장합니다.

Zero Convolusion 역전파에서 수식으로 한번 살펴보면,

controlnet

이렇게 남은 가중치로 변환된 레이어가  보면 학습 가능한 복사본과 잠긴 복사본의 매개변수는 “zero convolution” 레이어로 연결됩니다.

이제 이미지를 생성해볼까요

ControlNet을 사용하면 카툰 드로잉을 사실적인 사진으로 변환할 수 있습니다. 또한, ControlNet을 사용하면 하나의 이미지에서 포즈를 가져와 동일한 포즈를 가진 다른 이미지를 생성할 수 있습니다.

controlnet

출처 : https://huggingface.co/blog/controlnet

이렇게 요가 이미지의 포즈를 가져와서 마블 영웅들의 새로운 이미지를 생성해보았습니다.

Controlnet

출처 : https://huggingface.co/blog/controlnet

이정도면 우리도 스토리만 있으면 웹툰 작가를 도전해볼 수 있지 않을까요?

이미지 생성하기 실습해보기

ControlNet과 Stable Diffusion을 사용하여 이미지를 생성해볼 수 있는 링크를 제공합니다. 이를 통해 사용자는 직접 이미지 생성 과정을 체험하며, ControlNet의 성능을 확인할 수 있습니다.

그럼 이제 이미지를 한번 직접 생성해볼까요? 허깅스페이스에서 공개한 Stable Diffusion ControlNet(←click!!)을 사용해 볼 수 있습니다.

Control Stable Diffusion

Control Stable Diffusion with Canny Edge Maps

Diffusers는 다양한 파이프라인을 제공하여 사용자가 이미지 생성 과정을 더욱 세밀하게 제어할 수 있습니다.

또한, ControlNet을 바로 사용해볼 수 있는 링크도 제공합니다. 최근 인공지능 기술의 발전으로 인해, ControlNet과 같은 새로운 기술들이 더욱 다양한 분야에서 활용될 것으로 예상됩니다. 따라서 인공지능을 활용한 이미지 생성 기술은 더욱 정교해지고 발전할 것으로 기대됩니다. 이상 DIffusion ControlNet 이였습니다.

 

참고자료