StableDiffusion和MidJourney背后的魔法-擴(kuò)散模型
最近網(wǎng)絡(luò)上有很多AI生成的圖片、視頻,通過輸入一段提示詞(prompt)就能快速給生成精美的圖片,通過文字或者圖片,也能生成一段視頻,看起來就像是神奇的魔法。通過SD和MJ生成圖片,讓我們都變成了提示詞藝術(shù)家。
接下來,讓我們一起看看這個(gè)魔法是如何產(chǎn)生的。Stable Diffusion使用一種潛在擴(kuò)散模型(latent diffusion),基于深度學(xué)習(xí)的擴(kuò)散模型使用神經(jīng)網(wǎng)絡(luò)迭代地添加然后去除圖像等數(shù)據(jù)中的噪聲,從而生成新的樣本數(shù)據(jù)。如果你在SD里面生成過圖片,你能明顯看到預(yù)覽框里面的圖片是一點(diǎn)點(diǎn)的變清晰,這個(gè)就是在一步一步的增加新內(nèi)容弄個(gè)和去除噪聲的過程。
本質(zhì)上,從干凈的目標(biāo)圖像開始,并通過一系列步驟添加噪聲 - 從圖像向量的復(fù)雜高維空間進(jìn)入“噪聲”空間。然后,使用經(jīng)過訓(xùn)練的神經(jīng)網(wǎng)絡(luò)“重建”圖像,以從噪聲向量返回到圖像。當(dāng)模型迭代地消除噪聲時(shí),它會(huì)學(xué)習(xí)圖像的基本特征并學(xué)習(xí)如何“重建”圖像,這就是生成方面發(fā)揮作用的地方。
添加和刪除噪聲的過程允許探索數(shù)據(jù)空間,并且噪聲就像形式或正則化一樣,防止模型過度擬合和泛化。重建或逆轉(zhuǎn)噪聲過程有助于模型生成類似的數(shù)據(jù)。
訓(xùn)練完成后,您可以從隨機(jī)噪聲開始,最終生成具有訓(xùn)練集特征的生成圖像。
Stable Diffusion是一種潛在擴(kuò)散模型。它主要在低維空間中運(yùn)行,將圖像壓縮成更小的低維表示(稱為潛在空間)。當(dāng)您處理數(shù)據(jù)的簡(jiǎn)化版本時(shí),這可以提高效率和速度。這也就是我們通常生成圖片時(shí)會(huì)先使用低分辨率,當(dāng)生產(chǎn)的圖片整體構(gòu)圖符合要求時(shí),我們可以再開啟高分辨率修復(fù)和其他的一些參數(shù)。
從文本提示(prompt)開始,將文本提示使用基于 Transformer 的編碼器轉(zhuǎn)換為高維編碼。該編碼器將一系列輸入標(biāo)記映射到一系列潛在文本向量(embedding),然后使用這些向量來調(diào)節(jié)潛在空間以生成圖像。
然后,這些向量(embedding)用于調(diào)節(jié)器里,進(jìn)而在潛在空間里面去發(fā)生作用。調(diào)節(jié)器的作用是引導(dǎo)噪聲預(yù)測(cè)器,使其能夠預(yù)測(cè)出合適的噪聲,以便從圖像中減去后,生成的圖像朝著想要的方向演變。
當(dāng)我們?cè)诘途S空間中操作時(shí),也就允許根據(jù)文本提示進(jìn)行定制生成圖片了。
上面的描述是對(duì)擴(kuò)散模型過程的過度簡(jiǎn)化,并且該過程有更多細(xì)節(jié),沒有說的很詳細(xì),但希望能夠幫助你對(duì)文本提示轉(zhuǎn)換為漂亮圖像的過程有一個(gè)較好的理解