AI 이미지/AI 기타

DALL-E 3와 Stable Diffusion XL 비교

하늘이푸른오늘 2023. 12. 28. 00:31

DALL-E 3는 ChatGPT 혹은 "일상의 AI 컴패니언"을 표방하고 있는 마이크로소프트 Copilot에서 사용할 수 있습니다. 이 글에서는 DALL-E 3와 스테이블 디퓨전의 장단점을 비교해 보겠습니다. 아래는 이 글의 목차입니다.

DALL-E 3란

DALL-E 3는 텍스트 문장을 이미지로 변환해주는 text-to-image 생성형 인공지능입니다. DALL-E 3의 학습 방법이나 모델 아키텍처는 제임스 벧커와 동료들이 저술한 "Improving Image Generation with Better Captions(더 나은 캡션을 사용한 이미지 생성 향상)"에 기술되어 있습니다.

photo of a cat in a hat

DALL-E 3 의 가장 중요한 발전은 프롬프트를 아주 잘 반영해서 이미지를 생성하는 기능입니다. 논문 저자에 따르면 현재의 text-to-image 모델이 프롬프트를 반영하지 이유는 학습 이미지의 캡션(제목, 자막 등)에 잡음이 많기 때문이라고 합니다. 캡션 모델로 생성한, 매우 설명력이 뛰어난 캡션을 사용함으로써, DALL-E 3가 프롬프트를 반영하는 능력을 향상시킬 수 있었습니다.

참고로 이러한 점 외에도 DALL-E 3는 이전 버전에 비해 나아진 점이 많지만 발표되지는 않았습니다. 따라서 학습에서 더 나은 캡션을 사용했다는 것이 성능 향상 원인의 100%는 아니라고 생각됩니다.

DALL-E 3 사용 방법

DALL-E 3는 유료모델인 ChatGPT Plus에서 사용할 수 있으며, 마이크로소프트 CoPilot에서도 무료로 사용할 수 있습니다. 저는 ChatGPT Plus에서는 테스트해보지 못했고, 이 글을 읽어보시면 CoPilot에서 DALL-E 3를 사용하는 방법 및 간단한 장단점을 보실 수 있습니다. 

간단히 요약하자면, CoPilot에서 한글로 그리고자하는 내용을 적당히 한글로 쓰면, CoPilot이 (이미지 크리에이터를 거쳐) DALL-E 3로 생성한 이미지를 보여줍니다. 위에서 언급한 것처럼 특히 여러가지 내용이 포함된 긴 문장을 입력해도 적절한 이미지를 잘 생성해줍니다. 

스테이블 디퓨전

스테이블 디퓨전(Stable Diffusion)도 DALL-E 3와 마찬가지로 text-to-image 생성형 인공지능입니다. 스테이블 디퓨전은 잠재 디퓨전 모델(latent diffusion model)로서, 잠재 공간(latent space)에서 이미지를 합성하므로 모델의 크기가 작아 개인용 컴퓨터에서도 돌릴 수 있다는 장점이 있습니다.

스테이블 디퓨전 사용방법

스테이블 디퓨전을 사용하는 방법은 여러가지가 있습니다. 가장 대중적인 GUI 는 AUTOMATIC1111으로서, 설치방법초보자 가이드를 읽어보세요. 또 제가 가장 많이 사용하고, 요즘 가장 hot한 GUI는 ComfyUI로서 노드와 링크로 구성되어 다양한 워크플로를 조합할 수 있는 장점이 있습니다. ComfyUI 설치 및 사용법 기초초보자 가이드는 이 글을 읽어보세요. 이 이외에도 EasyDiffusion 이라는 정말 간단한 웹 GUI를 사용하는 방법 있습니다.

DALL-E 3와 Stable Diffusion XL 비교

여기에서는 DALL-E 3와 Stable Diffusion XL 1.0 을 비교합니다. 아직까지는 SD1.5도 많이 사용되고 있지만, SDXL 도 점점 ControlNet이나 LoRA 모델도 갖춰지고 다양한 체크포인트 모델도 나오고 있기 때문에 머지않아 SD1.5를 넘어설 것으로 예상되기 때문입니다. 

프롬프트 이해 및 따르기

DALL-E 3의 가장 중요한 성능 향상은 프롬프트를 이해하고 반영하는 능력입니다. 지난 글에서 테스트해본 것 처럼, DALL-E 3 는 프롬프트의 내용을 거의 빠짐없이 완벽하게 이해하고 이미지에 반영해줍니다. 직접 실험해 보겠습니다.

Test1: 이중 나선

프롬프트: An aerial perspective of a vast forest landscape that forms a DNA double helix pattern, with rivers and clearings symbolizing its features.

DALL-E 3 SDXL base

Stable Diffusion XL은 이중나선 구조를 전혀 보여주지 않았습니다. "DNA double helix pattern"의 키워드 가중치를 1.2로 올려봐도 그다지 나아지지 않았습니다.

특히 현실에서 발생할 수 있는 사례가 많은 프롬프트는 SDXL도 이미지를 잘 생성하지만, 비현실적인 프롬프트가 입력되면 수준이하의 이미지를 생성하는 경우가 많습니다.

Test2: 외계인과 춤추는 여인

DALL-E 3 명령어: 강변 공원에서 외계인들과 함께 춤을 추고 있는 아름다운 아가씨가 있어. 뒤쪽으로는 많은 관객들이 박수를 치면서 구경하고 있고, 하늘에는 비행접시가 떠있어. 강에는 유람선이 떠있어. 이 광경을 그림으로 그려줘
프롬프트: A beautiful lady dancing with aliens at a riverside park with many spectators clapping, flying saucers in the sky, and a cruise ship on the river

DALL-E 3 SDXL base

특히 길고 복잡한 명령이 입력될 수록 DALL-E 3의 프롬프트 이해 및 반영 정도가 높아집니다. SDXL의 경우엔 여러번 생성했음에도 모든 프롬프트를 만족시키는 이미지는 거의 나오지 않았습니다. SDXL 의 경우 외계인과 춤추는 모습이 한번도 나오지 않았고, 뒤의 관중들이 손뼉을 치는 모습도 한번도 나오지 않았습니다.

텍스트 렌더링

Stable Diffusion도 XL 버전부터 텍스트 표현이 많이 좋아졌지만, DALL-E 3와는 성능이 비교가 되지 않을 정도네요. 

Test1: 간판

프롬프트: An illustration of a vibrant billboard sign emphasizing the message “Stable Diffusion XL is better than DALLE 3” with radiant light beams.

DALL-E 3 SDXL base

Test 2: 하이킹 표지판

프롬프트: A female hiker triumphantly reaching the summit with a wooden sign reading “Get High”

DALL-E 3 SDXL base

스테이블 디퓨전도 짧은 단어는 꽤 잘 생성합니다. 하지만, 전반적으로 봤을 때 DALL-E 3 와는 비교도 하지 못할 정도네요.

스타일

스테이블 디퓨전은 여러가지 스타일을 렌더링할 수 있는 장점이 있습니다. DALL-E 3보다 실사 사진은 잘 생성할 뿐 만 아니라, RealVisXL과 사용자들이 개발한 미세조정 모델을 사용하면 더 멋진 사진을 생성할 수 있습니다.

프롬프트:  a woman sitting at a table, a plate of delicious food, with a beautiful smile, with gorgeous detailed eyes, European face

DALL-E 3 SDXL base

SDXL base 모델로 생성한 이미지가 마음에 안든다면, 얼마든지 원하는 스타일을 갖춘 미세조정 모델을 사용해서 해결할 수 있으니, 스타일 면에서는 SDXL이 훨씬 뛰어나다고 할 수 있겠습니다. 아래는 DreamShaperXL로 생성한 그림입니다. 오나전히 다른 분위기의 이미지가 생성되는 것을 알 수 있습니다.

아래는 인상주의(impressionist) 스타일로 그려본 이미지입니다(프롬프트에 "Impressionist painting style of"를 추가했습니다).

DALL-E 3 SDXL base

인페인트와 아웃페인트

인페인트란 이미지의 대부분을 그대로 두고 일부분만 수정하는 기능을 말합니다. 아웃페인트는 원래 이미지는 보존한 상태로 바깥쪽을 키우는 방식으로 이미지를 키우는 방식이고요.

현재 DALL-E 3는 이 두가지 모두 지원하지 않습니다. 예를 들어 DALL-E 3에서 그림의 일부를 수정해달라고 요청하면 완전히 다른 그림이 그려집니다. 사실 그림의 내용을 인식하지 못하고, 마스크를 칠할 방법이 없으니 당연하겠죠.

아웃페인트의 경우에도 마찬가지입니다. 마이크로소프트 디자이너:이미지 크리에이터에서는 이미지 크기가 1024x1024로 고정되어 있기 때문에 물리적으로 아웃페인트가 불가능하지만, ChatGPT plus에서 수행해도 안된다고 하네요. 아래는 원본 글에 포함된 그림입니다.

원래 그림
아웃페인트 그림

보시는 것처럼 아웃페인트를 요청하면 그림 자체가 완전히 달라지는 걸 볼 수 있습니다.

프롬프트

ChatGPT Plus에서 DALL-E 3를 사용할 경우, 프롬프트를 직접 조정할 수 없다고 합니다. 즉, 원하는 그림을 입력하면 ChatGPT가 알아서 프롬프트를 생성해서 이미지를 생성한다고 하네요. 

하지만, CoPilot에서 사용할 경우,  이미지 크리에이터에서 최종 프롬프트를 확인하고 편집도 가능하니까 이런 결점은 없다고 보면 되겠습니다.

콘트롤넷

스테이블 디퓨전의 경우, 콘트롤넷을 사용하면 인간의 자세, 구도, 색상등을 복제할 수 있고, 입력한 이미지와 비슷한 인물로 새로운 이미지를 생성할 수 있는 등, 매우 다양한 응용이 가능합니다. 그런데 DALL-E 3는 콘트롤넷을 지원하지 않습니다. 그냥 프롬프트로 입력하는 방법외에는 제어할 방법이 없다는 것입니다. 그냥 테스트용으로 생성하는 게 아니라, 전문적인 이미지를 생성하는 것이라면 콘트롤넷이 안된다는 게 매우 큰 제약이 될 것 같습니다.

결론

결론적으로 DALL-E 3는 스테이블 디퓨전보다 훨씬 프롬프트를 이해하고 반영하는 능력이 뛰어납니다. 또한 텍스트 렌더링은도 매우 뛰어나고요. 또한 ChatGPT 또는 CoPilot과 통합되어 있어서 프롬프트를 생성하기 위한 고민이 많이 줄어듭니다. 따라서 처음 사용하는 사람도 상당히 쓸만한 이미지를 얻을 가능성이 높습니다.

그러나  DALL-E 3의 경우, 현재로서는 이미지를 수정하는 기능이 전혀 없습니다. 인페인트 아웃페인트 및 ControlNet 을 지원하지 않죠. 또한, DALL-E 3 의 모델이 하나뿐이 없기 때문에 스타일 다양성이 스테이블 디퓨전보다 떨어집니다.

DALL-E 3의 장점은 사용 편의성이 뛰어납니다. 이때문에 실용적이라고 생각합니다. 스테이블 디퓨전이나 미드저니(MidJourney)에 비해 짧은 시간 내에 필요한 이미지를 쉽게 얻을 수 있습니다. 반면 스테이블 디퓨전은 예술적 혹은 재미를 위한 생성에 뛰어나다고 할 수 있습니다. 특히 완벽할 때까지 이미지 부분부분을 수정할 수 있기 때문입니다.

전문가가 ChatGPT 를 사용할 경우, 프롬프트를 직접 조작할 수 없어서 최종 이미지를 미세조정하기 힘들 수 있습니다. 이는 안전성 때문일 수 있습니다. ChatGPT 에서는 (CoPilot 에서도) 프롬프트에 부적절한 내용을 포함할 수 없도록 추가적인 필터가 적용되어 있습니다. 따라서 사용자는 AI 모델을 자유롭게 사용할 수 없습니다.

가장 큰 차이는 비즈니스 모델이라고 할 수 있습니다. DALL-E 3는 폐쇄형 독점 서비스입니다. 스테이블 디퓨전은 오픈소스이며 다운로드 가능한 모델을 가지고 있죠. 스테이블 디퓨전은 수많은 사용자들이 많은 시간을 들여 새로운 도구를 개발하게 좀더 세부적으로 조정해 주고 있다는 데 큰 장점이 있다고 봅니다.

전 세계 정부와 대기없에서는 오픈소스 AI 모델을 조기에 규제하기 위해 노력하고 있습니다. 그 결과로 Civitai.com에 존재하는 수많은 커스텀 모델과 콘트롤넷과 같은 놀라운 도구 개발로 이어진 오픈 소스 개발에 제동이 가해질 가능성이 높습니다. 

DALL-E 3를 사용한 스테이블 디퓨전 개선

DALL-E 3의 성공은 정확한 캡션(제목/자막)에 근거한 프롬프트 이해도/따르기에 의한 것이라고 볼 수 있습니다. 앞으로 스테이블 디퓨전 XL도 이를 채택하여 새롭게 발전할 것으로 예상됩니다. 이렇게 되면, 스테이블 디퓨전도 더욱 사용하기 쉽게 되고, txt-to-img 생성기로서 보다 유용하게 될 것으로 보입니다. 

그 전까지 DALL-E 3를 사용해 스테이블 디퓨전의 부적한 부분을 채울 방법이 존재합니다. 아직 테스트해보지는 않았으나 복잡한 프롬프트일 경우 DALL-E 3를 사용해 1차 이미지를 생성하고, 이를 기반으로 Stable Diffusion에서 img2img 방식으로 새롭게 스타일을 입히는 것이 가능하지 않을까 하는 생각을 해봅니다. 또는 1차 이미지에서 ControlNet Canny 등을 사용해서 구도를 가져오고 새로운 스타일을 입히는 것도 가능할 것이라고 보입니다.

또한, DALL-E 3 에서 1차 이미지를 생성하고 스테이블 디퓨전에서 인페인트 혹은 아웃페인트하는 방식으로 보완하는 방법도 있을 것 같습니다. 

이상입니다. 이 글은 https://stable-diffusion-art.com/dalle3-vs-stable-diffusion-xl/를 번역하면서 일부 필요한 부분을 수정하고, 제가 생성한 결과물로 대체하면서 작성한 글입니다.

민, 푸른하늘

===