国产亚洲精品AA片在线观看,丰满熟妇HD,亚洲成色www成人网站妖精,丁香五月天婷婷五月天男人天堂

博客專欄

EEPW首頁 > 博客 > 向文本到圖像擴散模型添加條件控制

向文本到圖像擴散模型添加條件控制

發(fā)布人:計算機視覺工坊 時間:2023-02-21 來源:工程師 發(fā)布文章

圖片

筆者個人理解

我們知道深度學習的模型往往都是在某一領域或者特定場景的,大的領域像是NLP,CV,大領域還可以細分出許多的小領域。由于筆者對CV比較熟悉,就經(jīng)常想可不可以訓練這樣一個模型,它可以識別不同應用場景,根據(jù)不同的應用場景來選擇不同的識別模型。但是能力有限,一直沒有做出來啊。直到看到了這篇論文。在本文介紹的論文中,是在Text-to-Image Diffusion Models 中添加了控制條件,根據(jù)所輸入的不同,包括邊緣圖,houghline圖,深度圖,分割圖等等,結合相應的text來生成圖片。這其實給了筆者一個很好的啟發(fā)。下面可以隨筆者一起詳細看一下。

摘要

我們提出了一種神經(jīng)網(wǎng)絡結構 ControlNet,用于控制預訓練的大型擴散模型以支持額外的輸入條件。 ControlNet 以端到端的方式學習特定于任務的條件,即使訓練數(shù)據(jù)集很小 (< 50k),學習也很穩(wěn)健。此外,訓練 ControlNet 與微調(diào)擴散模型一樣快,并且可以在個人設備上訓練模型。或者,如果可以使用強大的計算集群,該模型可以擴展到大量(數(shù)百萬到數(shù)十億)數(shù)據(jù)。我們報告說,像 Stable Diffusion 這樣的大型擴散模型可以通過 ControlNets 進行增強,以啟用邊緣圖、分割圖、關鍵點等條件輸入。這可能會豐富控制大型擴散模型的方法,并進一步促進相關應用。github實現(xiàn):https://github.com/lllyasviel/ControlNet論文pdf:https://arxiv.org/abs/2302.05543

1 介紹隨著大型文本到圖像模型的出現(xiàn),生成視覺上吸引人的圖像可能只需要用戶輸入簡短的描述性提示。在輸入了一些文字并得到了圖像之后,我們可能會很自然地產(chǎn)生幾個問題:這種基于提示的控件是否滿足我們的需求?例如在圖像處理中,考慮到許多具有明確問題公式的長期任務,是否可以應用這些大型模型來促進這些特定任務?我們應該構建什么樣的框架來處理范圍廣泛的問題條件和用戶控件?在特定任務中,大型模型能否保留從數(shù)十億圖像中獲得的優(yōu)勢和能力?為了回答這些問題,我們調(diào)查了各種圖像處理應用程序并得出了三個發(fā)現(xiàn)。

首先,特定任務領域中的可用數(shù)據(jù)規(guī)模并不總是與一般圖像文本領域中的數(shù)據(jù)規(guī)模一樣大。許多特定問題(例如,對象形狀/法線、姿態(tài)理解等)的最大數(shù)據(jù)集大小通常低于 100k,即比 LAION-5B 小 5×104 倍。這將需要強大的神經(jīng)網(wǎng)絡訓練方法來避免過度擬合并在針對特定問題訓練大型模型時保持泛化能力。

其次,當使用數(shù)據(jù)驅(qū)動解決方案處理圖像處理任務時,大型計算集群并不總是可用。這使得快速訓練方法對于在可接受的時間和內(nèi)存空間(例如,在個人設備上)內(nèi)針對特定任務優(yōu)化大型模型非常重要。這將進一步需要利用預訓練的權重,以及微調(diào)策略或遷移學習。

第三,各種圖像處理問題具有多種形式的問題定義、用戶控制或圖像注釋。在解決這些問題時,雖然圖像擴散算法可以以“程序”方式進行調(diào)節(jié),例如,約束去噪過程、編輯多頭注意激活等,但這些手工制定的規(guī)則的行為基本上是由人類指令規(guī)定的.考慮到一些特定的任務,如深度到圖像、姿勢到人等,這些問題本質(zhì)上需要將原始輸入解釋為對象級或場景級的理解,這使得手工制作的程序方法不太可行。要在許多任務中實現(xiàn)學習解決方案,端到端學習是必不可少的圖片圖 1:使用 Canny 邊緣圖控制穩(wěn)定擴散。 canny edge map 是輸入,當我們生成右邊的圖像時沒有使用源圖像。輸出是通過默認提示“高質(zhì)量、詳細和專業(yè)的圖像”實現(xiàn)的。此提示在本文中用作默認提示,不提及任何有關圖像內(nèi)容和對象名稱的信息。本文中的大部分圖片都是高分辨率圖像,放大后效果最佳。

本文介紹了 ControlNet,這是一種端到端的神經(jīng)網(wǎng)絡架構,可控制大型圖像擴散模型(如穩(wěn)定擴散)以學習特定于任務的輸入條件。 ControlNet 將大型擴散模型的權重克隆為“可訓練副本”和“鎖定副本”:鎖定副本保留了從數(shù)十億圖像中學習的網(wǎng)絡能力,而可訓練副本在特定任務的數(shù)據(jù)集上進行訓練以學習條件控制。

可訓練和鎖定的神經(jīng)網(wǎng)絡塊與一種稱為“零卷積”的獨特類型的卷積層連接,其中卷積權重以學習的方式從零逐漸增長到優(yōu)化參數(shù)。由于保留了生產(chǎn)就緒的權重,因此訓練在不同規(guī)模的數(shù)據(jù)集上都很穩(wěn)健。由于零卷積不會為深層特征添加新的噪聲,與從頭開始訓練新層相比,訓練與微調(diào)擴散模型一樣快我們使用不同條件的各種數(shù)據(jù)集訓練了幾個 ControlNet,例如 Canny 邊緣、Hough 線、用戶涂鴉、人體關鍵點、分割圖、形狀法線、深度等。我們還用兩個小數(shù)據(jù)集(樣本小于 50k)對 ControlNet 進行了實驗甚至 1k) 和大型數(shù)據(jù)集(數(shù)百萬個樣本)。

我們還表明,在深度到圖像等某些任務中,在個人計算機(一臺 Nvidia RTX 3090TI)上訓練 ControlNets 可以獲得與在具有 TB 級 GPU 內(nèi)存和數(shù)千 GPU 小時的大型計算集群上訓練的商業(yè)模型相媲美的結果。

2 相關工作2.1 HyperNetwork和神經(jīng)網(wǎng)絡結構

HyperNetwork 起源于一種神經(jīng)語言處理方法[14],用于訓練一個小的遞歸神經(jīng)網(wǎng)絡來影響一個更大的神經(jīng)網(wǎng)絡的權重。在使用生成對抗網(wǎng)絡 [1、10] 和其他機器學習任務 [51] 的圖像生成中也報道了 HyperNetwork 的成功結果。受這些想法的啟發(fā),[15] 提供了一種將較小的神經(jīng)網(wǎng)絡附加到 Stable Diffusion [44] 的方法,以改變其輸出圖像的藝術風格。在 [28] 提供了幾個 HyperNetworks 的預訓練權重之后,這種方法變得更加流行。 

ControlNet 和 HyperNetwork 在影響神經(jīng)網(wǎng)絡行為的方式上有相似之處ControlNet 使用一種特殊類型的卷積層,稱為“零卷積”。早期的神經(jīng)網(wǎng)絡研究 [31 , 47 , 32 ] 廣泛討論了網(wǎng)絡權重的初始化,包括使用高斯分布初始化權重的合理性以及使用零初始化權重可能帶來的風險。最近,[37] 討論了一種在擴散模型中縮放多個卷積層的初始權重以改進訓練的方法,這與零卷積的思想有相似之處(他們的代碼包含一個稱為“zero_module”的函數(shù))。

在 ProGAN [21] 和 StyleGAN [22] 以及 Noise2Noise [33] 和 [65] 中也討論了操縱初始卷積權重。 Stability 的模型卡 [55] 還提到了在神經(jīng)層中使用零權重。

2.2 擴散概率模型

在[52]中提出了擴散概率模型。圖像生成的成功結果首先在小規(guī)模 [25] 上報道,然后在相對較大的范圍內(nèi)報道 [9]。這種架構通過重要的訓練和采樣方法得到改進,例如去噪擴散概率模型 (DDPM) [17]、去噪擴散隱式模型 (DDIM) [53] 和基于分數(shù)的擴散 [54]。圖像擴散方法可以直接使用像素顏色作為訓練數(shù)據(jù),在這種情況下,研究通常會考慮在處理高分辨率圖像時節(jié)省計算能力的策略 [53 , 50 , 26] ,或者直接使用基于金字塔或多階段的方法[ 18 , 43 ]。這些方法本質(zhì)上使用 U-net [45] 作為它們的神經(jīng)網(wǎng)絡架構。為了減少訓練擴散模型所需的計算能力,基于潛像[11]的思想,提出了潛在擴散模型(LDM)[44]方法,并將其進一步擴展到穩(wěn)定擴散

2.3 文本到圖像的擴散

擴散模型可以應用于文本到圖像生成任務,以實現(xiàn)最先進的圖像生成結果。這通常是通過使用 CLIP [41] 等預訓練語言模型將文本輸入編碼為潛在向量來實現(xiàn)的。例如,Glide [38] 是一種支持圖像生成和編輯的文本引導擴散模型。 Disco Diffusion 是 [9] 的剪輯引導實現(xiàn),用于處理文本提示。穩(wěn)定擴散是潛在擴散[44]的大規(guī)模實施,以實現(xiàn)文本到圖像的生成。 

Imagen [ 49 ] 是一種文本到圖像結構,不使用潛在圖像,而是使用金字塔結構直接擴散像素。

2.4 預訓練擴散模型的個性化、定制化和控制

由于最先進的圖像擴散模型以文本到圖像的方法為主,因此增強對擴散模型控制的最直接方法通常是文本引導 [38、24、2、3、23 , 43, 16]。這種類型的控制也可以通過操縱 CLIP 特征 [43] 來實現(xiàn)。圖像擴散過程本身可以提供一些功能來實現(xiàn)顏色級細節(jié)變化 [35](Stable Diffusion 社區(qū)稱之為 img2img)。圖像擴散算法自然支持修復作為控制結果的重要方式 [43、2]。 Textual Inversion [12] 和 DreamBooth [46] 被提議使用一小組具有相同主題或?qū)ο蟮膱D像來定制(或個性化)生成結果中的內(nèi)容

2.5 圖像到圖像的轉(zhuǎn)換

我們想指出的是,雖然 ControlNet 和圖像到圖像的翻譯可能有幾個重疊的應用,但它們的動機是本質(zhì)不同的。圖像到圖像的翻譯旨在學習不同領域圖像之間的映射,而ControlNet 旨在控制具有特定任務條件的擴散模型。Pix2Pix [20] 提出了圖像到圖像轉(zhuǎn)換的概念,早期的方法主要由條件生成神經(jīng)網(wǎng)絡 [20、69、60、39、8、63、68] 主導。在 Transformers 和 Vision Transformers (ViTs) 流行之后,使用自回歸方法 [42,11,7] 的成功結果已經(jīng)被報道。一些研究還表明,多模型方法可以從各種翻譯任務中學習到強大的生成器 [64、29、19、40]我們討論了當前圖像到圖像轉(zhuǎn)換中最強大的方法。

 Taming Transformer [11] 是一種視覺轉(zhuǎn)換器,具有生成圖像和執(zhí)行圖像到圖像轉(zhuǎn)換的能力。 

Palette [48] 是一個統(tǒng)一的基于擴散的圖像到圖像翻譯框架。 PITI [59] 是一種基于擴散的圖像到圖像轉(zhuǎn)換方法,它利用大規(guī)模預訓練來提高生成結果的質(zhì)量。

在草圖引導擴散等特定領域,[58] 是一種基于優(yōu)化的方法,可操縱擴散過程。這些方法在實驗中進行了測試。

3 方法ControlNet 是一種神經(jīng)網(wǎng)絡架構,可以增強具有任務特定條件的預訓練圖像擴散模型。我們在 3.1 節(jié)中介紹了 ControlNet 的基本結構和每個部分的動機。我們使用第 3.2 節(jié)中的穩(wěn)定擴散示例詳細介紹了將 ControlNet 應用于圖像擴散模型的方法。

我們在 3.3 節(jié)詳細闡述了學習目標和一般訓練方法,然后在 3.4 節(jié)描述了在極端情況下改進訓練的幾種方法,例如使用一臺筆記本電腦或使用大型計算集群進行訓練。最后,我們在第 3.5 節(jié)中包含了具有不同輸入條件的幾個 ControlNet 實現(xiàn)的細節(jié)。

3.1 ControlNet

ControlNet 操縱神經(jīng)網(wǎng)絡塊的輸入條件,以進一步控制整個神經(jīng)網(wǎng)絡的整體行為。這里,“網(wǎng)絡塊”指的是一組神經(jīng)層,它們被放在一起作為構建神經(jīng)網(wǎng)絡的常用單元,例如“resnet”塊、“conv-bn-relu”塊、multi-head attention block、transformer block等以二維特征為例,給定一個特征圖 x ∈ Rh×w×c,其中 {h, w, c} 為高度、寬度和通道數(shù),神經(jīng)網(wǎng)絡塊 F(·; Θ) 具有一組參數(shù)Θ 將 x 轉(zhuǎn)換為另一個特征圖 y這個過程在圖 2-(a) 中可視化。我們鎖定 Θ 中的所有參數(shù),然后將其克隆到可訓練的副本 Θc 中。復制的 Θc 使用外部條件向量 c 進行訓練。在本文中,我們將原始參數(shù)和新參數(shù)稱為“鎖定副本”和“可訓練副本”。制作此類副本而不是直接訓練原始權重的動機是在數(shù)據(jù)集較小時避免過度擬合,并保持從數(shù)十億圖像中學習的大型模型的生產(chǎn)就緒質(zhì)量神經(jīng)網(wǎng)絡塊由一種稱為“零卷積”的獨特類型的卷積層連接,即 1×1 卷積層,其權重和偏置都用零初始化。

我們將零卷積運算表示為 Z(·;·) 并使用參數(shù)的兩個實例 {Θz1, Θz2} 組成 ControlNet 結構其中 yc 成為該神經(jīng)網(wǎng)絡塊的輸出,如圖 2-(b) 所示。因為零卷積層的權重和偏差都被初始化為零,所以在第一個訓練步驟中,我們有圖片這可以轉(zhuǎn)換為圖片圖片圖 2:ControlNet。我們展示了將 ControlNet 應用于任意神經(jīng)網(wǎng)絡塊的方法。 x, y 是神經(jīng)網(wǎng)絡中的深層特征。 “+”是指添加功能。 “c”是我們要添加到神經(jīng)網(wǎng)絡的額外條件。 “零卷積”是一個 1×1 的卷積層,權重和偏差都初始化為零

和 Eq-(2,3,4) 表明,在第一個訓練步驟中,神經(jīng)網(wǎng)絡塊的可訓練副本和鎖定副本的所有輸入和輸出都與它們的狀態(tài)一致,就好像 ControlNet 不存在一樣。換句話說,當 ControlNet 應用于某些神經(jīng)網(wǎng)絡塊時,在進行任何優(yōu)化之前,它不會對深層神經(jīng)特征造成任何影響。任何神經(jīng)網(wǎng)絡塊的能力、功能和結果質(zhì)量都得到完美保留,任何進一步的優(yōu)化都將變得和微調(diào)一樣快(與從頭開始訓練這些層相比)我們簡要推導了零卷積層的梯度計算。考慮一個 1×1 的卷積層,權重為 W,偏差為 B,在任意空間位置 p 和通道索引 i,給定輸入映射 I ∈ Rh×w×c,前向傳遞可以寫為圖片并且由于零卷積具有 W = 0 和 B = 0(優(yōu)化前),對于 Ip,i 非零的任何地方,梯度變?yōu)?/span>圖片我們可以看到,雖然零卷積可以使特征項 I 上的梯度變?yōu)榱?,但權重和偏差的梯度不受影響。只要特?I 不為零,權重 W 就會在第一次梯度下降迭代中被優(yōu)化為非零矩陣。值得注意的是,在我們的例子中,特征項是輸入數(shù)據(jù)或從數(shù)據(jù)集中采樣的條件向量,這自然確保了非零 I。例如,考慮具有整體損失函數(shù) L 和學習率 βlr 6 = 0 的經(jīng)典梯度下降,如果“外部”梯度 ?L/?Z(I; {W , B}) 不為零,我們將有圖片其中 W* 是經(jīng)過一個梯度下降步驟后的權重;是Hadamard product。在這一步之后,我們將有圖片其中獲得非零梯度并且神經(jīng)網(wǎng)絡開始學習。通過這種方式,零卷積成為一種獨特類型的連接層,它以學習的方式從零逐漸增長到優(yōu)化參數(shù)圖片圖 3:穩(wěn)定擴散中的 ControlNet?;疑珘K是Stable Diffusion 1.5(或SD V2.1,因為它們使用相同的U-Net架構)的結構,而藍色塊是ControlNet

3.2 圖像擴散模型中的ControlNet

我們以 Stable Diffusion [44] 為例,介紹使用 ControlNet 控制具有任務特定條件的大型擴散模型的方法。Stable Diffusion 是一種在數(shù)十億張圖像上訓練的大型文本到圖像擴散模型。該模型本質(zhì)上是一個帶有編碼器、中間塊和跳躍連接****的 U-net。編碼器和****都有 12 個塊,完整模型有 25 個塊(包括中間塊)。

在這些塊中,8 個塊是下采樣或上采樣卷積層,17 個塊是主塊,每個塊包含四個 resnet 層和兩個視覺變換器 (ViT)。每個 Vit 包含幾個交叉注意和/或自注意機制。文本由 OpenAI CLIP 編碼,擴散時間步長由位置編碼編碼Stable Diffusion 使用類似于 VQ-GAN [11] 的預處理方法,將 512×512 圖像的整個數(shù)據(jù)集轉(zhuǎn)換為更小的 64×64“潛在圖像”以進行穩(wěn)定訓練。這需要 ControlNets 將基于圖像的條件轉(zhuǎn)換為 64 × 64 特征空間以匹配卷積大小。

我們使用具有 4 × 4 內(nèi)核和 2 × 2 步幅的四個卷積層的微型網(wǎng)絡 E(·)(由 ReLU 激活,通道為 16、32、64、128,用高斯權重初始化,與完整模型聯(lián)合訓練)將圖像空間條件 ci 編碼為特征圖圖片其中 cf 是轉(zhuǎn)換后的特征圖。該網(wǎng)絡將 512 × 512 圖像條件轉(zhuǎn)換為 64 × 64 特征圖如圖 3 所示,我們使用 ControlNet 來控制 U-net 的每一層。請注意,我們連接 ControlNet 的方式在計算上是高效的:由于原始權重被鎖定,因此不需要對原始編碼器進行梯度計算來進行訓練。這可以加快訓練速度并節(jié)省 GPU 內(nèi)存,因為可以避免對原始模型進行一半的梯度計算。

使用 ControlNet 訓練一個穩(wěn)定的擴散模型只需要在每次訓練迭代中增加大約 23% 的 GPU 內(nèi)存和 34% 的時間(在單個 Nvidia A100 PCIE 40G 上測試)。

具體來說,我們使用 ControlNet 創(chuàng)建 12 個編碼塊和 1 個穩(wěn)定擴散中間塊的可訓練副本。這 12 個塊有 4 種分辨率(64×64、32×32、16×16、8×8),每種分辨率有 3 個塊。輸出被添加到 U-net 的 12 個跳過連接和 1 個中間塊。由于 SD 是典型的 U-net 結構,因此這種 ControlNet 架構很可能可用于其他擴散模型

3.3 Training

圖像擴散模型學習逐步對圖像進行去噪以生成樣本。去噪可以發(fā)生在像素空間或從訓練數(shù)據(jù)編碼的“潛在”空間中。 Stable Diffusion 使用潛像作為訓練域。在這種情況下,術語“圖像”、“像素”和“去噪”都指的是“感知潛在空間”中的相應概念[44]給定圖像 z0,擴散算法逐漸向圖像添加噪聲并產(chǎn)生噪聲圖像 zt,其中 t 是添加噪聲的次數(shù)。當 t 足夠大時,圖像近似于純噪聲。給定一組條件,包括時間步長 t、文本提示 ct 以及任務特定條件 cf,圖像擴散算法學習網(wǎng)絡 θ 以預測添加到噪聲圖像 zt 的噪聲圖片其中 L 是整個擴散模型的總體學習目標。這個學習目標可以直接用于微調(diào)擴散模型。在訓練過程中,我們隨機將 50% 的文本提示 ct 替換為空字符串。這有助于 ControlNet 從輸入條件圖中識別語義內(nèi)容的能力,例如 Canny 邊緣圖或人類涂鴉等。這主要是因為當提示對于 SD 模型不可見時,編碼器傾向于從輸入控制圖中學習更多語義作為提示的替代品

3.4 改進訓練

我們討論了幾種改進 ControlNets 訓練的策略,特別是在計算設備非常有限(例如,在筆記本電腦上)或非常強大(例如,在具有可用的大規(guī)模 GPU 的計算集群上)的極端情況下。在我們的實驗中,如果使用這些策略中的任何一個,我們將在實驗設置中提及

Small-Scale Training 當計算設備有限時,我們發(fā)現(xiàn)部分斷開 ControlNet 和 Stable Diffusion 之間的連接可以加速收斂。默認情況下,我們將 ControlNet 連接到“SD Middle Block”和“SD Decoder Block 1,2,3,4”,如圖 3 所示。我們發(fā)現(xiàn)斷開與**** 1,2,3,4 的鏈接并且僅連接中間塊可以將訓練速度提高約 1.6 倍(在 RTX 3070TI 筆記本電腦 GPU 上測試)。當模型在結果和條件之間顯示出合理的關聯(lián)時,可以在繼續(xù)訓練中將那些斷開的鏈接重新連接起來,以便于精確控制

Large-Scale Training 這里,大規(guī)模訓練是指同時具備強大的計算集群(至少8個Nvidia A100 80G或等價物)和大數(shù)據(jù)集(至少100萬訓練圖像對)的情況。這通常適用于數(shù)據(jù)容易獲得的任務,例如 Canny 檢測到的邊緣圖。在這種情況下,由于過擬合的風險相對較低,我們可以先訓練 ControlNets 進行足夠多的迭代次數(shù)(通常超過 50k 步),然后解鎖 Stable Diffusion 的所有權重并聯(lián)合訓練整個模型作為一個整體。這將導致一個更具體的問題模型

3.5 Implementation

我們展示了幾種具有不同基于圖像的條件的 ControlNets 的實現(xiàn),以各種方式控制大型擴散模型圖片圖 4:使用 Canny 邊緣控制穩(wěn)定擴散。 “自動提示”是由 BLIP 根據(jù)默認結果圖像生成的,無需使用用戶提示。另請參閱附錄以獲取用于 canny 邊緣檢測的源圖像。

Canny Edge 我們使用 Canny 邊緣檢測器 [5](具有隨機閾值)從互聯(lián)網(wǎng)上獲取 3M 邊緣圖像字幕對。該模型使用 Nvidia A100 80G 進行了 600 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 4)Canny Edge (Alter) 我們對上述 Canny 邊緣數(shù)據(jù)集的圖像分辨率進行排序,并用 1k、10k、50k、500k 樣本采樣了幾個子集。我們使用相同的實驗設置來測試數(shù)據(jù)集規(guī)模的影響。 (另請參見圖 22。)圖片圖 5:使用霍夫線 (M-LSD) 控制穩(wěn)定擴散。 “自動提示”是由 BLIP 根據(jù)默認結果圖像生成的,無需使用用戶提示。另請參閱附錄以獲取用于線檢測的源圖像

Hough Line 我們使用基于學習的深度 Hough 變換 [13] 來檢測來自 Places2 [66] 的直線,然后使用 BLIP [34] 生成字幕。我們獲得了 600k 個邊緣-圖像-字幕對。我們使用上述 Canny 模型作為起始檢查點,并使用 Nvidia A100 80G 以 150 GPU 小時訓練模型。 (另請參見圖 5。)HED 邊界我們使用 HED 邊界檢測 [62] 從互聯(lián)網(wǎng)上獲得 3M 邊緣圖像字幕對。該模型使用 Nvidia A100 80G 進行了 300 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 7。用戶素描 我們結合使用 HED 邊界檢測 [62] 和一組強大的數(shù)據(jù)增強(隨機閾值、隨機屏蔽隨機比例的涂鴉、隨機形態(tài)變換和隨機非最大抑制)從圖像中合成人類涂鴉。

我們從互聯(lián)網(wǎng)上獲得了 500k 個涂鴉-圖像-字幕對。我們使用上述 Canny 模型作為起始檢查點,并使用 Nvidia A100 80G 以 150 GPU 小時訓練模型。請注意,我們還嘗試了一種更“類似人類”的合成方法 [57],但該方法比簡單的 HED 慢得多,我們沒有注意到明顯的改進。 (另請參見圖 6。)Human Pose (Openpifpaf) 我們使用基于學習的姿勢估計方法 [27] 使用一個簡單的規(guī)則從互聯(lián)網(wǎng)上“找到”人類:一張有人類的圖像必須檢測到至少 30% 的全身關鍵點。我們獲得了 80k 個姿勢-圖像-說明對。

請注意,我們直接使用帶有人體骨骼的可視化姿勢圖像作為訓練條件。該模型在 Nvidia RTX 3090TI 上經(jīng)過 400 GPU 小時的訓練。基本模型是 Stable Diffusion 2.1。 (另請參見圖 8。語義分割 (COCO) 以 BLIP [34] 為標題的 COCO-Stuff 數(shù)據(jù)集 [4]。我們獲得了 164K 分割-圖像-字幕對。該模型在 Nvidia RTX 3090TI 上經(jīng)過 400 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 12。)

語義分割 (ADE20K) ADE20K 數(shù)據(jù)集 [67] 以 BLIP [34] 為標題。我們獲得了 164K 分割-圖像-字幕對。該模型在 Nvidia A100 80G 上經(jīng)過 200 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 11。)depth(大規(guī)模)我們使用 Midas [30] 從互聯(lián)網(wǎng)上獲取 3M 深度圖像字幕對。該模型使用 Nvidia A100 80G 進行了 500 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 23、24、25。)depth(小規(guī)模)我們對上述深度數(shù)據(jù)集的圖像分辨率進行排序,以對 200k 對的子集進行采樣。該集合用于試驗訓練模型所需的最小數(shù)據(jù)集大小。 (另請參見圖 14。)法線貼圖 DIODE 數(shù)據(jù)集 [56] 以 BLIP [34] 為標題。我們獲得了 25,452 個正常圖像-標題對。該模型在 Nvidia A100 80G 上經(jīng)過 100 GPU 小時的訓練?;灸P褪?Stable Diffusion 1.5。 (另請參見圖 13。法線貼圖(擴展)我們使用 Midas [30] 來計算深度圖,然后執(zhí)行法線 - 距離以實現(xiàn)“粗略”法線貼圖。我們使用上述 Normal 模型作為起始檢查點,并使用 Nvidia A100 80G 以 200 GPU 小時訓練模型。 (另請參見圖 23、24、25。卡通線圖 我們使用卡通線圖提取方法[61]從互聯(lián)網(wǎng)卡通插圖中提取線圖。通過對受歡迎程度的卡通圖像進行排序,我們獲得了前 1M 的線稿-卡通-字幕對。該模型使用 Nvidia A100 80G 進行了 300 GPU 小時的訓練?;A模型是 Waifu Diffusion(一個有趣的社區(qū)開發(fā)的穩(wěn)定擴散變異模型 [36])。 (另請參見圖 15。)


4 實驗

4.1 實驗設置

本文中的所有結果都是在 CFG 比例為 9.0 的情況下實現(xiàn)的。采樣器是 DDIM。我們默認使用 20 步。我們使用三種類型的提示來測試模型:(1) 無提示:我們使用空字符串“”作為提示。(2) 默認提示:由于 Stable diffusion 本質(zhì)上是通過提示進行訓練的,空字符串可能是模型的意外輸入,如果沒有提供提示,SD 往往會生成隨機紋理貼圖。更好的設置是使用無意義的提示,如“一張圖片”、“一張漂亮的圖片”、“一張專業(yè)的圖片”等。在我們的設置中,我們使用“一張專業(yè)、詳細、高質(zhì)量的圖片”作為默認提示。(3) 自動提示:為了測試全自動管道的最先進的最大化質(zhì)量,我們還嘗試使用自動圖像字幕方法(例如,BLIP [34])使用獲得的結果生成提示通過“默認提示”模式。我們使用生成的提示再次擴散。(4) 用戶提示:用戶給出提示

4.2 定性結果

我們在圖 4、5、6、7、8、9、10、11、12、13、14、15 中展示了定性結果。

4.3 消融研究

圖 20 顯示了與未使用 ControlNet 訓練的模型的比較。該模型使用與 Stability 的 Depth-to-Image 模型完全相同的方法進行訓練(向 SD 添加通道并繼續(xù)訓練)圖 21 顯示了訓練過程。我們想指出一種“突然收斂現(xiàn)象”,即模型突然能夠跟隨輸入條件。當使用 1e-5 作為學習率時,這可能發(fā)生在從 5000 步到 10000 步的訓練過程中圖 22 顯示了使用不同數(shù)據(jù)集規(guī)模訓練的基于 Canny 邊的 ControlNet。

4.4 與以往方法的比較

圖 14 顯示了與  Stability’s Depth-to-Image model的比較。圖 17 顯示了與 PITI [59] 的比較。圖 18 顯示了與sketch-guided diffusion的比較 [58]。圖 19 顯示了與 Taming transformer的比較 [11]

4.5 預訓練模型的比較

我們在圖 23、24、25 中展示了不同預訓練模型的比較。

4.6 更多應用

圖 16 顯示如果擴散過程被屏蔽,模型可以用于基于筆的圖像編輯。圖 26 表明,當對象比較簡單時,模型可以實現(xiàn)對細節(jié)比較準確的控制。圖 27 顯示當 ControlNet 僅應用于 50% 的擴散迭代時,用戶可以獲得不遵循輸入形狀的結果

5 局限性

圖 28 表明,當語義解釋錯誤時,模型可能難以生成正確的內(nèi)容圖片圖片圖片圖片圖片


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: AI

相關推薦

技術專區(qū)

關閉