寧波做日用品外貿(mào)公司網(wǎng)站百度搜索引擎原理
文章目錄
- Stable Diffusion的組成
- 什么是擴(kuò)散
- 擴(kuò)散是如何工作的
- 去噪聲繪制圖像
- 將文本信息添加到圖像生成器中
- 參考
“文生圖”,或者AI繪畫,最近異?;鸨?#xff0c;輸入一些描述性的語句,AI就能夠生成相應(yīng)的畫作。甚至引發(fā)了一個(gè)問題:AI會(huì)不會(huì)替代原畫師?AI通過學(xué)習(xí)和分析大量的數(shù)據(jù),學(xué)習(xí)到各種各樣的繪畫技巧和風(fēng)格,相比于人類,花費(fèi)更短的時(shí)間和更低的成本,就能創(chuàng)作出很優(yōu)秀的作品。
僅從文本描述中就能夠創(chuàng)作出非凡的視覺圖像,這已清晰地表明人類創(chuàng)作藝術(shù)的方式發(fā)生了轉(zhuǎn)變。Stable Diffusion的發(fā)布是此發(fā)展歷程中的一個(gè)里程碑事件,它為大眾提供了一個(gè)高性能的模型。
國外大牛JayAlamma 的博文 [The Illustrated Stable Diffusion](The Illustrated Stable Diffusion)形象地描述了AI圖像到底是如何被生成的,形象地解釋了什么是stable diffusion,什么是diffusion。學(xué)習(xí)完大牛的博文后,我用自己的理解向大家介紹一下Stable Diffusion的原理。
Stable Diffusion的組成
Stable Diffusion不是一個(gè)整體模型,它由幾個(gè)組件和模型組成。首先是文本理解組件
(text-understanding component ),將文本信息轉(zhuǎn)換成數(shù)字表示,以捕捉文本中的想法。其次是圖像生成器
(image generator),圖像生成器包括兩步,圖像信息創(chuàng)建者( Image information creator)和圖像解碼器(Image Decoder)。
圖像信息創(chuàng)建者這一組件運(yùn)行多步以生成對象,這是stable diffusion接口和庫中的步長參數(shù),通常默認(rèn)為50或者100。圖像信息創(chuàng)建者完全在圖像信息空間(隱藏空間)中工作,此特性比在像素空間中工作的擴(kuò)散模型更快。
圖像解碼器根據(jù)從圖像信息創(chuàng)建者哪里獲得信息繪制圖片,它僅僅在生成最終圖像的結(jié)束階段運(yùn)行一次。
上圖是stable diffusion的一個(gè)流程圖,包含了上述描述的三個(gè)組件,每個(gè)組件都有相應(yīng)的神經(jīng)網(wǎng)絡(luò)。
- **文本理解組件:**Clip Text為文本編碼器。以77 token為輸入,輸出為77 token 嵌入向量,每個(gè)向量有768維度
- **圖像信息創(chuàng)建者:**UNet+Scheduler,在潛在空間中逐步處理擴(kuò)散信息。以文本嵌入向量和由噪聲組成的起始多維數(shù)組為輸入,輸出處理的信息數(shù)組。
- **圖像解碼器:**自動(dòng)編碼解碼器,使用處理后的信息數(shù)組繪制最終的圖像。以處理后的維度為 4 × 64 × 64 4 \times 64 \times 64 4×64×64的信息數(shù)組為輸入,輸出尺寸為 3 × 512 × 512 3 \times 512 \times 512 3×512×512的圖像。
什么是擴(kuò)散
上述我們描述過“圖像信息創(chuàng)建者”組件的功能,它以文本嵌入向量和由噪聲組成的起始多維輸入為輸出,輸出圖像解碼器用于繪制最終圖像的信息陣列。擴(kuò)散是發(fā)生在下圖粉紅色“圖像信息創(chuàng)建者”組件內(nèi)部的過程。
擴(kuò)散這個(gè)過程是循序漸進(jìn)的,每一步都會(huì)添加更多相關(guān)信息。擴(kuò)散發(fā)生在多個(gè)步驟,每一步作用于一個(gè)輸入latents array,生成另一個(gè)latents array,該數(shù)組能夠更好類比輸入文本和模型從訓(xùn)練模型中的所有圖像中獲取的所有視覺信息。下圖將每一步生成的latents array作為圖像解碼器的輸入,可視化了每一步中添加了什么信息。下圖的diffusion迭代了50次,隨著迭代步數(shù)的增加,latents array解碼的圖像越來越清晰。
擴(kuò)散是如何工作的
擴(kuò)散模型生成圖像的主要思路基于業(yè)內(nèi)已有強(qiáng)大的計(jì)算機(jī)視覺模型這一基礎(chǔ)上。只要數(shù)據(jù)集夠大,模型就可以學(xué)習(xí)到更復(fù)雜的邏輯。
假設(shè)有一張照片,有一些隨機(jī)生成的噪聲,然后隨機(jī)選擇一個(gè)噪聲添加到此圖像上,這樣構(gòu)成一條訓(xùn)練樣本。用相同的方式可以生成大量的訓(xùn)練樣本組成訓(xùn)練集,然后使用這份訓(xùn)練數(shù)據(jù)集,訓(xùn)練噪聲預(yù)測器(UNet)。訓(xùn)練結(jié)束后將會(huì)得到一個(gè)高性能的噪聲預(yù)測器,在特定配置下運(yùn)行時(shí)創(chuàng)建圖像。
去噪聲繪制圖像
基于上述描述構(gòu)建的噪聲訓(xùn)練集訓(xùn)練得到一個(gè)噪聲預(yù)測器,噪聲預(yù)測器可以產(chǎn)生一個(gè)噪聲圖像,如果我們從圖像中減去此生成的噪聲圖像,那么就能夠得到與模型訓(xùn)練樣本盡可能接近的圖像,這個(gè)接近是指分布上的接近,比如天空通常是藍(lán)色的,人類有兩個(gè)眼等。生成圖像的風(fēng)格傾向于訓(xùn)練樣本存在的風(fēng)格。
將文本信息添加到圖像生成器中
上述描述的擴(kuò)散生成圖像并不包括任何文本圖像,但是圖像生成器的輸入包括文本嵌入向量和由噪聲組成的起始多維數(shù)組,所以調(diào)整噪聲生成器來適配文本。這樣基于大量訓(xùn)練數(shù)據(jù)訓(xùn)練后既可以得到圖像生成器?;谶x擇的文本編碼器加上訓(xùn)練后的圖像生成器,就構(gòu)成了整個(gè)stable diffusion模型??梢越o定一些描述性的語句,整個(gè)stable diffusion模型就能夠生成相應(yīng)的畫作。
參考
- [The Illustrated Stable Diffusion](The Illustrated Stable Diffusion)