六大訣竅幫你釋放擴散模型的創造力 原創
本文將介紹提升擴散模型質量的六種方法,從而幫助終端用戶達到畫家級的精準作圖水平。
簡介
Stable Diffusion模型1.5/2.0/2.1/XL 1.0版本、DALL-E模型、Imagen模型……在過去幾年中,擴散模型在圖像生成方面展現出了驚人的質量。然而,雖然這些模型在通用概念上產生了高質量的圖像,但它們卻難以為更專業的查詢生成高質量的圖像,例如生成訓練數據集中不常見的特定風格的圖像。
我們可以在大量圖像上重新訓練整個模型,從頭開始解釋解決問題所需的概念。這聽起來并不實用。首先,我們需要大量的圖像來實現這個想法;其次,這實在是太昂貴和耗時了。
然而,有一些解決方案,只要有少量圖像和一個小時的微調,擴散模型就能在新的概念上產生合理的質量。
接下來,我將介紹Dreambooth、Lora、超網絡、文本反轉、IP適配器和ControlNets等廣泛用于定制和條件擴散模型的方法。
擴散架構
在深入研究有助于調節擴散模型的各種方法之前,讓我們首先回顧一下什么是擴散模型。
擴散過程可視化示意圖(圖片由作者本人提供)
擴散模型的最初想法是訓練一個模型,以便從噪聲中重建連貫圖像。在訓練階段,我們逐漸添加少量高斯噪聲(正向過程),然后通過優化模型來預測噪聲,從而迭代地重建圖像,減去噪聲,最終達到更接近目標圖像(反向過程)。
圖像損壞(Image Corruption)的原始想法已經演變成一種更實用、更輕量的架構,其中首先將圖像壓縮到潛在空間,并在低維空間中執行所有添加噪聲的操作。
為了將文本信息添加到擴散模型中,我們首先將其通過文本編碼器(通常是?CLIP??)以便產生潛在嵌入,然后將其注入具有交叉注意層的模型中。
1.Dreambooth與相關論文和代碼實現
Dreambooth可視化(可訓練塊用紅色標記,圖片由作者本人提供)
這個想法是取一個罕見的單詞;通常使用{SKS}單詞,然后教模型將單詞{SKS}映射到我們想要學習的特征。例如,這可能是模型從未見過的風格,如梵高。我們會展示他的十幾幅畫作,并微調到短語“一幅{SKS}風格的靴子畫”。我們可以類似地個性化生成,例如,學習如何在一組自拍照中生成特定人的圖像,例如“山中的{SKS}”。
為了保持在預訓練階段學到的信息,Dreambooth通過將原始模型生成的文本圖像對添加到微調集,以便鼓勵模型不要偏離原始的預訓練版本太多。
何時使用,何時不使用
Dreambooth在所有方法中都能產生最佳質量;但是,由于整個模型都已更新,該技術可能會影響已學過的概念。訓練計劃還限制了模型可以理解的概念數量。這種訓練方法比較耗時,差不多需要1-2小時。如果我們決定一次引入幾個新概念,那么我們需要存儲兩個模型檢查點(【譯者注】模型檢查點是指在模型訓練過程中定期保存的模型狀態快照,包括模型的權重、配置和優化器的狀態等信息),這會浪費大量空間。
2.文本反轉與相關論文和代碼實現
文本反轉可視化(可訓練塊用紅色標記,圖片由作者本人提供)
文本反轉方法背后的假設是,存儲在擴散模型的潛在空間中的知識非常龐大。因此,我們想要用擴散模型重現的風格或條件已經為它所知,但我們沒有訪問它的符號(token)。因此,我們不是微調模型以便在輸入“{SKS}風格”的稀有詞時重現所需的輸出,而是優化文本嵌入以產生所需的輸出。
何時使用,何時不使用
文本反轉方法占用的空間非常小,因為只會存儲符號。訓練速度也相對較快,平均訓練時間為20-30分鐘。然而,它也有缺點——因為我們正在微調一個引導模型產生特定風格的特定向量,所以它不會超越這種風格。
3.LoRA與相關論文和代碼實現
LoRA可視化(可訓練塊標記為紅色,圖片由作者本人提供)
低秩自適應(Low-Rank Adaptions:LoRA)方法是為大型語言模型提出的,并首先??由SimoRyu改編為擴散模型??。LoRA的最初想法是,我們可以將一小部分新權重與原始模型混合,這些權重將使用類似的稀有符號(token)方法針對任務進行微調,而不是對整個模型進行微調,這可能相當昂貴。
在擴散模型中,秩分解應用于交叉注意層,負責合并提示和圖像信息。這些層中的權重矩陣WO、WQ、WK和WV均應用了LoRA。
何時使用,何時不使用
LoRA方法的訓練時間非常短(5-15分鐘)——與整個模型相比,我們只更新了少量參數,而且與Dreambooth不同,它們占用的空間要小得多。然而,使用LoRA進行微調的小型模型與DreamBooth相比質量較差。
4.超網絡與相關論文和代碼實現
超網絡可視化(訓練塊用紅色標記,圖片由作者本人提供)
從某種意義上說,超網絡方法是LoRA的擴展。我們不是學習會直接改變模型輸出的相對較小的嵌入,而是訓練一個能夠預測這些新注入的嵌入權重的單獨網絡。
讓模型預測特定概念的嵌入,我們可以教超網絡幾個概念——將同一模型重復用于多個任務。
何時使用和不使用
超網絡方法不專注于單一風格,而是能夠產生大量內容,通常不會產生像其他方法那樣好的質量,并且可能需要大量時間來訓練。從優點方面來看,它們可以比其他單概念微調方法存儲更多的概念。
5.IP適配器與相關論文和代碼實現
IP適配器可視化(可訓練塊標記為紅色,圖片由作者本人提供)
IP適配器方法不是用文本提示來控制圖像生成,而是提出了一種使用圖像來控制生成的方法,而無需對底層模型進行任何更改。
IP適配器方法背后的核心思想是,使用一種解耦的交叉注意機制,允許將源圖像與文本和生成的圖像特征相結合。這是通過添加單獨的交叉注意層來實現的,允許模型學習特定于圖像的特征。
何時使用,何時不使用
IP適配器方法屬于輕量級的,適應性強且速度快。然而,它們的性能在很大程度上取決于訓練數據的質量和多樣性。IP適配器通常更適合提供我們希望在生成的圖像中看到的風格屬性(例如Mark Chagall的畫作圖像),但可能無法控制精確的細節,例如姿勢。
6.ControlNets與相關論文和代碼實現
ControlNet可視化(可訓練塊用紅色標記,圖片由作者本人提供)
ControlNet論文提出了一種將文本到圖像模型的輸入擴展到任何模態的方法,從而可以對生成的圖像進行細粒度控制。
在原始公式中,ControlNet是預訓練擴散模型的編碼器,它將提示、噪聲和控制數據(例如深度圖、地標等)作為輸入。為了指導生成,ControlNet的中間級別隨后被添加到凍結擴散模型的激活中。
注入是通過零卷積實現的,其中1×1卷積的權重和偏差被初始化為零,并在訓練過程中逐漸學習有意義的變換。這類似于LoRA的訓練方式——以0初始化,從恒等函數開始學習。
何時使用,何時不使用
當我們想要控制輸出結構時,例如通過地標、深度圖或邊緣圖,ControlNets方法是首選方案。由于需要更新整個模型權重,訓練可能很耗時;但是,這些方法也允許通過剛性控制信號進行最佳的細粒度控制。
總結
- DreamBooth技術:針對自定義風格的主題對模型進行全面微調,控制水平高;但是,訓練需要很長時間,并且僅適用于一種目的。
- 文本反轉技術:基于嵌入的新概念學習,控制水平低,但訓練速度快。
- LoRA技術:針對新風格/角色的輕量級模型微調,控制水平中等,但訓練速度快。
- 超網絡技術:單獨的模型來預測給定控制請求的LoRA權重。更多風格的控制水平較低,需要時間訓練。
- IP適配器技術:通過參考圖像進行柔和的風格/內容指導,中等水平的風格控制,輕量級且高效。
- ControlNet技術:通過姿勢、深度和邊緣進行控制非常精確;但是,需要更長的訓練時間。
- 最佳實踐推薦:為了獲得最佳效果,結合使用IP適配器及其更柔和的風格指導和用于姿勢和對象排列的ControlNet方法可產生最佳效果。
譯者介紹
朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。
原文標題:?Six Ways to Control Style and Content in Diffusion Models??,作者:Aliaksei Mikhailiuk
