長春網(wǎng)站優(yōu)化流程南通seo網(wǎng)站優(yōu)化軟件
Stable Diffuse 之 本地環(huán)境部署/安裝包下載搭建過程簡單記錄
目錄
Stable Diffuse 之 本地環(huán)境部署/安裝包下載搭建過程簡單記錄
一、簡單介紹
二、注意事項(xiàng)
三、環(huán)境搭建
git 下載和安裝
python 下載和安裝
stable-diffusion-webui 下載和安裝
測試 stable diffuse webui 文生圖功能
附錄:Stable Diffusion 一些基礎(chǔ)介紹
1、Latent diffusion的主要組成部分
2、為什么Latent Diffusion快速有效
3、Stable Diffusion的推理過程
一、簡單介紹
Stable Diffusion是一個文本到圖像的潛在擴(kuò)散模型,由CompVis、Stability AI和LAION的研究人員和工程師創(chuàng)建。它使用來自LAION-5B數(shù)據(jù)庫子集的512x512圖像進(jìn)行訓(xùn)練。使用這個模型,可以生成包括人臉在內(nèi)的任何圖像,因?yàn)橛虚_源的預(yù)訓(xùn)練模型,所以我們也可以在自己的機(jī)器上運(yùn)行它,如下圖所示。
Stable Diffusion是一個AI 繪圖軟件 (開源模型),可本地部署,可切換多種模型,且新的模型和開源庫每天都在更新發(fā)布,最重要的是免費(fèi),沒有繪圖次數(shù)限制。
Github 網(wǎng)址:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
二、注意事項(xiàng)
1、電腦的顯存至少2G以上
2、最好 python 3.10.x 及以上合適版本
三、環(huán)境搭建
這里操作案例環(huán)境:win 10
git 下載和安裝
1、下載 git ,選擇對應(yīng)版本下載即可
git 下載地址:Git - Downloads
2、安裝 git ,操作簡單這里不再贅述,安裝成功后,cmd 中 git --version 檢測是否安裝成功
能看到安裝版本,說明安裝及環(huán)境配置成功,如下圖
python 下載和安裝
1、在 python 官網(wǎng)下載對應(yīng)版本,這里使用 3.10.9 版本
python 官網(wǎng)下載地址:Download Python | Python.org
2、下載好后,安裝 python ,記得包 path 添加到環(huán)境變量中
3、在cmd ,測試是否安裝成功,python --version
能看到安裝版本,說明安裝及環(huán)境配置成功,如下圖
stable-diffusion-webui 下載和安裝
1、打開 github 網(wǎng)址,搜索找到 stable-diffusion-webui
stable-diffusion-webui github 地址:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
2、獲取下載地址,在 git 中 clone 克隆下來
3、下載好后,文件夾文件如下圖
4、找到 webui-user.bat,運(yùn)行 webui-user.bat
(安裝過程較長,可能需要魔法上網(wǎng))
5、中間可能出現(xiàn),需要升級一下 Python 的 pip ,根據(jù)提示操作即可
6、重復(fù)第4步驟,再次運(yùn)行 webui-user.bat
中間可能會有 一些安裝包安裝(clip 、git clone 等)不上,魔法上網(wǎng)可以處理,
7、安裝結(jié)束之后,會自動打開網(wǎng)頁
測試 stable diffuse webui 文生圖功能
1、運(yùn)行 webui-user.bat
2、打開的網(wǎng)頁中,輸入一些簡單的提示詞,效果如下
Vincent van Gogh’s painting of Emma Watson; prompt2: John Sargent’s painting of Emma Watson
3、每次的處理過程后臺也會有進(jìn)度
附錄:Stable Diffusion 一些基礎(chǔ)介紹
Stable Diffusion是一種機(jī)器學(xué)習(xí)模型,它經(jīng)過訓(xùn)練可以逐步對隨機(jī)高斯噪聲進(jìn)行去噪以獲得感興趣的樣本,例如生成圖像。
擴(kuò)散模型有一個主要的缺點(diǎn)就是去噪過程的時間和內(nèi)存消耗都非常昂貴。這會使進(jìn)程變慢,并消耗大量內(nèi)存。主要原因是它們在像素空間中運(yùn)行,特別是在生成高分辨率圖像時。
Latent diffusion通過在較低維度的潛空間上應(yīng)用擴(kuò)散過程而不是使用實(shí)際的像素空間來減少內(nèi)存和計(jì)算成本。所以Stable Diffusion引入了Latent diffusion的方式來解決這一問題計(jì)算代價昂貴的問題。
1、Latent diffusion的主要組成部分
Latent diffusion有三個主要組成部分:
1)自動編碼器(VAE)
自動編碼器(VAE)由兩個主要部分組成:編碼器和解碼器。編碼器將把圖像轉(zhuǎn)換成低維的潛在表示形式,該表示形式將作為下一個組件U_Net的輸入。解碼器將做相反的事情,它將把潛在的表示轉(zhuǎn)換回圖像。
在Latent diffusion訓(xùn)練過程中,利用編碼器獲得正向擴(kuò)散過程中輸入圖像的潛表示(latent)。而在推理過程中,VAE解碼器將把潛信號轉(zhuǎn)換回圖像。
2)U-Net
U-Net也包括編碼器和解碼器兩部分,兩者都由ResNet塊組成。編碼器將圖像表示壓縮為低分辨率圖像,解碼器將低分辨率解碼回高分辨率圖像。
為了防止U-Net在下采樣時丟失重要信息,通常在編碼器的下采樣的ResNet和解碼器的上采樣ResNet之間添加了捷徑的連接。
在Stable Diffusion的U-Net中添加了交叉注意層對文本嵌入的輸出進(jìn)行調(diào)節(jié)。交叉注意層被添加到U-Net的編碼器和解碼器ResNet塊之間。
3)Text-Encoder
文本編碼器將把輸入文字提示轉(zhuǎn)換為U-Net可以理解的嵌入空間,這是一個簡單的基于transformer的編碼器,它將標(biāo)記序列映射到潛在文本嵌入序列。從這里可以看到使用良好的文字提示以獲得更好的預(yù)期輸出。
2、為什么Latent Diffusion快速有效
Latent Diffusion之所以快速有效,是因?yàn)樗腢-Net是在低維空間上工作的。與像素空間擴(kuò)散相比,這降低了內(nèi)存和計(jì)算復(fù)雜度。例如,一個(3,512,512)的圖像在潛在空間中會變成(4,64,64),內(nèi)存將會減少64倍。
3、Stable Diffusion的推理過程
1)首先,模型將潛在空間的隨機(jī)種子和文本提示同時作為輸入。然后使用潛在空間的種子生成大小為64×64的隨機(jī)潛在圖像表示,通過CLIP的文本編碼器將輸入的文本提示轉(zhuǎn)換為大小為77×768的文本嵌入。
2)然后,使用U-Net 在以文本嵌入為條件的同時迭代地對隨機(jī)潛在圖像表示進(jìn)行去噪。 U-Net 的輸出是噪聲的殘差,用于通過scheduler 程序算法計(jì)算去噪的潛在圖像表示。 scheduler 算法根據(jù)先前的噪聲表示和預(yù)測的噪聲殘差計(jì)算預(yù)測的去噪圖像表示。
許多不同的scheduler 算法可以用于這個計(jì)算,每一個都有它的優(yōu)點(diǎn)和缺點(diǎn)。對于Stable Diffusion,建議使用以下其中之一:
-
PNDM scheduler (默認(rèn))
-
DDIM scheduler
-
K-LMS scheduler
去噪過程重復(fù)約50次,這樣可以逐步檢索更好的潛在圖像表示。一旦完成,潛在圖像表示就會由變分自編碼器的解碼器部分進(jìn)行解碼。