作者avans (阿緯)
看板AI_Art
標題[StaD] SDXL paper/Chat翻譯
時間Thu Aug 3 21:47:19 2023
因為對SDXL挺有興趣的關係,所以使用 ChatGPT 翻譯其paper,
請參考就好,不一定翻譯正確!
_______________
SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis
改進高解析度圖像合成的潛在擴散模型
Authors:
Dustin Podell, Zion English, Kyle Lacey, Andreas Blattmann, Tim Dockhorn,
Jonas Müller, Joe Penna, Robin Rombach
https://huggingface.co/papers/2307.01952
Stability AI, Applied Research
Code:
https://github.com/Stability-AI/generative-models
Model weights:
https://huggingface.co/stabilityai/
https://i.imgur.com/I8ZbCOd.png
_______________
摘要
我們提出了SDXL,一種用於文本到圖像合成的潛在擴散模型。
相較於之前版本的Stable Diffusion,SDXL利用了一個三倍大的UNet主幹:
模型參數增加主要是因為使用了更多的注意力塊和更大的交叉注意力上下文,
因為SDXL使用了第二個文本編碼器。
我們設計了多種新穎的條件方案,並在多個方面比例上對SDXL進行了訓練。
我們還引入了一個改進模型,該模型使用事後的圖像到圖像技術,
用於改善由SDXL生成的樣本的視覺保真度。
我們證明了SDXL相比於之前版本的Stable Diffusion顯示出顯著提高的性能,
並且在與黑盒最先進圖像生成器相競爭方面取得了有競爭力的結果。
為了促進開放式研究並在大型模型訓練和評估中提供透明度,
我們提供了代碼和模型權重的訪問權限。
_______________
1. 簡介
過去一年,深度生成模型在各種數據領域取得了巨大的飛躍,
例如自然語言[50]、音頻[17]和視覺媒體[38、37、40、44、15、3、7]。
在這份報告中,我們專注於後者,揭示了SDXL,
這是Stable Diffusion的一個顯著改進版本。
Stable Diffusion是一種潛在的文本到圖像擴散模型(DM),
它為各種最新進展提供了基礎,例如3D分類[43]、可控圖像編輯[54]、
圖像個性化[10]、合成數據增強[48]、圖形用戶界面原型[51]等。
值得注意的是,這些應用的範圍非常廣泛,涵蓋了多個領域,
如音樂生成[9]和從fMRI腦部掃描中重建圖像[49]。
用戶研究表明,SDXL在性能上始終顯著優於所有之前版本的Stable Diffusion(見圖1)。
在這份報告中,我們介紹了導致性能提升的設計選擇,包括:
i) 相較於之前的Stable Diffusion模型,SDXL採用了三倍大的UNet主幹(Sec. 2.1);
ii) 兩種簡單而有效的額外條件技術(Sec. 2.2),不需要任何額外的監督;
iii) 一個單獨的基於擴散的改進模型,
該模型對SDXL生成的潛在表示進行噪聲去噪過程[28],
以提高其樣本的視覺質量(Sec. 2.5)。
視覺媒體創作領域的一個主要關切是,儘管黑盒模型通常被認為是最先進的,
但其架構的不透明性使得難以忠實地評估和驗證其性能。
這種缺乏透明度阻礙了可重複性,阻礙了創新,
並阻止社區在這些模型的基礎上進一步推進科學和藝術的進展。
此外,這些封閉源策略使得難以客觀和公正地評估這些模型的偏見和限制,
這對於它們的負責任和道德部署至關重要。通過SDXL,我們發布了一個開放模型,
其性能與黑盒圖像生成模型具有競爭力(見圖10和圖11)。
_______________
2. 改進穩定擴散模型
在本節中,我們介紹了我們對Stable Diffusion架構的改進。
這些改進是模塊化的,可以單獨或一起用於擴展任何模型。
儘管以下策略是作為潛在擴散模型(LDMs) [38]的擴展實現的,
但其中大部分也適用於其像素空間對應物。
https://i.imgur.com/PhPivHz.png
https://i.imgur.com/YNgbpob.png
圖1:
(上)左圖:比較用戶對SDXL和Stable Diffusion 1.5&2.1的偏好。雖然SDXL已經
明顯優於Stable Diffusion 1.5&2.1,但添加額外的改進階段會提高性能。
(下)右圖:兩階段流程的可視化:我們使用SDXL生成大小為128×128的初始潛在表示。
然後,我們利用專門的高解析度改進模型,對第一步生成的潛在表示應用SDEdit [28],
使用相同的提示詞。SDXL和改進模型使用相同的自編碼器。
2.1. 架構與規模
從 Ho 等人的開創性工作 [14] 和 Song 等人的研究 [47] 開始,
這些工作證明了擴散模型 (DMs) 對於圖像合成是強大的生成模型,
而卷積 UNet 架構 [39] 一直是基於擴散的圖像合成的主要架構。
然而,隨著基礎 DMs 的發展 [40、37、38],底層架構不斷演進:
從增加自注意力和改進的上採樣層 [5],到用於文本到圖像合成的交叉注意力 [38],
再到純 transformer-based 架構 [33]。
表1: SDXL和舊版穩定擴散模型的比較。
https://i.imgur.com/bvRfMSs.png
我們遵循這一趨勢,並根據 Hoogeboom 等人的方法 [16],
將transformer計算的大部分轉移到 UNet 中的低級特徵。
特別是,與原始的 Stable Diffusion 架構相比,
我們在 UNet 中使用異構的transformer塊分佈:
出於效率考慮,我們省略了在最高特徵層的transformer塊,
而在低級特徵層中使用 2 個和 10 個transformer塊,
並完全移除了 UNet 中的最低層(8× 下採樣)
——有關 Stable Diffusion 1.x 和 2.x 以及 SDXL 架構的比較,請參閱表1。
我們選擇了一個更強大的預訓練文本編碼器,用於文本條件編碼。
具體而言,我們結合了 OpenCLIP ViT-bigG [19] 和 CLIP ViT-L [34],
其中我們沿通道軸連接倒數第二個文本編碼器輸出 [1]。
除了使用交叉注意力層將模型與文本輸入進行條件編碼外,我們遵循 [30] 的方法,
額外地使用 OpenCLIP 模型的匯總文本嵌入來條件編碼模型。
這些改變使得 UNet 中的模型大小為 2.6B 參數,請參閱表1。
文本編碼器的總大小為 817M 參數。
2.2. 微條件編碼
圖像大小條件編碼 潛在擴散模型 (LDM) 范式 [38] 的一個顯著缺點是,
由於其兩階段架構,訓練模型需要一個最小的圖像大小。
解決這個問題的兩種主要方法是:要麼丟棄所有分辨率低於某個最小值的訓練圖像
(例如,Stable Diffusion 1.4/1.5 丟棄了所有小於 512 像素的圖像),
或者將太小的圖像進行放大。
然而,根據所需的圖像解析度,前一種方法可能導致丟棄訓練數據的相當大部分,
這很可能會導致性能下降並影響泛化能力。
我們在圖 2 中展示了在 SDXL 預訓練的數據集上的這種影響。
對於這個特定的數據選擇,丟棄所有小於我們的預訓練分辨率 256^2 像素的樣本
將導致 39% 的數據被丟棄。另一方面,第二種方法通常會引入放大的瑕疵,
這些瑕疵可能會影響最終模型的輸出,例如導致模糊的樣本。
https://i.imgur.com/mXDTf4K.png
圖 2:我們預訓練數據集的高度與寬度分佈。
如果沒有提出的尺寸條件編碼,由於邊長小於 256 像素,39% 的數據將被丟棄,
如虛線所示。每個可視化單元格中的顏色強度與樣本數量成比例。
相反的,我們提出將 UNet 模型條件編碼為原始圖像解析度,
這在訓練期間可以輕鬆獲得。
具體來說,我們提供圖像的原始高度和寬度(即在任何調整大小之前)
作為模型的附加條件 c_size = (h_original,w_original)。
每個組件都使用傅立葉特徵編碼進行獨立嵌入,然後這些編碼被串聯成一個單一向量,
並通過添加到時間步長嵌入 [5] 一起餵入模型。
“一個機器人作為塗鴉畫在一面磚牆上。
磚牆前有一條人行道,而草從混凝土縫隙中長出來”
“熊貓瘋狂科學家混合閃亮的化學藥品,Artstation”
https://i.imgur.com/jwRDQwc.png
圖 3:不同大小條件編碼的效果:
我們從SDXL中使用相同的隨機種子繪製了4個樣本,並對每列進行不同大小的條件編碼,
如上圖所示。當條件編碼基於更大的圖像尺寸時,圖像質量明顯提高。
這些樣本來自512^2模型,請參見第2.5節。
注意:對於這個可視化,我們使用512 × 512像素的基本模型(詳見第2.5節),
因為在1024 × 1024微調之前,條件編碼的效果更加明顯。最好放大查看。
在推斷時,用戶可以通過這種大小條件編碼設置所需的圖像顯示解析度。
顯然地(見圖3),模型已經學會將條件編碼 c_size 與解析度相關的圖像特徵關聯起來,
這可以用來修改與給定提示相對應的輸出的外觀。
請注意,對於圖3中顯示的可視化,我們顯示了由512 × 512模型生成的樣本
(詳見第2.5節),因為在後續多方面(比例)微調之後,
條件編碼的效果不太明顯,而我們用於最終的SDXL模型。
表2:對訓練示例的原始空間大小進行條件編碼
可以提高512^2解析度上類別條件的ImageNet [4] 的性能。
model FID-5k↓ IS-5k↑
CIN-512-only 43.84 110.64
CIN-nocond 39.76 211.50
CIN-size-cond 36.53 215.34
我們通過在空間尺寸為512^2的類別條件ImageNet [4] 上訓練和評估三個LDMs,
定量評估了這種簡單但有效的條件編碼技術:
對於第一個模型(CIN-512-only),我們丟棄所有邊緣至少小於512像素的訓練樣本,
從而導致僅有70,000張圖像的訓練數據集。
對於CIN-nocond,我們使用所有的訓練樣本,但不使用尺寸條件編碼。
這種額外的條件編碼僅於CIN-size-cond。訓練後,我們對每個模型生成5,000個樣本,
使用50個DDIM步驟[46]和(不帶分類器的)引導尺度為5 [13],
並計算IS [42]和FID [12](與完整的驗證集進行比較)。
對於CIN-size-cond,我們始終在條件 c_size = (512, 512) 下生成樣本。
表2 總結了結果並證實CIN-size-cond在兩個指標上優於基線模型。
我們認為CIN-512-only性能下降是由於過度擬合小的訓練數據集導致的泛化不佳,
而CIN-nocond樣本分布中模糊樣本的影響導致FID得分降低。
請注意,儘管我們發現這些經典的定量評分並不適合用於評估基礎
(文本到圖像)DMs [40, 37, 38]的性能(見附錄F),
但在ImageNet上它們仍然是合理的指標,
因為FID和IS的神經骨干已經在ImageNet上訓練過。
對裁剪參數進行模型條件編碼
圖4的前兩行展示了先前SD模型的典型失敗模式:合成的物體可能會被裁剪,
例如在SD 1-5和SD 2-1的左側示例中,貓的頭部被截斷。
對於這種行為的一個直觀解釋是模型訓練過程中使用了隨機裁剪:
由於在DL框架(如PyTorch [32])中整理批次時需要張量具有相同的大小,
典型的處理流程是(i)調整圖像大小,使最短邊與目標大小相匹配,
然後(ii)沿著較長的軸隨機裁剪圖像。
雖然隨機裁剪是一種自然的數據增強形式,但它可能會影響生成的樣本,
導致上述惡意效果。
’一張描繪貓咪打扮成法國皇帝拿破崙,手握一塊奶酪的宣傳海報。’
’一個火焰噴吐的龍的近景,電影場景拍攝。’
https://i.imgur.com/OQJsBfp.png
圖4:SDXL輸出與之前版本的Stable Diffusion的比較。
對於每個提示,我們展示了相應模型的3個隨機樣本,
使用50個DDIM採樣器[46]和cfg-scale 8.0 [13]進行採樣。更多樣本見圖14。
為了解決這個問題,我們提出了另一種簡單而有效的條件編碼方法:
在數據加載期間,我們均勻地採樣裁剪坐標 c_top 和 c_left
(整數,分別指定從左上角沿著高度和寬度軸裁剪的像素數量),
並通過傅立葉特徵編碼將它們作為條件參數餵入模型,類似於上面描述的尺寸條件編碼。
然後,將串聯的嵌入 c_crop 作為附加的條件參數。
我們強調,這種技術不僅限於LDMs,也可以用於任何DM。
請注意,裁剪條件和尺寸條件可以很容易地結合。
在這種情況下,我們在UNet中將特徵嵌入串聯在通道維度上,
然後添加到時間步長嵌入中。算法1顯示了如果應用了這樣的組合,
我們在訓練過程中如何採樣c_crop和c_size。
考慮到在我們的經驗中,大規模數據集通常是以物體為中心的,
我們在推斷時設置(c_top,c_left)=(0,0),
從而從訓練過的模型獲得以物體為中心的樣本。
參見圖5進行說明:
通過調整(c_top, c_left),我們可以在推斷過程中成功模擬裁剪的程度。
這是一種條件增強方法,它已經在各種形式的自回歸模型 [20]
和最近的擴散模型 [21] 中使用。
雖然其他方法,如數據分區 [31],成功應對了相同的任務,
但我們仍然受益於由裁剪引起的數據增強,同時確保它不會影響生成過程——實際上,
我們利用這一點來更好地控制圖像合成過程。
此外,這種方法容易實現,可以在訓練過程中以在線方式應用,
而無需額外的數據預處理。
2.3. 多方面訓練
現實世界的數據集包含尺寸和長寬比各不相同的圖像(見圖2)。
儘管文本到圖像模型的常見輸出解析度是512×512像素或1024×1024像素的正方形圖像,
但我們認為這是一個相當不自然的選擇,考慮到廣泛分佈和
使用的橫向(例如,16:9)或縱向格式的屏幕。
算法1 尺寸和裁剪條件編碼的條件編碼流程
https://i.imgur.com/gJEQ3iU.png
’ 一個宇航員騎著一隻豬,高度逼真的數位單眼相機照片,有電影感的構圖’
’一隻用樂高搭建的卡比巴拉坐在真實的自然場地中。’
https://i.imgur.com/WrQTeBw.png
圖5:根據第2.2節討論的裁剪條件進行變化。請參見SD 1.5和SD 2.1的樣本,
它們不提供對該參數的明確控制,因此引入了裁剪藝術效果。
樣本來自512^2模型,參見第2.5節。
受此啟發,我們微調我們的模型以同時處理多種長寬比:
我們遵循常見的做法[31],將數據分成不同長寬比的桶,
其中像素數盡量接近1024^2像素,相應地高度和寬度以64的倍數變化。
訓練時使用的所有長寬比的完整列表在附錄I中提供。
在優化過程中,一個訓練批次由同一個桶中的圖像組成,
並且我們在每個訓練步驟中在不同的桶大小之間交替。
此外,模型接收桶大小(或目標大小)作為條件編碼,
表示為一組整數car = (h_tgt,w_tgt),
它們與上述尺寸和裁剪條件一樣被嵌入到傅立葉空間中。
在實踐中,我們在固定的長寬比和解析度上預訓練模型後,
將多方面訓練應用為微調階段,並通過沿通道軸進行串聯
將其與第2.2節中介紹的條件編碼技術相結合。
附錄J中的圖16提供了這個操作的Python代碼。
請注意,裁剪條件和多方面訓練是互補的操作,
然後裁剪條件只能在桶的邊界內(通常是64像素)工作。
然而,為了實現的簡便性,我們選擇在多方面模型中保留這個控制參數。
2.4. 改進的自動編碼器
Stable Diffusion 是一種LDM,在預訓練的、學習得到(並固定的)潛在空間中操作。
儘管 LDM [38] 負責主要的語義合成,
我們可以通過改進自動編碼器來提高生成圖像的局部高頻細節。
為此,我們使用相同的自動編碼器架構,將其訓練在較大的批次大小(256 vs 9),
並使用指數移動平均來跟踪權重。
結果的自動編碼器在所有評估的重建指標上都優於原始模型,見表3。
我們在所有實驗中都使用這個自動編碼器。
表3:COCCO2017 [26] 驗證集上的自動編碼器重建性能,圖像大小為256 ×256像素。
注意:Stable Diffusion 2.x 使用 Stable Diffusion 1.x 自動編碼器的改進版本,
其中解碼器在感知損失 [55] 上進行了微調,並使用了更多的計算。
注意,我們的新自動編碼器是從頭開始訓練的。
模型 PSNR↑ SSIM↑ LPIPS↓ rFID↓
SDXL-VAE 24.7 0.73 0.88 4.4
SD-VAE 1.x 23.4 0.69 0.96 5.0
SD-VAE 2.x 24.5 0.71 0.92 4.7
2.5. 綜合所有內容
我們以多階段的程序來訓練最終模型 SDXL。
SDXL 使用第 2.4 節中的自動編碼器和離散時間擴散進度表[14, 45],共有 1000 步。
首先,在內部數據集上對基礎模型(見表1)進行預訓練,該數據集的高度和寬度
分佈在圖2中進行了可視化,使用大小和裁剪條件,分辨率為256 ×256像素,
批次大小為2048,在 60 萬個優化步驟進行訓練。
接著,我們在 512 ×512 像素的圖像上繼續訓練另外 20 萬個優化步驟,
最後使用多方面訓練(第 2.3 節)結合偏移噪聲[11, 25]的水平為 0.05,
在不同的長寬比(第 2.3 節,附錄 I)的約 1024 ×1024 像素區域上進行模型訓練。
精化階段
根據實驗,我們發現生成的模型有時會生成局部質量較低的樣本,見圖 6。
為了提高樣本質量,我們在相同的潛在空間中訓練了一個專門針對高質量、
高解析度數據的分離式擴散模型,並在基礎模型生成的樣本上使用 SDEdit [28]
引入的加噪-去噪過程。我們遵循 [1] 的方法,將這個精化模型設置
在前 200 個(離散)噪聲尺度上。在推斷時,我們從基礎 SDXL 中生成潛在表示,
並直接在潛在空間中使用精化模型進行擴散和去噪(見圖 1),並使用相同的文本輸入。
值得注意的是,這一步是可選的,但對於細節背景和人臉的樣本質量有所提高,
見圖 6 和圖 13。
為了評估我們的模型(包括有和沒有精化階段的版本),我們進行了用戶研究,
讓用戶從以下四個模型中選擇他們最喜歡的生成結果:
SDXL、帶精化器的SDXL、Stable Diffusion 1.5和Stable Diffusion 2.1。
結果顯示,帶有精化階段的SDXL是得分最高的選擇,
並且在win rates(勝率)方面明顯優於Stable Diffusion 1.5和2.1
(win rates:SDXL w/ refinement: 48.44%,SDXL base: 36.93%,
Stable Diffusion 1.5: 7.91%,Stable Diffusion 2.1: 6.71%)。
見圖 1,該圖還提供了整個流程的概述。然而,當使用FID和CLIP等傳統性能指標時,
SDXL相對於以前的方法的改進並不明顯,如圖12所示,並在附錄F中進行了討論。
這與Kirstain等人的研究結果相一致,並進一步支持了這一發現。
https://i.imgur.com/x98mdzd.png
圖 6:來自SDXL的1024^2樣本(包括放大區域),
左側為沒有精化模型的版本,右側為有精化模型的版本。提示:
“史詩般的遠距離城市景觀照片,紐約市被海洋淹沒,並有叢林遺跡中的建築物,
日落時分,電影般的拍攝效果,高度細緻,8K,金色光線。”更多樣本見圖 13。
_______________
3. 未來工作
本報告呈現了對基礎模型Stable Diffusion進行文本到圖像合成的改進的初步分析。
儘管我們在合成圖像質量、提示遵從性和組成方面取得了顯著的改進,
但以下我們討論了幾個可以進一步改進模型的方面:
‧ 單階段生成:
目前,我們使用兩階段方法以及額外的精化模型生成SDXL的最佳樣本。
這導致需要將兩個大型模型加載到內存中,限制了訪問性能和取樣速度。
未來的工作應該探索提供單階段生成,而質量相等或更好的方法。
‧ 文本合成:
儘管規模和更大的文本編碼器(OpenCLIP ViT-bigG [19])
有助於改進文本渲染能力,但引入字節級標記化器 [52, 27]
或者簡單地將模型擴展到更大尺寸 [53, 40] 可能進一步改善文本合成。
‧ 架構:
在進行這項工作的探索階段,我們簡要嘗試了一些基於Transformer的架構,
如UViT [16]和DiT [33],但並未立即獲得好處。然而,我們仍然樂觀地認為,
一個仔細的超參數研究最終將使得更大型的Transformer主導架構成為可能。
‧ 蒸餾:
儘管我們對原始的Stable Diffusion模型進行了顯著改進,
但這是以增加推斷成本(無論是在VRAM和取樣速度上)為代價的。
未來的工作將集中於減少推斷所需的計算量,並提高取樣速度,
例如通過引導 [29]、知識 [6, 22, 24] 和漸進蒸餾 [41, 2, 29]。
‧ 我們的模型是在 [14] 的離散時間公式下進行訓練的,
並且需要偏移噪聲 [11, 25] 才能獲得美觀的結果。
Karras等人的EDM框架 [21] 是未來模型訓練的有希望的候選者,
因為它在連續時間中的公式允許更大的取樣靈活性,並且不需要噪聲進度的修正。
_______________
附錄
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. 限制
’一只手掌上長滿葉子的特寫。’
’一個空的壁爐,上面懸掛著一台電視。電視上顯示著一隻獅子擁抱著一隻長頸鹿。’
’一架帶有白色凳子的大鋼琴。’
’俯瞰一輛生鏽的紅色老式皮卡車,帶有白色車門和破碎的擋風玻璃。’
https://i.imgur.com/gX3Umco.png
圖7:儘管與之前的Stable Diffusion版本相比有很大的改進,
SDXL在處理非常複雜的提示時有時仍會遇到問題,
特別是涉及詳細的空間排列和描述(例如左上角的例子)。
此外,有時手部的生成仍不正確(例如左上角的例子),
而且模型有時會出現兩個概念混在一起的情況(例如右下角的例子)。所有這些示例
都是使用50步的DDIM取樣器 [46] 和cfg-scale 8.0 [13] 隨機生成的樣本。
雖然我們的模型在生成逼真的圖像和合成複雜場景方面展現了令人印象深刻的能力,
但認識到其固有的限制是進一步改進和確保技術的負責使用的重要因素。
首先,該模型在合成複雜的結構,如人手(見圖7,左上角),可能會遇到挑戰。
儘管它已經在多樣化的數據上進行了訓練,但人體解剖的復雜性使得在
達到準確的表現時存在困難。這個限制表明需要進一步擴展和訓練技術,
專門針對合成細緻細節。
可能的原因之一是,手和類似的物體在照片中呈現非常高的變異性,
模型很難從中提取真實3D形狀和物理限制的知識。
其次,儘管該模型在生成的圖像中實現了顯著的逼真度,
但重要的是要注意它並未達到完美的照片級逼真。
某些細微的細節,如細微的光線效果或細微的紋理變化,
仍可能缺失或在生成的圖像中呈現得不夠忠實。
這個限制意味著在依賴模型生成的視覺效果用於需要高度視覺保真度的應用時應謹慎。
此外,該模型的訓練過程嚴重依賴大規模數據集,這可能無意間引入社會和種族偏見。
因此,當生成圖像或推斷視覺特徵時,該模型可能會無意中加劇這些偏見。
在某些情況下,樣本中包含多個物體或主題,該模型可能會出現“概念混合”的現象。
這個問題表現為不同視覺元素的意外合併或重疊。
例如,在圖14中可以看到一個橙色的太陽眼鏡,這表明概念混合來自橙色的毛衣。
另一個例子可以在圖8中看到,企鵝應該有“藍色帽子”和“紅色手套”,
但生成的是藍色手套和紅色帽子。認識並解決這樣的情況
對於改進模型在複雜場景中準確分離和表示個別物體的能力至關重要。
這可能的根本原因在於所使用的預訓練文本編碼器:
首先,它們被訓練以將所有信息壓縮成一個令牌,
因此可能在只綁定正確的屬性和物體時失敗,Feng等人 [8]
通過將單詞關係明確編碼到編碼中來緩解此問題。
其次,對比損失也可能對此有所貢獻,因為同一批次中需要具有不同綁定的負面示例。
此外,儘管我們的模型在之前的SD版本上取得了顯著進展,
但在渲染長篇、可讀的文本時仍存在困難。
偶爾生成的文本可能包含隨機字符或呈現不一致性,如圖8所示。
克服這個限制需要進一步研究和開發技術,增強模型的文本生成能力,
特別是對於擴展的文本內容——例如,Liu等人的工作 [27]
提出通過字符級文本分詞器增強文本渲染能力。
另外,模型的擴展也可以進一步改進文本合成 [53, 40]。
總之,我們的模型在圖像合成方面表現出顯著的優勢,但仍然存在某些限制。
合成複雜結構、達到完美的照片級逼真度、進一步解決偏見、
緩解概念混合問題以及改進文本渲染都是未來研究和優化的方向。
C. 擴散模型
在本節中,我們簡要介紹擴散模型(DMs)。我們考慮連續時間的擴散模型框架[47],
並遵循Karras等人[21]的介紹。
令p_data(x_0)表示數據分布,並令p(x;σ)表示通過
將獨立同分佈的σ^2變異的高斯噪聲添加到數據後得到的分布。
對於足夠大的σ_max,p(x;σ_max^2)與變異數為σ_max^2的高斯噪聲幾乎無法區分。
利用這一觀察,擴散模型從高變異的高斯噪聲xM ~N(0,σ_max^2)中進行採樣,
並依次對xM進行去噪,得到xi ~ p(xi;σ_i),其中i ∈{0,...,M},且σ_i < σ_i+1,
並且σ_M = σ_max。對於訓練良好的擴散模型和σ_0 = 0,
得到的x_0的分布符合數據分布。
採樣
在實踐中,
上述解釋的迭代去噪過程可以通過數值模擬概率流動常微分方程(ODE)[47]來實現,
https://i.imgur.com/f5BW61e.png
其中▽_x log p(x;σ)是分數函數[18]。計劃σ(t):[0,1] →R_+由用戶指定,
σ'(t)表示σ(t)的時間導數。
或者,我們還可以數值模擬隨機微分方程(SDE)[47, 21]:
d_x = [概率流動ODE; 參見式(1)] - [Langevin擴散成分]
https://i.imgur.com/AlO5vgW.png
其中d_ω_t是標準維納過程。
原則上,模擬上述概率流動ODE或SDE得到的樣本來自同一分布。
訓練
擴散模型(DM)的訓練目標是學習一個模型 s_θ(x;σ)
來逼近分數函數 ▽_x log p(x;σ)。例如,可以將模型參數化為
▽_x log p(x;σ) 近似 s_θ(x;σ) = (D_θ(x;σ) - x)/σ^2 [21],
其中 D_θ 是可學習的去噪器,給定帶有噪聲的數據點 x_0 + n,
其中x_0 ~ p_data(x_0),n ~ N(0,σ^2 I_d),
並且在噪聲水平σ的條件下,試圖預測乾淨的 x_0。
去噪器 D_θ(或等價的分數模型)可以通過去噪分數匹配(DSM)來訓練
https://i.imgur.com/xfA6279.png
其中 p(σ,n) = p(σ;0,σ^2),p(σ) 是噪聲水平σ的分布,
λ_σ:R_+ → R_+ 是一個加權函數,c是任意的條件信號,
例如類別標籤、文本提示或兩者的組合。在本工作中,
我們選擇 p(σ) 為1000個噪聲水平的離散分布,
並設置 λ_σ = σ-2,與之前的研究[14, 38, 45]類似。
無分類器引導
無分類器引導[13]是一種技術,用於將DM的迭代採樣過程引導到條件信號 c,
通過混合條件模型和無條件模型的預測,
https://i.imgur.com/fpsKNXP.png
其中 w >= 0 是引導強度。
在實踐中,無條件模型可以與有條件模型共同訓練在一個單一的網絡中,
通過在等式(3)中隨機用空嵌入替換條件信號 c,例如10% 的時間 [13]。
無分類器引導被廣泛用於提高文本到圖像DM的採樣質量,同時交換多樣性 [30, 38]。
D. 與最先進技術的比較
https://i.imgur.com/jcsPmQn.png
圖 8: SDXL與DeepFloyd IF、DALLE-2、Bing Image Creator和
Midjourney v5.2的定性比較。為了減少挑選樣本引起的任何偏見,
我們隨機選擇了部分(P2)提示。種子3在所有可以指定該參數的模型中都是一致的。
對於沒有種子設置功能的模型,我們包含了第一個生成的圖像。
E. 與Midjourney v5.1的比較
E.1. 整體投票結果
為了評估SDXL的生成質量,我們進行了一項與最先進的文本生成圖像平台
Midjourney的用戶研究。作為圖像標題的來源,我們使用了PartiPrompts(P2)
基准測試[53],該測試旨在比較各種具有挑戰性的提示下的大型文本生成圖像模型。
對於我們的研究,我們從每個類別中隨機選擇了五個提示,
並為每個提示生成了四個1024 ×1024像素的圖像,
分別使用Midjourney(v5.1,種子設置為2)和SDXL。然後,
這些圖像被提交給AWS GroundTruth專案組,
他們根據與提示的一致性進行了投票。這些投票的結果如圖9所示。
總體上,SDXL在遵從提示方面略微優於Midjourney。
原始版本 頻率 →
https://i.imgur.com/pl9QIJg.png
圖9:在SDXL v0.9和Midjourney v5.1之間進行的17,153個用戶喜好比較的結果,
該版本是當時可用的最新版本。比較涵蓋了PartiPrompts(P2)基準測試中的
所有“類別”和“挑戰”。值得注意的是,SDXL在54.9%的時間內
優於Midjourney V5.1。初步測試表明,最近發布的Midjourney V5.2在理解提示方面
比其前身差,但生成多個提示的繁瑣過程阻礙了進行更廣泛測試的速度。
E.2. PartiPrompts(P2)中的類別與挑戰比較
P2基準測試中的每個提示都被分為一個類別和一個挑戰,
每個類別和挑戰都專注於生成過程中的不同困難方面。
我們以下展示了P2中每個類別(圖10)和挑戰(圖11)的比較結果。
在六個類別中,SDXL有四個優於Midjourney的情況,而在十個挑戰中,
有七個挑戰中兩者之間沒有顯著差異,或者SDXL優於Midjourney。
https://i.imgur.com/2WbAy5M.png
圖10:SDXL(不含改進模型)與Midjourney V5.1之間在特定文本類別中的用戶
喜好比較。SDXL在除兩個類別外的所有類別中表現優於Midjourney V5.1。
https://i.imgur.com/xIqScqw.png
圖11:SDXL(含改進模型)與Midjourney V5.1之間對於複雜提示的用戶喜好比較。
在十個挑戰中,SDXL有七個挑戰優於或在統計上與Midjourney V5.1相等。
F. 對於生成式文本-圖像基礎模型的FID評估
https://i.imgur.com/AwPFkh7.png
圖12:顯示不同cfg scale下的FID與CLIP score的情況。
與不對齊的以前版本相比,SDXL在CLIP-score的測量中僅顯示出稍微改善的文本對齊,
但這與人類評估者的判斷不一致。
而且與[23]中所示的情況類似,FID評估結果較SD-1.5和SD-2.1差,
然而人類評估者明確地偏好SD-XL的生成結果。
在過去的幾年中,生成式文本-圖像模型通常在複雜的小規模文本-圖像數據集
(例如COCO [26])上進行FID(Fisher Information Distance)[12]和
CLIP(Contrastive Language-Image Pre-training)得分[34, 36]的零樣本評估。
然而,隨著基礎文本-圖像模型[40, 37, 38, 1]的出現,這些模型不僅專注於
視覺合成能力,還涉及其他困難任務,例如深度文本理解、細粒度區分不同藝術風格,
尤其是對視覺美感的強調,這種特定形式的模型評估變得越來越值得質疑。
Kirstain等人[23]證明了COCO零樣本FID與視覺美感呈負相關,
因此評估此類模型的生成性能應更多地依賴於人工評估者。我們對SDXL進行了相關研究,
並在圖12中可視化了來自COCO [26]的1萬個文本-圖像對的FID-vs-CLIP曲線。
儘管SDXL在量化測量上顯著提高了性能(參見圖1),並在質量方面有顯著改善
(參見圖4和圖14),但SDXL的FID得分仍然不如以前的SD版本。
相反,與其他兩個對比模型相比,SDXL的FID最差,而CLIP得分僅稍有改善
(使用OpenClip ViT g-14進行測量)。
因此,我們的結果支持Kirstain等人[23]的結論,
並進一步強調需要更多針對文本-圖像基礎模型的定量性能評估指標。
所有評分都基於1萬個生成的例子進行評估。
G. 單階段和雙階段SDXL流程的額外比較
https://i.imgur.com/7uHuLuT.png
https://i.imgur.com/EqSAwfA.png
圖13:帶有(右)和不帶有(左)前面所討論的改進模型的SDXL樣本(附有放大)。
提示:
(上)“特寫頭像,未來主義年輕女性,野性的頭髮,狡猾的微笑,
巨大的不明飛行物前面,數位單反相機,清晰對焦,動態構圖”
(下)“新年前夕,三人在桌旁共進晚餐,電影般的鏡頭,8K”。放大以獲取更多細節。
H. SD 1.5與SD 2.1與SDXL之間的比較
「充滿活力的薩爾瓦多·達利肖像畫,一半臉部是機器人。」
「用方塊像素組成的卡比巴拉坐在一片田野上。」
https://i.imgur.com/TdIzPMH.png
「可愛迷人的小山羊,虛擬引擎,舒適的室內燈光,藝術工作站,細緻的數位繪畫,電影
感,Octane渲染。」
「一張袋鼠穿著橙色連帽衛衣和藍色太陽眼鏡的肖像照,站在悉尼歌劇院前的草地上,胸
前戴著寫著『SDXL』的標誌!」
https://i.imgur.com/1DXXTMG.png
圖14:SDXL與先前版本的Stable Diffusion輸出的額外比較結果。對於每個提示,
我們展示了50步DDIM採樣器 [46] 和cfg-scale 8.0 [13] 下的各自模型的3個隨機樣本。
「怪物巴巴亞加式森林小屋,黑暗恐怖風格,黑白。」
「年輕的獾在優雅地聞著一朵黃玫瑰,豐富紋理的油畫。」
https://i.imgur.com/DKmkZLF.png
圖15:SDXL與先前版本的Stable Diffusion輸出的額外比較結果。對於每個提示,
我們展示了50步DDIM採樣器 [46] 和cfg-scale 8.0 [13] 下的各自模型的3個隨機樣本。
I. 多方位訓練超參數
我們使用以下圖像解析度進行混合長寬比微調,如Sec. 2.3所述。
高度 寬度 長寬比
512 2048 0.25
512 1984 0.26
512 1920 0.27
512 1856 0.28
576 1792 0.32
576 1728 0.33
576 1664 0.35
640 1600 0.4
640 1536 0.42
704 1472 0.48
704 1408 0.5
704 1344 0.52
768 1344 0.57
768 1280 0.6
832 1216 0.68
832 1152 0.72
896 1152 0.78
896 1088 0.82
960 1088 0.88
960 1024 0.94
高度 寬度 長寬比
1024 1024 1.0
1024 960 1.07
1088 960 1.13
1088 896 1.21
1152 896 1.29
1152 832 1.38
1216 832 1.46
1280 768 1.67
1344 768 1.75
1408 704 2.0
1472 704 2.09
1536 640 2.4
1600 640 2.5
1664 576 2.89
1728 576 3.0
1792 576 3.11
1856 512 3.62
1920 512 3.75
1984 512 3.88
2048 512 4.0
J. 沿著通道軸連接條件的偽代碼
https://i.imgur.com/xgdhFzv.png
圖 16: Python 偽代碼,用於沿著通道軸連接 Sec. 2.1 至 2.3 中引入的額外條件。
References: [1]~[55] 請參閱SDXL paper [2307.01952] PDF
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.20.228 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/AI_Art/M.1691070441.A.F1F.html
※ 編輯: avans (111.71.20.228 臺灣), 08/03/2023 22:04:08
※ 編輯: avans (111.71.20.228 臺灣), 08/03/2023 23:02:19