AI 이미지/Stable Diffusion

SDXL : 고해상도 이미지 합성을 위한 디퓨전 모델 개선

하늘이푸른오늘 2023. 7. 19. 16:45

스테이블 디퓨전의 후속모델인 SDXL 이 공개되었습니다. 베타버전에 이어 0.9 버전이 공개되었으며, 조만간 정식으로 공개될 예정으로 있습니다. 이 글은 0.9에서 어떤 부분을 개선했는지에 대한 stability.ai 사의 개발진이 작성한 논문입니다. 이 논문은 SDXL의 기술적인 측면을 다루고 있기 때문에 사용법만 알고싶은 분들은 그냥 읽지 않으셔도 무방합니다. 그냥 SDXL이 스테이블 디퓨전 1.5/2.1 보다 매우 성능이 뛰어나다고만 아시면 충분합니다.

SDXL은 스테이블 디퓨전 1.5 및 2.1에 비해 매우 높은 수준의 이미지를 생성할 수 있습니다. 스테이블 디퓨전 1.5에서는 프롬프트외에도 LoRA나 ControlNet과 같은 보조적인 기법을 동원하고, 잘못된 이미지는 인페인트로 수정하는 등 여러가지 단계를 거쳐야만 쓸만한 이미지를 얻을 수 있었지만, SDXL은 기본 모델만으로도 구도도 잘 맞고, 전체적으로 미적으로 괜찮을 뿐 아니라, 세부적으로도 만족스러운 이미지를 얻을 수 있습니다. 이 논문 부록 D에 있는 다른 사용 제품들과의 비교에서 알 수 있는 것처럼 DALL_E 나 Midjourney를 구지 쓸 필요 없겠다 싶을 정도로 멋진 이미지가 생산됩니다.

SDXL 0.9는 제가 엊그제 쓴 글에서 소개한 것처럼 Clipdrop 사이트에서 직접 테스트해볼 수 있습니다. 제 생각엔 SDXL이 정식으로 공개되면, 이미지 생성형 AI 시장도 상당히 개편되지 않을까... 하는 생각이 드네요. 어떤 변화가 일어날지... 상당히 기대됩니다.

이 글은 제가 DeepL 번역의 도움을 받아가며 번역한 글입니다. 제가 전문가가 아니라서 일부 잘못된 번역이 있을 수도 있음을 감안하시고 읽어보시기 바랍니다.

민, 푸른하늘

===

https://arxiv.org/pdf/2307.01952.pdf

저자: Dustin Podell, Zion English, Kyle Lacey, Andreas Blattmann, Tim Dockhorn, Jonas Müller, Joe Penna, Robin Rombach (Stability AI, 응용 연구부)

코드 :  https://github.com/Stability-AI/generative-models, 모델 파일 : https://huggingface.co/stabilityai/

논문(https://arxiv.org/abs/2307.01952)에서 가져온 이미지
논문(https://arxiv.org/abs/2307.01952)에서 가져온 이미지

초록

이 논문은 text-to-image 합성을 위한 latent 디퓨전 모델인 SDXL을 소개합니다. SDXL은 이전 버전의 스테이블 디퓨전과 비하여 3배 더 큰 UNet 백본을 활용합니다. 모델 파라미터 수가 증가한 것은 주로 SDXL이 두 번째 텍스트 인코더를 사용하여, 더 많은 attention 블록과 더 큰 교차 주의 콘텍스트를 활용하기 때문입니다. SDXL은 여러 가지 새로운 조건부여(conditioning) 체계를 설계하고 다양한 종횡비의 이미지를 학습시켰습니다. 또한 정제 모델(refinement model)을 도입함으로써, 사후 image-to-image 기법을 사용하여 SDXL로 생성된 샘플의 시각적 충실도를 개선하였습니다. SDXL은 이전 버전의 Stable Diffusion에 비해 대폭 향상된 성능을 보였으며, 최첨단 블랙박스 방식의 이미지 생성기들과 경쟁할 수 있을 정도의 결과물을 얻을 수 있음을 확인했습니다. 우리는 개방형 연구를 장려하고 대규모 모델 학습 및 평가의 투명성을 높이기 위해, 코드와 모델 파일에 대한 접근을 허용합니다.

1. 개요

지난 한 해 동안 자연언어[50], 오디오[17], 시각 미디어[38, 37, 40, 44, 15, 3, 7] 등 다양한 데이터 영역에서 심층 생성 모델링(generative modelling)이 엄청난 도약을 이루었습니다. 이 논문에서는 이미지에 초점을 맞춰, 스테이블 디퓨전을 대폭 개선한 버전인 SDXL을 공개합니다. 스테이블 디퓨전은 3D 분류[43], 제어 가능한 이미지 편집[54], 이미지 개인화[10], 합성 데이터 증강[48], 그래픽 사용자 인터페이스 프로토타이핑[51] 등, 최근의 다양한 발전의 기반이 되고 있는 레이턴트 text-to-image 디퓨전 모델(DM)입니다. 놀랍게도 스테이블 디퓨전의 응용 범위는 음악 작곡[9], fMRI 뇌 스캔 이미지 재구성[49] 등 다양한 분야를 걸쳐 매우 광범위하게 확장되었습니다.

이미지와 같은 시각 미디어 제작 분야에서 가장 큰 문제점은, 최첨단 블랙박스 이미지 생성 모델이 아키텍처의 불투명성으로 인해 그 성능을 충실히 평가하고 검증할 수 없다는 점입니다. 이러한 투명성 부족으로 인해 재현성이 떨어지고, 혁신이 저해되며, 커뮤니티가 이러한 모델을 기반으로 과학과 예술의 발전을 도모하는 데 방해가 됩니다. 또한, 이러한 비공개 소스 전략으로 인해, 이미지 생성형 모델의 편견과 한계를 공정하고 객관적인 방식으로 평가할 수 없게 됩니다. 이러한 평가는 책임감 있고 윤리적인 모델 배포에 있어 매우 중요한 요소입니다. 우리는 블랙박스 이미지 생성 모델과 경쟁할 수 있는 개방형 이미지 생성 모델인 SDXL을 공개합니다(그림 10 및 그림 11 참조).

2. 스테이블 디퓨전 개선

이 절에서는 스테이블 디퓨전 아키텍처에 대한 개선 사항을 소개합니다. 이러한 개선 사항은 모듈식이므로, 개별적 혹은 함께 사용하여 모든 모델을 확장할 수 있습니다. 다음 전략은 레이턴트 디퓨전 모델(LDM, latent diffusion model)의 확장으로 구현되었지만[38], 대부분의 전략은 픽셀 공간 모델(pixel-space model)에도 적용할 수 있습니다.

그림 1: (좌측) SDXL과 Stable Diffusion 1.5 및 2.1의 사용자 선호도 비교: SDXL은 이미 안정적 확산 1.5 및 2.1보다 성능이 월등히 뛰어나지만, 정제 단계를 추가하면 성능이 더욱 향상됩니다. (우측) 2단계 파이프라인의 시각화: SDXL을 사용하여 128×128 크기의 초기 레이턴트 이미지를 생성합니다. 그 후, 특화된 고해상도 정제 모델을 활용하고 동일한 프롬프트를 사용하여, 첫 번째 단계에서 생성된 레이턴트 이미지에 SDEdit[28]를 적용합니다. SDXL과 세분화 모델은 동일한 자동 인코더(autoencoder)를 사용합니다.
그림 1: (좌측) SDXL과 Stable Diffusion 1.5 및 2.1의 사용자 선호도 비교: SDXL은 이미 안정적 확산 1.5 및 2.1보다 성능이 월등히 뛰어나지만, 정제 단계를 추가하면 성능이 더욱 향상됩니다. (우측) 2단계 파이프라인의 시각화: SDXL을 사용하여 128×128 크기의 초기 레이턴트 이미지를 생성합니다. 그 후, 특화된 고해상도 정제 모델을 활용하고 동일한 프롬프트를 사용하여, 첫 번째 단계에서 생성된 레이턴트 이미지에 SDEdit[28]를 적용합니다. SDXL과 세분화 모델은 동일한 자동 인코더(autoencoder)를 사용합니다.

2.1  아키텍처 및 규모

디퓨전 모델이 이미지 합성을 위한 강력한 생성 모델임을 입증한 Ho et al.[14] 및 Song et al.[47]의 중요한 연구를 시작으로 컨볼루션 UNet[39] 아키텍처는 디퓨전 기반 이미지 합성을 위한 독보적인 아키텍처가 되었습니다. 그러나 기본 디퓨전 모델[40, 37, 38]의 개발과 함께 기본 아키텍처는 지속적으로 발전해 왔습니다. 자체 인지(self attention) 추가 및 향상된 업스케일링 레이어[5], 텍스트-이미지 합성을 위한 교차 주의[38], 순수 트랜스포머 기반 아키텍처[33] 등이 그러한 예입니다.

표 1: SDXL과 기존 스테이블 디퓨전 모델의 비교
모델 SDXL SD 1.4/1.5 SD 2.0/2.1
# of UNet params
Transformer blocks
Channel mult.
Text encoder
Context dim.
Pooled text emb.
2.6B
[0, 2, 10]
[1, 2, 4]
CLIP ViT-L & OpenCLIP ViT-bigG
2048
OpenCLIP ViT-bigG
860M
[1, 1, 1, 1]
[1, 2, 4, 4]
CLIP ViT-L
768
N/A
865M
[1, 1, 1, 1]
[1, 2, 4, 4]
OpenCLIP ViT-H
1024
N/A

우리는 이러한 추세와 Hoogeboom et al.[16]을 따라 대부분의 트랜스포머 계산을 UNet의 하위 레벨 기능으로 이동시켰습니다. 특히, 기존의 스테이블 디퓨전 아키텍처와 달리, 우리는 UNet 내에서 트랜스포머 블록의 이질적인 분포를 활용합니다. 즉, 효율성을 위해 가장 높은 피처 레벨에서 트랜스포머 블록을 생략하고, 낮은 레벨에서 2개와 10개 블록을 사용하며, UNet에서 가장 낮은 레벨(8× 다운샘플링)을 완전히 제거합니다. (표. 1에서 Stable Diffusion 1.x 및 2.x 아키텍처와 SDXL의 아키텍처를 비교해 보세요) 우리는 텍스트 조건 부여(conditioning)에  더 강력한 사전 학습된 텍스트 인코더를 선택하였습니다. 구체적으로, CLIP ViT-L [34]과 함께 OpenCLIP ViT-bigG [19]를 사용하여, 두 번째 텍스트 인코더 출력을 채널 축 [1]을 따라 연결합니다. 교차 인지(cross attention) 레이어를 사용하여 텍스트 입력에 대한 모델을 조건 부여(conditionting)하는 것 외에도, [30]에 따라 OpenCLIP 모델에서 풀링된 텍스트 임베딩에 대한 모델을 추가로 조건 부여합니다. 이러한 변경으로 인해 UNet의 모델 크기는 2.6억 개의 파라미터로 늘어나게 되었습니다(표 1 참조). 텍스트 인코더의 총 파라미터 크기는 8억 1,700만 개입니다.

2.2 마이크로 조건부여(Micro-Conditioning)

이미지 크기에 따른 모델 조건 부여

레이턴트 디퓨전 모델 패러다임의 악명 높은 단점[38]은 2단계 아키텍처로 인해 모델 학습에 사용되는 이미지가 일정 크기 이상이어야 한다는 사실입니다. 이 문제를 해결하기 위한 방법으로는 최소 해상도 이하의 모든 훈련 이미지를 버리거나(예를 들어, Stable Diffusion 1.4/1.5는 512픽셀 이하의 모든 이미지를 버림), 너무 작은 이미지를 업스케일링하는 두 가지 방법이 존재합니다. 전자의 방법은 원하는 해상도에 따라 다르지만 학습 데이터의 상당 부분이 버려져 성능이 저하되고 일반화에 문제가 생길 수 있습니다. 그림 2은 SDXL이 학습한 데이터 세트에 대해 이러한 효과를 시각화한 것입니다. 이 특정 데이터에서 사전 학습 해상도인 256x256 픽셀 미만의 샘플을 모두 폐기하면, 폐기되는 데이터가 39%에 달하였습니다. 반면에 두 번째 방법은 일반적으로 최종 출력 이미지에 업스케일링 결함이 발생하여, 이미지가 흐릿해지는 등의 문제가 발생합니다.

그림 2: 사전 학습 데이터 세트의 해상도 분포. 이 논문에서 제안한 크기 조건 부여를 적용하지 않을 경우, 검은색 점선으로 표시한 것처럼 39%에 달하는 256픽셀보다 작은 데이터가 버려지게 됩니다. 이 그래프에서 각 셀의 색상 강도는 샘플 수에 비례합니다.
그림 2: 사전 학습 데이터 세트의 해상도 분포. 이 논문에서 제안한 크기 조건 부여를 적용하지 않을 경우, 검은색 점선으로 표시한 것처럼 39%에 달하는 256픽셀보다 작은 데이터가 버려지게 됩니다. 이 그래프에서 각 셀의 색상 강도는 샘플 수에 비례합니다.

그 대신 이 논문에서는, 원본 이미지 해상도에 따라 UNet 모델에 조건부여 할 것을 제안하였습니다. 이것은 학습중 쉽게 사용가능 합니다. 특히 이미지의 원본(즉, 리스케일링 전) 높이와 너비를 모델 csize = (horiginal, woriginal)에 대한 추가 조건 부여로 제공합니다. 각 구성 요소는 푸리에 피처 인코딩을 사용하여 독립적으로 임베딩되며, 이러한 인코딩은 단일 벡터로 연결되고, 이를 타임스텝(timestep) 임베딩에 추가하여 모델에 공급합니다[5].

추론 시 사용자는 이 크기 조건부여(size conditioning)를 통해 원하는 이미지의 겉보기 해상도를 설정할 수 있습니다. 분명히(그림 3 참조), 이 모델은 조건부여 csize를 해상도에 따른 이미지 특징과 연관시키는 방법을 학습했고, 이를 활용하여 주어진 프롬프트에 해당하는 출력의 모양을 수정할 수 있음을 알 수 있습니다. 참고로 그림 3에 표시된 이미지의 경우, 512 × 512 모델로 생성된 샘플을 시각화했는데(자세한 내용은 2.5절 참조), 이는 크기 조건부여는 최종 SDXL 모델에 사용하는 후속 다중 비율 미세 조정 후에는 덜 명확하게 보이기 때문입니다.

그림 3: 크기 조건부여를 다양하게 했을 때의 효과: SDXL에서 동일한 시드를 사용하고 각 열 위에 표시된 크기 조건부여를 추가하여 4개의 샘플을 생성하였습니다. 더 큰 이미지 크기로 조건부여할 때 이미지 품질이 확실히 향상됨을 알 수 있습니다. 512x512 모델의 샘플은 2.5절을 참조하세요. 참고: 이 시각화에서는 512 × 512 픽셀 기본 모델(2.5절 참조)을 사용했는데, 이는 1024 × 1024 미세 조정 전에 크기 조건부여의 효과가 더 명확하게 보이기 때문입니다. 그림을 확대하면 효과를 더 자세히 볼 수 있습니다(원 논문을 보시는 게 좋습니다).
그림 3: 크기 조건부여를 다양하게 했을 때의 효과: SDXL에서 동일한 시드를 사용하고 각 열 위에 표시된 크기 조건부여를 추가하여 4개의 샘플을 생성하였습니다. 더 큰 이미지 크기로 조건부여할 때 이미지 품질이 확실히 향상됨을 알 수 있습니다. 512x512 모델의 샘플은 2.5절을 참조하세요. 참고: 이 시각화에서는 512 × 512 픽셀 기본 모델(2.5절 참조)을 사용했는데, 이는 1024 × 1024 미세 조정 전에 크기 조건부여의 효과가 더 명확하게 보이기 때문입니다. 그림을 확대하면 효과를 더 자세히 볼 수 있습니다(원 논문을 보시는 게 좋습니다).

우리는 512x512 의 클래스 조건부 ImageNet [4]에서 세 개의 LDM(레이턴트 디퓨전 모델)을 훈련하고 평가하여, 이 간단하지만 효과적인 조건부여 기법의 효과를 정량적으로 평가하였습니다. 첫 번째 모델(CIN-512 전용)의 경우 한쪽이라도 512픽셀보다 작은 모든 학습 데이터를 폐기하여 7만 개의 이미지로만 구성된 훈련 데이터 세트를 생성하였습니다. CIN-nocond의 경우 모든 학습 데이터를 사용하지만 크기 조건부여는 사용하지 않았습니다. 이 추가 조건부여는 CIN-size-cond에만 사용됩니다. 학습 후, 모든 모델에 대해 DDIM 50 단계[46]와 CFG(무분류 안내 척도) 5[13]로 5천 개의 샘플을 생성하고, 전체 검증 세트에 대해 IS[42] 및 FID[12]를 계산하였습니다. CIN-size-cond의 경우에는 항상 csize = (512, 512)로 조건부여한 샘플을 생성하였습니다.
표 2는 결과를 요약한 것으로, 두 기준 모두에서 기준 모델에 비해 CIN-size-cond가 개선되었음을 확인할 수 있었습니다. CIN-512-only의 성능 저하는 작은 훈련 데이터 세트에 대한 과적합(overfitting)으로 인한 일반화 불량 때문이며, CIN-nocond의 샘플 분포에서 흐릿한 샘플 모드의 효과로 인해 FID 점수가 낮아진 것으로 파악하였습니다. 참고로 이러한 고전적인 정량적 점수는 기본(텍스트-이미지) 디퓨전 모델의 성능을 평가하는 데는 적합하지 않지만[40, 37, 38](부록 F 참조), FID와 IS의 신경 백본(nueral backbone)이 ImageNet 자체에서 학습되었기 때문에, ImageNet에서는 여전히 합리적인 지표입니다.

표 2: 학습 데이터의 원래 크기에 대해 조건 부여하면 ,512x512 해상도에서 클래스 조건부 ImageNet[4]의 성능이 향상됩니다.
표 2: 학습 데이터의 원래 크기에 대해 조건 부여하면 ,512x512 해상도에서 클래스 조건부 ImageNet[4]의 성능이 향상됩니다.

크롭 매개변수에 대한 모델 조건부여(conditioning)

그림 4의 윗쪽 두 줄은 이전 스테이블 디퓨전 모델의 일반적인 실패 사례입니다. 왼쪽 고양이 이미지에서 SD 1-5 및 SD 2-1에서 고양이 머리가 잘린 것처럼 합성된 객체가 잘릴 수 있습니다. 이러한 현상은 모델 학습 중에 무작위 크롭을 사용하기 때문에 발생합니다. 즉, PyTorch[32]와 같은 DL 프레임워크에서 배치를 정렬하려면 동일한 크기의 텐서가 필요하므로, 일반적인 처리 파이프라인의 경우 (i) 가장 짧은 크기가 원하는 목표 크기와 일치하도록 이미지 크기를 조정한 다음 (ii) 긴 축을 따라 이미지를 무작위로 크롭하게 됩니다. 무작위 크롭은 데이터 증강의 자연스러운 형태이지만, 생성된 이미지에 누출되어 위 그림에 나타난 나쁜 효과를 유발할 수 있습니다.

그림 4. 예전 스테이블 디뷰전과 SDXL 결과물 비교. 각 프롬프트에 대해 DDIM 샘플러[46]  50 단계  및 cfg-scale 8.0 [13]을 적용해 생성한 이미지들 중각 모델의 무작위 샘플 3개를 표시하였습니다. 그림 14에 추가적인 예제가 있습니다.
그림 4. 예전 스테이블 디뷰전과 SDXL 결과물 비교. 각 프롬프트에 대해 DDIM 샘플러[46]  50 단계  및 cfg-scale 8.0 [13]을 적용해 생성한 이미지들 중각 모델의 무작위 샘플 3개를 표시하였습니다. 그림 14에 추가적인 예제가 있습니다.

이 문제를 해결하기 위해 이 논문에서는 간단하면서도 효과적인 또 다른 조건부여 방법을 제안합니다. 즉, 데이터 로딩 중에 크롭 좌표 ctop 및 cleft(각각 수평 축 및 수직축을 따라 왼쪽 상단 모서리에서 잘린 픽셀의 양을 지정하는 정수)를 균일하게 샘플링하고, 위에서 설명한 크기 조건부여와 유사하게 푸리에 피처 임베딩을 통해 모델에 조건부여 파라미터로 공급합니다. 그 다음 연결된 임베딩 ccrop을 추가 조건부여 파라미터로 사용합니다. 이 기법은 LDM에만 국한되지 않으며 모든 DM에 사용할 수 있다는 점을 강조하고 싶습니다. 크롭 및 크기 조건부여는 쉽게 결합할 수 있다는 점에 유의하세요. 이 경우 채널 차원을 따라 피처 임베딩을 연결한 다음, UNet의 타임스텝 임베딩에 추가합니다. 알고리즘 1은 이와 같이 결합할 때 학습중에 ccrop과 csize를 샘플링하는 방법을 나타냅니다.

알고리즘 1: 크기 및 크 조건부여를 위한 조건 부여 파이프라인

Require: 이미지 학습 데이터세트 D, 학습을 위한 목표 이미지 사이즈 s = (htgt, wtgt)
Require: 리사이즈 함수 R, 크롭 함수 C
Require: 모델 학습 단계 T
	converged ← False
	while not converged do
		x ∼ D
		woriginal ← width(x)
		horiginal ← height(x)
		csize ← (horiginal, woriginal)
		x ← R(x, s) 					▷ 작은 이미지를 목표 크기 s로 리사이즈
		if horiginal ≤ woriginal then
			cleft ∼ U(0, width(x) − sw) ▷ 이산 유니폼 분포로부터 cleft 샘플링
			ctop = 0
		else if horiginal > woriginal then
			ctop ∼ U(0, height(x) − sh) ▷ 이산 유니폼 분포로부터 ctop 샘플링
			cleft = 0
		end if
		ccrop ← (ctop, cleft)
		x ← C(x, s, ccrop) 		▷ 좌상단 좌표(ctop, cleft)를 사용하여 이미지를 크기 s로 크롭
		converged ← T (x, csize, ccrop) ▷ csize 와 ccrop으로 조건부여된 모델 학습
	end while

경험상 대규모 데이터 세트는 평균적으로 객체가 중심이라는 점을 감안하여, 추론 중에 (ctop 및 cleft) = (0, 0)을 설정하였고,학습된 모델에서 객체 중심 샘플을 얻었습니다.

그림 5를 참조하세요: (ctop 및 cleft)를 튜닝함으로써, 이 논문에서는 추론 중 크롭의 양을 성공적으로 시뮬레이션할 수 있습니다. 이는 조건부여-증강(conditioning-augmentation)의 한 형태이며, 자동 회귀(autoregressive)[20] 모델과 함께 다양한 형태로 사용되어 왔으며 최근에는 디퓨전 모델에서도 사용[21]되고 있습니다.

그림 5. 2.2절에서 논의한 크롭 조건부여 사례. 그림4와 그림14는 이 파라미터를 명시적으로 제어하지 않아 크롭 결함이 발생하는  경우입니다. 512x512 모델의 샘플은 2.5절을 참조하십시오.
그림 5. 2.2절에서 논의한 크롭 조건부여 사례. 그림4와 그림14는 이 파라미터를 명시적으로 제어하지 않아 크롭 결함이 발생하는  경우입니다. 512x512 모델의 샘플은 2.5절을 참조하십시오.

데이터 버킷(data bucketing)[31]과 같은 다른 방법도 이러한 작업을 성공적으로 처리하지만, 우리는 크롭으로 인한 데이터 증강의 이점을 활용하면서도 생성 프로세스에 결함이 발생하지 않도록 하며, 실제 이미지 합성 프로세스를 더 잘 제어할 수 있다는 장점을 활용합니다. 또한 구현이 간편하고 추가적인 전처리 작업이 필요 없이 훈련 중에 온라인 방식으로 적용할 수 있습니다.

2.3 다중 종횡비 학습(Multi-Aspect Training)

실제 데이터 세트에는 크기도 다양하고 종횡비율도 다양한 여러가지이미지가 포함되어 있습니다(그림 2 참조). 텍스트-이미지 모델의 일반적인 출력 해상도는 512 × 512 또는 1024 × 1024 등의 정사각형 이미지이지만, 랜드스케이프(예: 16:9) 또는 포트레이트 형식 이미지가 광범위하게 사용됨을 고려할 때 이는 다소 부자연스럽다고 주장합니다.

이를 착안하여 우리는 다양한 종횡비를 동시에 처리할 수 있도록 모델을 세밀하게 조정했습니다: 일반적인 관행[31]을 따라 데이터를 서로 다른 종횡비의 그룹으로 분할하되 픽셀 수를 가능한 한 1024x1024픽셀에 가깝게 유지하고, 그에 따라 높이와 너비를 64의 배수로 변경시켰습니다. 훈련에 사용되는 모든 종횡비의 전체 목록은 부록 I 에서 확인할 수 있습니다. 최적화 과정에서 학습 배치(training batch)는 동일한 그룹의 이미지로 구성되며, 각 학습 단계마다 그룹 크기를 변경하였습니다. 또한 모델은 정수 cparp = (hptgtp, wptgtp)의 튜플로 표현되는 그룹 크기(또는 목표 크기)를 조건부여로 받아, 위에서 설명한 크기 및 크롭 조건부여와 유사하게 푸리에 공간에 포함시켰습니다.

실제에 있어서는 고정 종횡비 및 해상도로 모델을 사전 학습시킨 후 미세 조정 단계로 다중 종횡비 학습을 적용하고, 채널 축을 따라 연결하여 2.2 절에서 소개한 조건부여 기법과 결합합니다. 부록 J의 그림 16은 이 작업을 위한 파이썬 코드입니다. 참고로 크롭 조건부여와 다중 종횡비 학습은 상호 보완적이며, 크롭 조건부여는 그룹 경계(일반적으로 64픽셀) 내에서만 작동합니다. 그러나 우리는 구현의 용이성을 위해 다중 종횡비 모델에 대해 이 제어 매개변수를 유지하기로 했습니다.

2.4 자동 인코더 개선

스테이블 디퓨전은 자동 인코더의 사전 훈련되고 학습되고 고정된 잠재 공간에서 작동하는 LDM(레이턴트 디퓨전 모델)입니다. 대부분의 의미론적 구성은 LDM에서 이루어지지만[38], 자동 인코더를 개선함으로써 생성된 이미지의 국부적인 고주파 디테일을 개선할 수 있습니다. 이를 위해 더 큰 배치 크기(256 대 9)에서 원래의 Stable Diffusion에 사용된 것과 동일한 자동 인코더 아키텍처를 학습시키고, 추가적으로 지수 이동 평균으로 가중치를 추적합니다. 그 결과 자동 인코더는 평가된 모든 재구성 지표에서 원본 모델보다 성능이 뛰어남을 파악했습니다(표 3 참조). 우리는 모든 실험에 이 자동 인코더를 사용했습니다.

표 3. COCO2017[26] 검증 분할 256x256픽셀 크기의 이미지에 대한 자동 인코더 재구성 성능. 참고: Stable Diffusion 2.x는 Stable Diffusion 1.x의 자동 인코더를 개선한 버전을 사용합니다. 즉, 감지된 손실에 대한 가중치를 낮추고[55] 더 많은 컴퓨팅을 사용하여 디코더를 미세 조정했습니다. 참고로 이 논문의 새로운 자동 인코더는 처음부터 학습되었습니다.
표 3. COCO2017[26] 검증 분할 256x256픽셀 크기의 이미지에 대한 자동 인코더 재구성 성능. 참고: Stable Diffusion 2.x는 Stable Diffusion 1.x의 자동 인코더를 개선한 버전을 사용합니다. 즉, 감지된 손실에 대한 가중치를 낮추고[55] 더 많은 컴퓨팅을 사용하여 디코더를 미세 조정했습니다. 참고로 이 논문의 새로운 자동 인코더는 처음부터 학습되었습니다.

2.5 통합

우리는 최종 모델인 SDXL을 다단계 절차로 학습시켰습니다. SDXL은 2.4절의 자동 인코더와 1000단계의 이산 시간(discrete-time) 디퓨전 스케줄[14, 45]을 사용합니다. 먼저, 그림 2와 같은 높이와 너비 분포를 가진 내부 데이터 세트에 대해, 해상도 256 × 256 과 배치 크기 2048로 2.2절에 설명된 크기 및 크롭 조건부여를 사용하여 600,000 단계의 최적화에 대해 기본 모델(표 1 참조)을 사전 훈련시켰습니다. 512 × 512 픽셀 이미지에 대한 훈련을 계속하여 200,000 단계의 최적화를 수행하고, 마지막으로 약 1024 × 1024 픽셀 영역의 다중 종횡비(Sec. 2.3)에 대해 오프셋 잡음 수준 0.05로 모델을 학습시켰습니다. 

정제 단계(Refinement Stage)

경험적으로, 결과 모델은 때때로 부분적으로 품질이 낮은 샘플을 생성하게 됩니다(그림 6 참조). 샘플 품질을 개선하기 위하여, 우리는 동일한 잠재 공간에서 고품질, 고해상도 데이터에 특화된 별도의 LDM을 훈련하고, 기본 모델의 샘플에 대해 SDEdit [28]에서 도입한 노이즈 제거 프로세스를 적용하였습니다. 우리는 [1]을 따라 처음 200개의 (이산) 잡음 스케일에서 이 정제 모델을 특화하였습니다. 추론하는 동안 기본 SDXL에서 잠상을 렌더링하고, 동일한 텍스트 프롬프트를 사용하여 정제 모델에 대해 레이턴트 공간에서 직접적으로 확산(디퓨전) 및 잡음 제거를 수행합니다(그림 1 참조). 이 단계는 선택 사항이지만, 그림 6과 그림 13에서 볼 수 있듯이 세부적인 배경과 사람의 얼굴에 대한 샘플 품질을 향상시킵니다.

그림 6. 논의된 정제 모델을 사용하지 않는 경우(왼쪽)와 사용한 경우(오른쪽)의 1024x1024 이미지. 프롬프트:"Epic long distance cityscape photo of New York City flooded by the ocean and overgrown buildings and jungle ruins in rainforest, at sunset, cinematic shot, highly detailed, 8k, golden light".추가 이미지는 그림 13을 참조하세요.
그림 6. 논의된 정제 모델을 사용하지 않는 경우(왼쪽)와 사용한 경우(오른쪽)의 1024x1024 이미지. 프롬프트:"Epic long distance cityscape photo of New York City flooded by the ocean and overgrown buildings and jungle ruins in rainforest, at sunset, cinematic shot, highly detailed, 8k, golden light".추가 이미지는 그림 13을 참조하세요.

정제 단계 유무에 따른 모델 성능을 평가하기 위해, 우리는 사용자에게 다음 SDXL, SDXL(정제 포함), 스테이블 디퓨전 1.5 및 2.1 등 네 가지 모델 중에서 가장 선호하는 것을 선택하도록 했습니다, 그 결과, 정제 단계가 포함된 SDXL이 가장 높은 평가를 받았으며, 스테이블 디퓨전 1.5 및 2.1을 큰 차이로 능가하는 것으로 나타났습니다. (정제 단계가 있는 SDXL: 48.44%, SDXL 기본: 36.93%, 스테이블 디퓨전 1.5: 7.91%, 스테이블 디퓨전 2.1: 6.71%) 그림 1을 참조하세요. 그러나 그림 12와 부록 F에서 설명한 것처럼 FID 및 CLIP등의  고전적인 성능 지표를 사용할 경우, SDXL의 개선 사항이 뚜렸하게 나타나지 않았습니다. 이는 Kirstain 등[23]의 연구 결과와 일치하며 이를 더욱 뒷받침합니다.

3. 향후 계획

이 논문에서는 텍스트-이미지 합성을 위한 기초 모델인 스테이블 디퓨전에 대한 개선 사항에 대한 예비 분석을 제시합니다. 합성된 이미지 품질, 프롬프트에 대한 준수성 및 구도 측면에서 상당한 개선이 이루어졌지만, 우리는 모델이 더 개선될 수 있다고 생각되는 몇 가지 측면에 대해 아래에 나열하였습니다.

  • 단일 단계: 현재, 우리는 추가 정제 모델이 포함된 2단계 접근 방식을 사용하여 SDXL에서 최상의 이미지를 생성합니다. 이로 인해 두 개의 큰 모델을 메모리에 로드해야 하므로 접근성과 샘플링 속도가 저하됩니다. 향후 작업에서는 동등하거나 더 나은 품질을 제공하면서도 하나의 단계로 통합하는 방법을 연구할 예정입니다.
  • 텍스트 합성: 더큰 규모의 텍스트 인코더(OpenCLIP ViT-bigG [19])를 사용하므로 이전 버전의 Stable Diffusion에비해  텍스트 렌더링 기능이 향상되었지만, 바이트 수준 토큰화기[52, 27]를 통합하거나 단순히 모델을 더 큰 크기로 확장[53, 40]하면 텍스트 합성을 더욱 개선할 수 있을 것으로 기대합니다.
  • 아키텍처: 이 논문에서는 탐색 단계로서 UViT [16] 및 DiT [33]와 같은 트랜스포머 기반 아키텍처를 간단히 실험했지만 즉각적인 이점을 발견하지 못했습니다. 그러나 신중하게 하이퍼 파라미터 연구를 수행하면 훨씬 더 큰 규모의 트랜스포머 기반 아키텍처로 확장할 수 있을 것이라고 낙관적으로 전망합니다.
  • 정류(distillation):기존의 스테이블 디퓨전 모델에 비해 개선된 점은 상당하지만, 추론 비용(VRAM과 샘플링 속도)이 증가하는 대가를 치르고 있습니다. 따라서 향후 작업은 추론에 필요한 컴퓨팅을 줄이고, 가이던스 정류[29], 지식 정류[6, 22, 24], 점진적 증류[41, 2, 29] 등을 통해 샘플링 속도를 높이는 데 초점을 맞추고자 합니다.
  • 우리의 모델은 이산 시간 공식[14]으로 학습시켰으며, 미적으로 만족스러운 결과를 얻기 위해 오프셋 잡음[11, 25]이 필요합니다. 연속 시간으로 공식화하면 샘플링 유연성이 향상되고 잡음 스케줄 보정이 필요하지 않기 때문에, Karras 등[21]의 EDM 프레임워크를 사용하여 모델을 학습시킬 방안을 고려하고 있습니다.

부록

A. 감사의 글

StabilityAI의 모든 분, 특히 비교, 코드 등을 작업해 주신 모든 들께 감사드립니다: Alex Goodwin, Benjamin Aubin, Bill Cusick, Dennis Nitrosocke Niedworok, Dominik Lorenz, Harry Saini, Ian Johnson, Ju Huo, Katie May, Mohamad Diab, Peter Baylies, Rahim Entezari, Yam Levi, Yannik Marek, Yizhou Zheng입니다. 또한 글쓰기를  지원해준 ChatGPT에도 감사드립니다.

B. 한계

그림 7. SDXL 의 실패사례. 이전 버전의 Stable Diffusion에 비해 크게 개선되었음에도 불구하고, 세부적인 공간 배치 나 세부 설명이 포함된 매우 복잡한 프롬프트(예: 왼쪽 상단)이 주어질 때, SDXL은 여전히 좋은 이미지 생성이 어렵습니다.  또한 손이 항상 올바르게 생성되는 것은 아니며(예: 왼쪽 상단), 모델에서 두 개념이 서로 섞이는 문제가 발생하기도 합니다(예: 오른쪽 하단 예시). 모든 예는 DDIM 샘플러[46] 50단계 및 CFG 8.0 [13]으로 생성된 무작위 샘플입니다.
그림 7. SDXL 의 실패사례. 이전 버전의 Stable Diffusion에 비해 크게 개선되었음에도 불구하고, 세부적인 공간 배치 나 세부 설명이 포함된 매우 복잡한 프롬프트(예: 왼쪽 상단)이 주어질 때, SDXL은 여전히 좋은 이미지 생성이 어렵습니다.  또한 손이 항상 올바르게 생성되는 것은 아니며(예: 왼쪽 상단), 모델에서 두 개념이 서로 섞이는 문제가 발생하기도 합니다(예: 오른쪽 하단 예시). 모든 예는 DDIM 샘플러[46] 50단계 및 CFG 8.0 [13]으로 생성된 무작위 샘플입니다.

SDXL 모델은 사실적인 이미지를 생성하고 복잡한 장면을 합성하는 데 있어 매우 뛰어나지만, 그 내재적 한계를 인지하는 것은 중요합니다. 이러한 한계를 이해하면, 좀더 기술을 더욱 개선하고 책임감 있게 사용할 수 있습니다.

첫째, 이 모델은 사람의 손과 같은 복잡한 구조를 합성할 때 어려움이 있습니다(그림 7, 왼쪽 상단 참조). 다양한 데이터로 훈련되었지만, 인체 구조의 복잡성으로 인해 정확한 표현을 일관되게 달성하는 데 어려움이 있습니다. 이러한 한계는 세밀한 디테일의 합성을 목표로 추가적으로 확장해야 마며 훈련 기술을 개발할 필요가 있음을 시사합니다. 이러한 현상이 발생하는 이유는 손 혹은 이와 유사한 물체가 사진에서 매우 큰 편차를 보이며, 이 경우 모델이 실제 3D 모양과 물리적 한계에 대한 지식을 추출하기 어렵기 때문일 수 있습니다.

둘째, SDXL 모델로 생성된 이미지가 놀라울 정도로 사실적이지만, 완벽한 포토리얼리즘을 확보하지는 못한다는 점에 유의해야 합니다. 미묘한 조명 효과나 미세한 텍스처 변화와 같은 미묘한 뉘앙스는, SDXL 이미지에 없거나 잘 표현되지 못하는 경우가 있습니다. 이러한 한계는 높은 수준의 시각적 충실도가 필요한 분야에서 모델로만 이미지를 생성할 경우 주의해야 함을 의미합니다.

또한, 모델의 학습 과정은 대규모 데이터 세트에 의존하기 때문에, 의도치 않게 사회적, 인종적 편견이 도입될 수 있습니다. 결과적으로 모델은 이미지를 생성하거나 시각적 속성을 추론할 때 의도치 않게 이러한 편견이 나타날 수 있음에 유의해야 합니다.

생성된 이미지에 여러 개체 또는 피사체가 포함된 경우, 모델에 "개념 출혈(concept bleeding)"이라는 현상이 나타날 수 있습니다. 이 문제는 서로 다른 요소가 의도하지 않게 병합되거나 겹쳐지는 것을 말합니다. 예를 들어, 그림 14에서 주황색 선글라스가 관찰되는데, 이는 주황색 스웨터에서 개념 출혈이 발생했기 때문입니다. 또 다른 사례로 그림 8의 펭귄은 '파란색 모자'와 '빨간 장갑'을 착용해야 하지만, 파란색 장갑과 빨간 모자로 생성되었습니다. 복잡한 장면 속에서 개별 오브젝트를 정확하게 분리하고 표현할 수 있도록 모델의 기능을 개선하려면, 이러한 현상을 인식하고 해결하는 것이 필수적입니다. 이러한 문제의 근본 원인은 사전 학습된 텍스트 인코더를 사용하기 때문입니다. 첫째, 모든 정보를 단일 토큰으로 압축하도록 학습되어 있어 올바른 속성과 객체만 바인딩하는 데 실패할 가능성이 존재합니다. Feng 등[8]은 단어간의 관계를 명시적으로 인코딩하여 이 문제를 완화합니다. 둘째, 대조적 손실도 이 문제에 기여할 수 있습니다. 동일한 배치(batch) 내에서 부정적인 예가 다르게 바인딩될 필요가 있기 때문입니다[35].

또한 SDXL 모델은 이전 SD 에 비해 상당히 발전되었지만, 길고 읽기쉬 텍스트를 렌더링할 때 여전히 어려움이 나타납니다. 그림 8에서 볼 수 있듯이 생성된 텍스트에 이상한 문자가 포함되거나 불일치가 나타나는 경우가 있습니다. 이러한 한계를 극복하기 위해서는 특히 확장된 텍스트 콘텐츠에 대해 텍스트 생성 기능을 향상시키는 기술에 대한 추가 연구와 개발이 필요합니다. 예를 들어 문자 수준 텍스트 토큰화를 통해 텍스트 렌더링 기능을 향상시킬 것을 제안한 Liu 등[27]의 연구를 참조하세요. 또는 모델을 확장하면 텍스트 합성을 더욱 향상시킬 수 있습니다[53, 40].

결론적으로, SDXL 모델은 이미지 합성에서 매우 뛰어나지만, 특정 한계에서 자유롭지는 않습니다. 복잡한 구조 합성, 완벽한 포토리얼리즘 구현, 편향성 해결, 개념 출혈 완화, 텍스트 렌더링 개선 등의 과제는, 향후 연구 및 최적화를 위한 방향을 제시하고 있습니다.

C. 디퓨전 모델

(생략합니다)

D. 다른 이미지 생성형 AI와의 비교

그림 8. SDXL과 DeepFloyd IF, DALLE-2, Bing Image Creator, Midjourney v5.2의 정성적 비교. 임의로 선택하는 데 따른 편향을 완화하기 위해 무작위로 선택한 Parti(P2) 프롬프트를 사용하였습니다. 시드 매개변수를 지정할 수 있는 경우, 모든 모델에 시드 3을 적용하였습니다. 시드 설정 기능이 없는 모델의 경우 처음 생성된 이미지를 포함시켰습니다.
그림 8. SDXL과 DeepFloyd IF, DALLE-2, Bing Image Creator, Midjourney v5.2의 정성적 비교. 임의로 선택하는 데 따른 편향을 완화하기 위해 무작위로 선택한 Parti(P2) 프롬프트를 사용하였습니다. 시드 매개변수를 지정할 수 있는 경우, 모든 모델에 시드 3을 적용하였습니다. 시드 설정 기능이 없는 모델의 경우 처음 생성된 이미지를 포함시켰습니다.

E. Midjourney v5.1과의 비교

E.1 전반적인 투표

SDXL의 생성 품질을 평가하기 위해 최신 텍스트-이미지 생성 플랫폼인 Midjourney1에 대비한 사용자 연구를 수행했습니다. 이미지 캡션(프롬프트)는 다양한 까다로운 프롬프트에 대해 대규모 텍스트-이미지 모델을 비교하기 위해 도입된 PartiPrompts(P2) 벤치마크[53]를 사용하였습니다.
이 연구에서는 각 카테고리에서 무작위로 5개의 프롬프트를 선택하고, 각 프롬프트에 대해 Midjourney(v5.1, 시드 2로 설정됨)와 SDXL을 사용하여 각각 1024×1024 이미지 4개를 생성했습니다. 그 다음 이 이미지들을 AWS GroundTruth 태스크포스에 제시하고, 해당 태스크포스는 프롬프트 준수 여부를 기준으로 투표했습니다. 투표 결과는 그림 9와 같습니다. 전반적으로 프롬프트 준수 측면에서 Midjourney보다 SDXL이 약간 더 낫다고 평가되었습니다.

그림 9. 17,153명의 SDXL v0.9와 Midjourney v5.1(조사 당시 최신버전) 간의 사용자 선호도 비교 결과. 이 비교는 P2(PartiPrompts) 벤치마크의 모든 'categories'와 'cja;;emges'에 걸쳐 이루어졌습니다. 주목할 만한 점은 SDXL이 Midjourney V5.1보다 54.9% 더 좋다고 평가되었다는 점입니다. 예비 시험에 따르면 최근 출시된 Midjourney V5.2는 이전 버전보다 프롬프트 이해도가 낮지만, 다중 프롬프트를 생성하는 힘든 프로세스로 인해, 광범위한 테스트를 수행하는 속도가 저해되는 것으로 나타났습니다.
그림 9. 17,153명의 SDXL v0.9와 Midjourney v5.1(조사 당시 최신버전) 간의 사용자 선호도 비교 결과. 이 비교는 P2(PartiPrompts) 벤치마크의 모든 'categories'와 'cja;;emges'에 걸쳐 이루어졌습니다. 주목할 만한 점은 SDXL이 Midjourney V5.1보다 54.9% 더 좋다고 평가되었다는 점입니다. 예비 시험에 따르면 최근 출시된 Midjourney V5.2는 이전 버전보다 프롬프트 이해도가 낮지만, 다중 프롬프트를 생성하는 힘든 프로세스로 인해, 광범위한 테스트를 수행하는 속도가 저해되는 것으로 나타났습니다.

E.2 PartiPrompts(P2)에 대한 Category & Challenge 비교

P2 벤치마크의 각 프롬프트는 Category 와 Challenge로 구성되어 있으며, 각각은 생성 프로세스에서 서로 다르며 어려운 측면에 중점을 둡니다. 아래는 P2의 각 카테고리 별 비교(그림 10) 및 챌린지별 비교(그림 11)입니다. 6개 카테고리 중 4개 카테고리에서 SDXL이 Midjourney보다 성능이 우수하며, 10개 과제 중 7개 과제에서는 두 모델 간에 큰 차이가 없거나 SDXL이 미드저니보다 성능이 우수하다는 결론을 얻었습니다.

그림 10. 특정 텍스트 카테고리에서 SDXL(정제 모델 제외)과 Midjourney V5.1에 대한 사용자 선호도 비교. SDXL은 두 가지 범주를 제외한 모든 범주에서 Midjourney V5.1보다 성능이 우수합니다.
그림 10. 특정 텍스트 카테고리에서 SDXL(정제 모델 제외)과 Midjourney V5.1에 대한 사용자 선호도 비교. SDXL은 두 가지 범주를 제외한 모든 범주에서 Midjourney V5.1보다 성능이 우수합니다.
그림 11: 복잡한 프롬프트에 대한 SDXL(정제 모델 포함)과 Midjourney V5.1의 선호도 비교..SDXL은 10개 범주 중 7개 범주에서 Midjourney V5.1보다 성능이 뛰어나거나 통계적으로 유사합니다.
그림 11: 복잡한 프롬프트에 대한 SDXL(정제 모델 포함)과 Midjourney V5.1의 선호도 비교..SDXL은 10개 범주 중 7개 범주에서 Midjourney V5.1보다 성능이 뛰어나거나 통계적으로 유사합니다.

F. 생성 텍스트-이미지 기반 모델의 FID 평가에 대해

그림 12. 다양한 CFG 척도에 대한 FID와 CLIP 점수 비교. SDXL은 CLIP 점수로 측정한 텍스트 정렬이 이전 버전에 비해 약간 개선되었지만, 인간의 판단과는 일치하지 않는 것으로 나타났습니다. 23]에서와 마찬가지로 FID는 SD-1.5와 SD-2.1보다 더 나쁘지만, 인간 평가자는 이전 모델보다 SDXL 을 분명하게 좋아합니다.
그림 12. 다양한 CFG 척도에 대한 FID와 CLIP 점수 비교. SDXL은 CLIP 점수로 측정한 텍스트 정렬이 이전 버전에 비해 약간 개선되었지만, 인간의 판단과는 일치하지 않는 것으로 나타났습니다. 23]에서와 마찬가지로 FID는 SD-1.5와 SD-2.1보다 더 나쁘지만, 인간 평가자는 이전 모델보다 SDXL 을 분명하게 좋아합니다.

G. 단일 단계 및 2 단계 SDXL 파이프라인 간 추가적인 비교

그림 13. 이 논문에서 논의한 정제 모델을 적용한 경우(오른쪽과 아닌 경우(왼쪽)의 SDXL 샘플(네모는 일부 확대).프롬프트: (위) “close up headshot, futuristic young woman, wild hair sly smile in front of gigantic UFO, dslr, sharp focus, dynamic composition” (아) “Three people having dinner at a table at new years eve, cinematic shot, 8k”. 자세히 보려면 원 논문을 보세요.
그림 13. 이 논문에서 논의한 정제 모델을 적용한 경우(오른쪽과 아닌 경우(왼쪽)의 SDXL 샘플(네모는 일부 확대).프롬프트: (위) “close up headshot, futuristic young woman, wild hair sly smile in front of gigantic UFO, dslr, sharp focus, dynamic composition” (아) “Three people having dinner at a table at new years eve, cinematic shot, 8k”. 자세히 보려면 원 논문을 보세요.

H. SD 1.5 vs SD 2.1 vs SDXL 간의 비교

Vibrant portrait painting of Salvador Dalí with a robotic half face
A capybara made of voxels sitting in a field
Cute adorable little goat, unreal engine, cozy interior lighting, art station, detailed’ digital painting, cinematic, octane rendering
Vibrant portrait painting of Salvador Dalí with a robotic half face
A portrait photo of a kangaroo wearing an orange hoodie and blue sunglasses standing on the grass in front of the Sydney Opera House holding a sign on the chest that says "SDXL"
A capybara made of voxels sitting in a field
Cute adorable little goat, unreal engine, cozy interior lighting, art station, detailed’ digital painting, cinematic, octane rendering
A portrait photo of a kangaroo wearing an orange hoodie and blue sunglasses standing on the grass in front of the Sydney Opera House holding a sign on the chest that says "SDXL"

그림 14. SDXL의 출력과 이전 버전의 스테이블 디퓨전을 비교한 추가 결과. 각 프롬프트에 대해 DDIM 샘플러 [46]  50단계및 CFG 척도 8.0 [13]에 대해 생성한 무작위 샘플입니다.

민, 푸른하늘

===