国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

十分鐘讀懂Stable Diffusion運(yùn)行原理

這篇具有很好參考價(jià)值的文章主要介紹了十分鐘讀懂Stable Diffusion運(yùn)行原理。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

AIGC 熱潮正猛烈地席卷開來,可以說 Stable Diffusion 開源發(fā)布把 AI 圖像生成提高了全新高度,特別是 ControlNet 和 T2I-Adapter 控制模塊的提出進(jìn)一步提高生成可控性,也在逐漸改變一部分行業(yè)的生產(chǎn)模式。驚艷其出色表現(xiàn),也不禁好奇其背后技術(shù)。本文整理了一些學(xué)習(xí)過程中記錄的技術(shù)內(nèi)容,主要包括 Stable Diffusion 技術(shù)運(yùn)行機(jī)制,希望幫助大家知其所以然。

一 背景介紹

AI 繪畫作為 AIGC(人工智能創(chuàng)作內(nèi)容)的一個(gè)應(yīng)用方向,它絕對是 2022 年以來 AI 領(lǐng)域最熱門的話題之一。AI 繪畫憑借著其獨(dú)特創(chuàng)意和便捷創(chuàng)作工具迅速走紅,廣受關(guān)注。舉兩個(gè)簡單例子,左邊是利用 controlnet 新魔法把一張四個(gè)閨蜜在沙灘邊上的普通合影照改成唯美動(dòng)漫風(fēng),右邊是 midjourney v5 最新版本解鎖的逆天神技, 只需輸入文字“舊廠街風(fēng)格,帶著濃濃 90 年代氛圍感”即可由 AI 一鍵生成超逼真圖片!

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖1 兩個(gè)stable diffusion例子

Stable Diffusion,是一個(gè) 2022 年發(fā)布的文本到圖像潛在擴(kuò)散模型,由 CompVis、Stability AI 和 LAION 的研究人員創(chuàng)建的。要提到的是,Stable Diffusion 技術(shù)提出者 StabilityAI 公司在 2022 年 10 月完成了 1.01 億美元的融資,估值目前已經(jīng)超過 10 億美元。本文會在第二部分著重介紹 Stable Diffusion 的技術(shù)思路,第三部分深入分析各個(gè)重要模塊的運(yùn)行機(jī)制,最后總結(jié)下 AI 繪畫。

二 原理簡介

Stable Diffusion 技術(shù),作為 Diffusion 改進(jìn)版本,通過引入隱向量空間來解決 Diffusion 速度瓶頸,除了可專門用于文生圖任務(wù),還可以用于圖生圖、特定角色刻畫,甚至是超分或者上色任務(wù)。作為一篇基礎(chǔ)原理介紹,這里著重解析最常用的“文生圖(text to image)”為主線,介紹 stable diffusion 計(jì)算思路以及分析各個(gè)重要的組成模塊。

下圖是一個(gè)基本的文生圖流程,把中間的 Stable Diffusion 結(jié)構(gòu)看成一個(gè)黑盒,那黑盒輸入是一個(gè)文本串“paradise(天堂)、cosmic(廣闊的)、beach(海灘)”,利用這項(xiàng)技術(shù),輸出了最右邊符合輸入要求的生成圖片,圖中產(chǎn)生了藍(lán)天白云和一望無際的廣闊海灘。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖2 Stable Diffusion組成

Stable Diffusion 的核心思想是,由于每張圖片滿足一定規(guī)律分布,利用文本中包含的這些分布信息作為指導(dǎo),把一張純噪聲的圖片逐步去噪,生成一張跟文本信息匹配的圖片。它其實(shí)是一個(gè)比較組合的系統(tǒng),里面包含了多個(gè)模型子模塊,接下來把黑盒進(jìn)行一步步拆解。stable diffusion 最直接的問題是,如何把人類輸入的文字串轉(zhuǎn)換成機(jī)器能理解的數(shù)字信息。這里就用到了文本編碼器 text encoder(藍(lán)色模塊),可以把文字轉(zhuǎn)換成計(jì)算機(jī)能理解的某種數(shù)學(xué)表示,它的輸入是文字串,輸出是一系列具有輸入文字信息的語義向量。有了這個(gè)語義向量,就可以作為后續(xù)圖片生成器 image generator(粉黃組合框)的一個(gè)控制輸入,這也是 stable diffusion 技術(shù)的核心模塊。圖片生成器,可以分成兩個(gè)子模塊(粉色模塊+黃色模塊)來介紹。下面介紹下 stable diffusion 運(yùn)行時(shí)用的主要模塊:

(1)?文本編碼器(藍(lán)色模塊),功能是把文字轉(zhuǎn)換成計(jì)算機(jī)能理解的某種數(shù)學(xué)表示,在第三部分會介紹文本編碼器是怎么訓(xùn)練和如何理解文字,暫時(shí)只需要了解文本編碼器用的是 CLIP 模型,它的輸入是文字串,輸出是一系列包含文字信息的語義向量。

(2)?圖片信息生成器(粉色模塊),是 stable diffusion 和 diffusion 模型的區(qū)別所在,也是性能提升的關(guān)鍵,有兩點(diǎn)區(qū)別:

① 圖片信息生成器的輸入輸出均為低維圖片向量(不是原始圖片),對應(yīng)上圖里的粉色 4_4 方格。同時(shí)文本編碼器的語義向量作為圖片信息生成器的控制條件,把圖片信息生成器輸出的低維圖片向量進(jìn)一步輸入到后續(xù)的圖片解碼器(黃色)生成圖片。(注:原始圖片的分辨率為 512_512,有RGB 三通道,可以理解有 RGB 三個(gè)元素組成,分別對應(yīng)紅綠藍(lán);低維圖片向量會降低到 64*64 維度)

② Diffusion 模型一般都是直接生成圖片,不會有中間生成低維向量的過程,需要更大計(jì)算量,在計(jì)算速度和資源利用上都比不過 stable diffusion;

那低維空間向量是如何生成的?是在圖片信息生成器里由一個(gè) Unet 網(wǎng)絡(luò)和一個(gè)采樣器算法共同完成,在 Unet 網(wǎng)絡(luò)中一步步執(zhí)行生成過程,采樣器算法控制圖片生成速度,下面會在第三部分詳細(xì)介紹這兩個(gè)模塊。Stable Diffusion 采樣推理時(shí),生成迭代大約要重復(fù) 30~50 次,低維空間變量在迭代過程中從純噪聲不斷變成包含豐富語義信息的向量,圖片信息生成器里的循環(huán)標(biāo)志也代表著多次迭代過程。

(3) 圖片解碼器(黃色模塊),輸入為圖片信息生成器的低維空間向量(粉色 4*4 方格),通過升維放大可得到一張完整圖片。由于輸入到圖片信息生成器時(shí)做了降維,因此需要增加升維模塊。這個(gè)模塊只在最后階段進(jìn)行一次推理,也是獲得一張生成圖片的最終步驟。

那擴(kuò)散過程發(fā)生了什么?

  • 擴(kuò)散過程發(fā)生在圖片信息生成器中,把初始純噪聲隱變量輸入到 Unet 網(wǎng)絡(luò)后結(jié)合語義控制向量,重復(fù) 30~50 次來不斷去除純噪聲隱變量中的噪聲,并持續(xù)向隱向量中注入語義信息,就可以得到一個(gè)具有豐富語義信息的隱空間向量(右下圖深粉方格)。采樣器負(fù)責(zé)統(tǒng)籌整個(gè)去噪過程,按照設(shè)計(jì)模式在去噪不同階段中動(dòng)態(tài)調(diào)整 Unet 去噪強(qiáng)度。
  • 更直觀看一下,如圖 3 所示,通過把初始純噪聲向量和最終去噪后的隱向量都輸?shù)胶竺娴膱D片解碼器,觀察輸出圖片區(qū)別。從下圖可以看出,純噪聲向量由于本身沒有任何有效信息,解碼出來的圖片也是純噪聲;而迭代 50 次去噪后的隱向量已經(jīng)耦合了語義信息,解碼出來也是一張包含語義信息的有效圖片。
十分鐘讀懂Stable Diffusion運(yùn)行原理

圖3 可視化輸出圖片變化

到這里,我們大致介紹了 Stable Diffusion 是什么以及各個(gè)模塊思路,并且簡單介紹了 stable diffusion 的擴(kuò)散過程。第三部分我們繼續(xù)分析各個(gè)重要組成模塊的運(yùn)行機(jī)制,更深入理解 Stable Diffusion 工作原理。

三 模塊分析

第二部分以零基礎(chǔ)角度介紹了 Stable Diffusion 技術(shù)思路,這部分會更細(xì)致地介紹下 Stable Diffusion 文生圖技術(shù),訓(xùn)練階段和采樣階段的總體框架如圖 4 所示,可以劃分成 3 個(gè)大模塊:PART1-CLIP 模型,PART2-Unet 訓(xùn)練,PART3-采樣器迭代。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖4 Stable Diffusion文生圖框架

訓(xùn)練階段,包含了圖里 PART1 CLIP 模型和 PART2 Unet 訓(xùn)練,分成三步:

1、用 AutoEncoderKL 自編碼器把輸入圖片從像素空間映射到隱向量空間,把 RGB 圖片轉(zhuǎn)換到隱式向量表達(dá)。其中,在訓(xùn)練 Unet 時(shí)自編碼器參數(shù)已經(jīng)訓(xùn)練好和固定的,自編碼器把輸入圖片張量進(jìn)行降維得到隱向量。

2、用 FrozenCLIPEmbedder 文本編碼器來編碼輸入提示詞 Prompt,生成向量表示 context,這里需要規(guī)定文本最大編碼長度和向量嵌入大小。

3、對輸入圖像的隱式向量施加不同強(qiáng)度噪聲,再把加噪后隱向量輸入到 UNetModel 來輸出預(yù)估噪聲,和真實(shí)噪聲信息標(biāo)簽作比較來計(jì)算 KL 散度 loss,并通過反向傳播算法更新 UNetModel 模型參數(shù);引入文本向量 context 后,UNetModel 在訓(xùn)練時(shí)把其作為 condition,利用注意力機(jī)制來更好地引導(dǎo)圖像往文本向量方向生成;

采樣階段,包含了圖里 PART1 CLIP 模型和 PART3 采樣器迭代,分成三步:

1、用 FrozenCLIPEmbedder 文本編碼器把輸入提示詞 Prompt 進(jìn)行編碼,生成維度為[B, K, E]的向量表示 context,與訓(xùn)練階段的第 2 步一致;

2、利用隨機(jī)種子隨機(jī)產(chǎn)出固定維度的噪聲隱空間向量,利用訓(xùn)練好的 UNetModel 模型,結(jié)合不同采樣器(如 DDPM/DDIM/PLMS)迭代 T 次不斷去除噪聲,得到具有文本信息的隱向量表征;

3、用 AutoEncoderKL 自編碼器把上面得到的圖像隱向量進(jìn)行解碼,得到被映射到像素空間的生成圖像。

上面對 stable diffusion 總體架構(gòu)進(jìn)行了介紹,那接下來進(jìn)一步分析介紹下每個(gè)重要組成模塊,分別是 Unet 網(wǎng)絡(luò)、采樣器和 CLIP 模型三個(gè)主要模塊。

1 Unet 網(wǎng)絡(luò)

Stable Diffusion 里采用的 UNetModel 模型,采用 Encoder-Decoder 結(jié)構(gòu)來預(yù)估噪聲,網(wǎng)絡(luò)結(jié)構(gòu)如圖 5:

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖5 Unet網(wǎng)絡(luò)結(jié)構(gòu)示意圖

模型輸入包括 3 個(gè)部分,(1) 圖像表示,用隱空間向量輸入的維度為[B, Z, H/8, W/8];(2) timesteps 值,維度為[B, ];(3) 文本向量表示 context,維度為[B, K, E]。其中[B, Z, H, W]分別表示[batch_size 圖片數(shù),C 隱空間通道數(shù),height 長度,weight 寬度],K 和 E 分別表示文本最大編碼長度 max length 和向量嵌入大小。

模型使用 DownSample 和 UpSample 進(jìn)行樣本的下上采樣,在采樣模塊之間還有黑色虛線框的 ResBlock 和 SpatialTransformer,分別接收 timesteps 信息和提示詞信息(這里只畫出一次作為參考)。ResBlock 模塊的輸入有 ① 來自上一個(gè)模塊的輸入和 ②timesteps 對應(yīng)的嵌入向量 timestep_emb(維度為[B, 4*M],M 為可配置參數(shù));SpatialTransformer 模塊的輸入有 ① 來自上一個(gè)模塊的輸入和 ② 提示詞 Prompt 文本的嵌入表示 context,以 context 為注意力機(jī)制里的 condition,學(xué)習(xí)提示詞 Prompt 和圖像的匹配程度。最后,UNetModel 不改變輸入和輸出大小,隱空間向量的輸入輸出維度均為[B, Z, H/8, W/8]。

ResBlock 網(wǎng)絡(luò)

ResBlock 網(wǎng)絡(luò),有兩個(gè)輸入分別是 ① 來自上一個(gè)模塊的輸入和 ②timesteps 對應(yīng)的嵌入向量 timestep_emb(維度為[B, 4*M],M 為可配置參數(shù)),網(wǎng)絡(luò)結(jié)構(gòu)圖如下所示。

timestep_embedding 的生成方式,用的是“Attention is All you Need”論文的 Transformer 方法,通過 sin 和 cos 函數(shù)再經(jīng)過兩個(gè) Linear 進(jìn)行變換。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖6 ResBlock模塊和Timestep生成流程

SpatialTransformer 結(jié)構(gòu)

SpatialTransformer 這里,包含模塊比較多,有兩個(gè)輸入分別是 ① 來自上一個(gè)模塊的輸入和 ② 提示詞 Prompt 文本的嵌入表示 context 作為 condition,兩者使用 cross attention 進(jìn)行建模。其中,SpatialTransformer 里面的注意力模塊 CrossAttention 結(jié)構(gòu),把圖像向量作為 Query,文本表示 context 作為 Key&Value,利用 Cross Attention 模塊來學(xué)習(xí)圖像和文本對應(yīng)內(nèi)容的相關(guān)性。

注意力模塊的作用是,當(dāng)輸入提示詞來生成圖片時(shí),比如輸入 “一匹馬在吃草”,由于模型已經(jīng)能捕捉圖文相關(guān)性以及文本中的重點(diǎn)信息,當(dāng)看到 “馬”時(shí),注意力機(jī)制會重點(diǎn)突出圖像“馬”的生成;當(dāng)看到“草”時(shí),注意力機(jī)制會重點(diǎn)突出圖像 “草” 的生成,進(jìn)而實(shí)現(xiàn)和文本匹配的圖片生成。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖7 SpatialTransformer結(jié)構(gòu)示意圖

Unet 如何訓(xùn)練?

Stable Diffusion 里面 Unet 的學(xué)習(xí)目標(biāo)是什么?簡單來說就是去噪。那在為去噪任務(wù)設(shè)計(jì)訓(xùn)練集時(shí),就可以通過向普通照片添加噪聲來得到訓(xùn)練樣本。具體來說,對于下面這張照片,用 random 函數(shù)生成從強(qiáng)到弱的多個(gè)強(qiáng)度噪聲,比如圖 8 里 0~3 有 4 個(gè)強(qiáng)度的噪聲。訓(xùn)練時(shí)把噪聲強(qiáng)度和加噪后圖片輸入到 Unet,計(jì)算預(yù)測噪聲圖和真正噪聲圖之間的誤差損失,通過反向傳播更新 unet 參數(shù)。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖8 去噪訓(xùn)練樣本說明

訓(xùn)練好 Unet 后,如圖 9 所示,從加噪圖片中推斷出噪聲后,就可以用加噪圖減掉噪聲來恢復(fù)原圖;重復(fù)這個(gè)過程,第一步預(yù)測噪聲圖后再減去噪聲圖,用更新后的加噪圖進(jìn)行第二步去噪,最終就能得到一張很清晰的生成圖片。由于使用了高斯分布的 KL 散度損失,Unet 生成圖片實(shí)際上是接近訓(xùn)練集分布的,和訓(xùn)練集有著相同像素規(guī)律。也就是說,使用真實(shí)場景的寫實(shí)訓(xùn)練集去訓(xùn)練模型,它的結(jié)果就會具有寫實(shí)風(fēng)格,盡量符合真實(shí)世界規(guī)律。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖9 Unet網(wǎng)絡(luò)采樣階段迭代

2 采樣器迭代

這部分介紹下采樣階段中擴(kuò)散模型如何多次迭代去除噪聲,進(jìn)而得到生成圖片的潛在空間表示。提到采樣器,要從最基礎(chǔ)的采樣器 DDPM(Denoising Diffusion Probabilistic Models)進(jìn)行介紹[4]。DDPM 推導(dǎo)有點(diǎn)復(fù)雜,這里就用樸素一點(diǎn)的大白話結(jié)合幾個(gè)關(guān)鍵公式來理清推導(dǎo)思路。

1 擴(kuò)散模型的思路是,訓(xùn)練時(shí)先在圖片上不斷加噪來破壞圖片,推理時(shí)對加噪后的圖片去噪來恢復(fù)出原始圖片。訓(xùn)練過程的 T 次迭代中,可推導(dǎo)出一個(gè)重要特性:任意時(shí)刻的 Xt 可以由 X0 和 β 表示,任意時(shí)刻的 X0 也可以由 Xt 和噪聲 z 求得。

十分鐘讀懂Stable Diffusion運(yùn)行原理
十分鐘讀懂Stable Diffusion運(yùn)行原理

其中,第一行里 a 和 β 可以描述噪聲強(qiáng)度;第二行,X0 為初始的干凈圖片,增加噪聲 z 后生成加噪圖片 Xt,后個(gè)公式由前個(gè)公式變換而來,表示加噪圖片減去一定強(qiáng)度噪聲,得到圖片 X0。

2 問題變成,如何求逆向階段的分布,即給定了一張加噪后圖片,如何才能求得前一時(shí)刻沒有被破壞得那么嚴(yán)重的略清晰圖片。經(jīng)過論文里的一頓推導(dǎo),又得出兩個(gè)重要結(jié)論:

① 逆向過程也服從高斯分布;② 在知道原始清晰圖片時(shí),能通過貝葉斯公式把逆向過程轉(zhuǎn)換成前向過程,進(jìn)而算出逆向過程分布。在公式上體現(xiàn)如下:

十分鐘讀懂Stable Diffusion運(yùn)行原理
十分鐘讀懂Stable Diffusion運(yùn)行原理

其中,第一行指的是給定 X0 情況下,逆向過程也服從高斯分布,并且利用貝葉斯公式把逆向過程轉(zhuǎn)換成前向過程,前向過程是不斷加噪的過程,可以被計(jì)算;第二行指的是,Xt 和 X0 由于可以相互轉(zhuǎn)換,從公式上看,均值也可以從 Xt 減去不同噪聲得到。

3 算出逆向過程分布后,就可以訓(xùn)練一個(gè)模型盡量擬合這個(gè)分布,而且模型預(yù)估結(jié)果也應(yīng)該服從高斯分布:

十分鐘讀懂Stable Diffusion運(yùn)行原理

其中,求均值公式里只包含 Xt 和噪聲,由于 Xt 在訓(xùn)練時(shí)已知,那只需要得到模型輸出的預(yù)估噪聲,該值可由模型用 Xt 和 t 預(yù)估得到。

4 把逆向過程分布(也就是 Label 值)和模型的預(yù)估分布做比較,由于 ①KL 散度可以用來描述兩個(gè)分布之間的差異和 ② 多元高斯分布的 KL 散度有閉式解,經(jīng)過一番推導(dǎo)發(fā)現(xiàn)損失函數(shù)變成計(jì)算兩個(gè)高斯分布的 KL 散度。

十分鐘讀懂Stable Diffusion運(yùn)行原理

其中,q 分布是逆向過程分布,p 是模型預(yù)估分布,訓(xùn)練損失是求兩個(gè)高斯分布的 KL 散度,即兩個(gè)分布之間的差距。

5 DDPM 訓(xùn)練過程和采樣過程的偽代碼如下圖所示。由于 DDPM 的高質(zhì)量生成依賴于較大的 T(一般為 1000 以上),導(dǎo)致 Diffusion 前向過程特別緩慢,因此后續(xù)進(jìn)一步有了 DDIM、PLMS 和 Euler A 等一些優(yōu)化版采樣器。

十分鐘讀懂Stable Diffusion運(yùn)行原理

其中,訓(xùn)練階段實(shí)際上是求真實(shí)噪聲和模型預(yù)估噪聲的 MSE 誤差,再對 Loss 求導(dǎo)反向傳播來訓(xùn)練模型;采樣階段,求得均值和方差后,采用重參數(shù)技巧來生成樣本。

總結(jié)下,擴(kuò)散模型采樣階段是對加噪后圖片去噪來恢復(fù)出原始圖片,基于 ① 任意時(shí)刻的圖片均可以由原始圖片和噪聲表示;② 逆向過程的圖片參數(shù)符合高斯分布,優(yōu)化目標(biāo)轉(zhuǎn)化為計(jì)算逆向分布和預(yù)估分布的 KL 散度差異,并在采樣階段使用重參數(shù)技巧來生成圖片。

3 CLIP 模型

在前面有提到,提示詞 Prompt 文本利用文本模型轉(zhuǎn)換成嵌入表示 context,作為 Unet 網(wǎng)絡(luò)的 condition 條件。那問題來了,語義信息和圖片信息屬于兩種模態(tài),怎么用 attention 耦合到一起呢?這里介紹下用于提取語義信息的 CLIP 模型。

語義信息的好壞直接影響到了最終生成圖片的多樣性和可控性,那像 CLIP 這樣的語言模型是如何訓(xùn)練出來的?是如何結(jié)合文本串和計(jì)算機(jī)視覺的呢?首先,要有一個(gè)具有文本串和計(jì)算機(jī)視覺配對的數(shù)據(jù)集。CLIP 模型所使用的訓(xùn)練集達(dá)到了 4 億張,通過從網(wǎng)絡(luò)上爬取圖片及相應(yīng)的標(biāo)簽或者注釋。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖9 CLIP模型訓(xùn)練用到的圖片和標(biāo)簽示例

CLIP 模型結(jié)構(gòu)包含一個(gè)圖片 encoder 和一個(gè)文字 encoder,類似于推薦場景常用到的經(jīng)典雙塔模型。

  • 訓(xùn)練時(shí),從訓(xùn)練集隨機(jī)取出一些樣本(圖片和標(biāo)簽配對的話就是正樣本,不匹配的話就是負(fù)樣本),CLIP 模型的訓(xùn)練目標(biāo)是預(yù)測圖文是否匹配;
  • 取出文字和圖片后,用圖片 encoder 和文字 encoder 分別轉(zhuǎn)換成兩個(gè) embedding 向量,稱作圖片 embedding 和文字 embedding;
  • 用余弦相似度來比較兩個(gè) embedding 向量相似性,并根據(jù)標(biāo)簽和預(yù)測結(jié)果的匹配程度計(jì)算損失函數(shù),用來反向更新兩個(gè) encoder 參數(shù)。
  • 在 CLIP 模型完成訓(xùn)練后,輸入配對的圖片和文字,這兩個(gè) encoder 就可以輸出相似的 embedding 向量,輸入不匹配的圖片和文字,兩個(gè) encoder 輸出向量的余弦相似度就會接近于 0。

推理時(shí),輸入文字可以通過一個(gè) text encoder 轉(zhuǎn)換成 text embedding,也可以把圖片用 image encoder 轉(zhuǎn)換成 image embedding,兩者就可以相互作用。在生成圖片的采樣階段,把文字輸入利用 text encoder 轉(zhuǎn)換成嵌入表示 text embedding,作為 Unet 網(wǎng)絡(luò)的 condition 條件。

十分鐘讀懂Stable Diffusion運(yùn)行原理

圖10 CLIP模型結(jié)構(gòu)示意圖

四 本文小結(jié)

AI 繪畫各種應(yīng)用不斷涌現(xiàn),目前有關(guān) Stable Diffusion 的文章主要偏向應(yīng)用介紹,對于 Stable Diffusion 技術(shù)邏輯的介紹還是比較少。這篇文章主要介紹了 Stable Diffusion 技術(shù)結(jié)構(gòu)和各個(gè)重要組成模塊的基本原理,希望能夠讓大家了解 Stable Diffusion 是如何運(yùn)行的,才能更好地控制 AI 繪畫生成。AI 繪畫雖然還面臨一些技術(shù)挑戰(zhàn),但隨著技術(shù)不斷迭代和發(fā)展,相信 AI 能夠在更多領(lǐng)域發(fā)揮出驚喜生產(chǎn)力。

(本文參考了 stable diffusion 官方倉庫以及一些解讀 Blog,結(jié)合個(gè)人在其他 ML 領(lǐng)域經(jīng)驗(yàn)的一些解讀。如有不合理的地方,歡迎在評論區(qū)指出。)

參考鏈接

1?GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion model

2?The Illustrated Stable Diffusion:The Illustrated Stable Diffusion – Jay Alammar – Visualizing machine learning one concept at a time.

3?由淺入深了解 Diffusion Model

4?Denoising Diffusion Probabilistic Models文章來源地址http://www.zghlxwxcb.cn/news/detail-488026.html

到了這里,關(guān)于十分鐘讀懂Stable Diffusion運(yùn)行原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AI作畫:十分鐘快速搭建自己的text-to-image diffusion models

    Diffusion Models專欄文章匯總:入門與實(shí)戰(zhàn) 前言: 最近AI作畫徹底火出圈,diffusion models的研究者也越來越多,就連搞推薦算法、搞目標(biāo)檢測的同學(xué)都來問我擴(kuò)散模型的事情。這篇博客作為一個(gè)科普博客,手把手教大家如何用十分鐘搭建一個(gè)屬于自己的text-to-image stable diffusion mo

    2024年02月12日
    瀏覽(100)
  • 零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!

    零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!

    大佬藍(lán)鳥ID: sundyme 零編程經(jīng)驗(yàn),通過 GPT-4 十分鐘開發(fā)了一個(gè)瀏覽器插件,并成功運(yùn)行,實(shí)現(xiàn)了需求目標(biāo)!太不可思意了,真正體會到了自然語言編程的魅力! 下一步是利用Pinterest 的 API 接口實(shí)現(xiàn)自動(dòng)發(fā)圖,已經(jīng)生成好了代碼和步驟(看著挺靠譜),等明天開發(fā)者權(quán)限審核下

    2023年04月08日
    瀏覽(86)
  • 十分鐘入門Zigbee

    十分鐘入門Zigbee

    大部分教程通常都是已Zigbee原理開始講解和學(xué)習(xí),各種概念讓初學(xué)者難以理解。本教程從一個(gè)小白的角度出發(fā),入門無需任何Zigbee底層原理知識,只需要基本的MCU研發(fā)經(jīng)驗(yàn)就可以掌握,讓您快速實(shí)現(xiàn)zigbee組網(wǎng)和節(jié)點(diǎn)之間通信。 本教程采用泰凌微TLSR8258芯片,芯片資料鏈接TLS

    2023年04月09日
    瀏覽(106)
  • 每天十分鐘學(xué)會Spark

    每天十分鐘學(xué)會Spark

    Spark是什么 Spark是一種基于內(nèi)存的快速、通用、可拓展的大數(shù)據(jù)分析計(jì)算引擎。 Spark官網(wǎng):http://spark.apache.org/ Spark的特點(diǎn) 1、快速 ??一般情況下,對于迭代次數(shù)較多的應(yīng)用程序,Spark程序在內(nèi)存中的運(yùn)行速度是Hadoop MapReduce運(yùn)行速度的100多倍,在磁盤上的運(yùn)行速度是Hadoop MapRedu

    2024年03月18日
    瀏覽(98)
  • 十分鐘掌握J(rèn)ava本地緩存

    —————————— Yesterday is history, tomorrow is a mystery, but today is a gift. That is why it’s called the present. —————————— 緩存是Java開發(fā)中經(jīng)常用到的組件,我們會使用緩存來存儲一些 不經(jīng)常改變 的 熱點(diǎn) 數(shù)據(jù),提高系統(tǒng)處理效率,其根本原因在于內(nèi)存和硬盤讀寫速度的

    2024年02月05日
    瀏覽(94)
  • Django入門,十分鐘學(xué)會登錄網(wǎng)頁

    我們假定你已經(jīng)閱讀了?安裝 Django。你能知道 Django 已被安裝,且安裝的是哪個(gè)版本,通過在命令提示行輸入命令 cmd黑窗口運(yùn)行,不懂cmd百度一下 如果這是你第一次使用 Django 的話,你需要一些初始化設(shè)置。也就是說,你需要用一些自動(dòng)生成的代碼配置一個(gè) Django?project?——

    2024年01月24日
    瀏覽(104)
  • 十分鐘python入門 正則表達(dá)式

    正則常見的三種功能,它們分別是:校驗(yàn)數(shù)據(jù)的有效性、查找符合要求的文本以及對文本進(jìn)行切割和替換等操作。 所謂元字符就是指那些在正則表達(dá)式中具有特殊意義的專用字符 元字符大致分成這幾類:表示單個(gè)特殊字符的,表示空白符的,表示某個(gè)范圍的,表示次數(shù)的量

    2024年02月13日
    瀏覽(92)
  • 十分鐘理解回歸測試(Regression Testing)

    十分鐘理解回歸測試(Regression Testing)

    回歸測試是一個(gè)系統(tǒng)的質(zhì)量控制過程,用于驗(yàn)證最近對軟件的更改或更新是否無意中引入了新錯(cuò)誤或?qū)σ郧暗墓δ芊矫娈a(chǎn)生了負(fù)面影響(比如你在家中安裝了新的空調(diào)系統(tǒng),發(fā)現(xiàn)雖然新的空調(diào)系統(tǒng)可以按預(yù)期工作,但是本來亮的等卻不亮了)。其主要目標(biāo)是確保旨在改進(jìn)的修

    2024年02月05日
    瀏覽(92)
  • 十分鐘掌握 Vim 編輯器核心功能

    十分鐘掌握 Vim 編輯器核心功能

    ??相信不論是前端還是后臺多多少少都需要上到服務(wù)器上做一些操作,改改配置文件等,大多數(shù) Linux 服務(wù)器默認(rèn)都安裝了 Vim 文本編輯器,因此如果還不會 Vim 的話,可能會被同事“恥笑”。 ??如果本文對你有所幫助,請點(diǎn)個(gè)?? 吧。 Vim是什么? Vim 是從 vi 發(fā)展出來的一個(gè)

    2024年02月16日
    瀏覽(98)
  • 十分鐘玩轉(zhuǎn)3D繪圖:WxGL完全手冊

    十分鐘玩轉(zhuǎn)3D繪圖:WxGL完全手冊

    WxGL是一個(gè)基于PyOpenGL的跨平臺三維數(shù)據(jù)快速可視化工具包,提供類似Matplotlib風(fēng)格的應(yīng)用方式。WxGL也可以集成到wxPython或PyQt6中實(shí)現(xiàn)更多的功能和控制。 WxGL提供了一套簡潔易用、對用戶友好的API,將OpenGL的復(fù)雜概念封裝起來,使得用戶可以更加專注于數(shù)據(jù)的處理,而無需在3

    2024年01月22日
    瀏覽(97)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包