五千字長文:Stable Diffusion 保姆級教程,附帶免費繪畫小程序
免費繪圖AI小程序 - 微信搜索小程序:創(chuàng)想AI繪畫




不同于ChatGPT可以直接體驗,Stable Diffusion需要自己部署后才能使用,所以國內(nèi)了解的人還不多。但Stable Diffusion絕對是AI圖像生成領(lǐng)域的ChatGPT級的殺手產(chǎn)品——它使用超級簡單、完全開源免費,生成的圖片以假亂真、震驚四座。今天,我將用萬字保姆級教程教你如何一步一步在本地運行起Stable Diffusion,并手把手教你如何生成以假亂真的AI生成圖片。
文章目錄
什么是Stable Diffusion
Stable Diffusion是一種潛在擴散模型(Latent Diffusion Model),能夠從文本描述中生成詳細的圖像。它還可以用于圖像修復(fù)、圖像繪制、文本到圖像和圖像到圖像等任務(wù)。簡單地說,我們只要給出想要的圖片的文字描述在提Stable Diffusion就能生成符合你要求的逼真的圖像!
Stable Diffusion將“圖像生成”過程轉(zhuǎn)換為逐漸去除噪聲的“擴散”過程,整個過程從隨機高斯噪聲開始,經(jīng)過訓(xùn)練逐步去除噪聲,直到不再有噪聲,最終輸出更貼近文本描述的圖像。這個過程的缺點是去噪過程的時間和內(nèi)存消耗都非常大,尤其是在生成高分辨率圖像時。Stable Diffusion引入潛在擴散來解決這個問題。潛在擴散通過在較低維度的潛在空間上應(yīng)用擴散過程而不是使用實際像素空間來減少內(nèi)存和計算成本。
與DALL·E和Midjourney相比,Stable Diffusion最大的優(yōu)勢是開源,這就意味著Stable Diffusion的潛力巨大、發(fā)展飛快。Stable Diffusion已經(jīng)跟很多工具和平臺進行了集成,且可用預(yù)訓(xùn)練模型數(shù)量眾多(參見Stable Diffusion資源列表)。正是由于社區(qū)的活躍,使得Stable Diffusion在各種風(fēng)格的圖像生成上都有著出色的表現(xiàn),隨便給大家看幾張我生成的圖片:
本地部署Stable Diffusion
本地部署Stable Diffusion最簡單的方法是使用Stable Diffusion Web Ui。
Stable Diffusion Web Ui是一套無代碼、可視化的Stable Diffusion集成運行環(huán)境。它將Stable Diffusion的安裝部署集成打包,提供一鍵安裝腳本,并提供Web界面操作界面,極大簡化了Stable Diffusion的操作和使用,讓沒有不懂代碼的小白也能輕松上手使用Stable Diffusion模型。
Stable Diffusion Web Ui界面

Stable Diffusion還是比較吃資源的,因此對基礎(chǔ)硬件有一定要求。
NVIDIA GPU 至少 6GB 顯存
至少 10GB 可用硬盤空間
上面的配置是Stable Diffusion運行起來的基礎(chǔ)要求,如果想要生成速度快,顯卡配置自然是越高越好,顯存最好也上到8G。推薦配置最好不低于:
NVIDIA RTX GPU 至少 16GB 顯存
至少 25GB 可用硬盤空間
如果本地機器配置達不到,可以考慮用云虛擬主機。
環(huán)境準(zhǔn)備
Stable Diffusion Web Ui用Python開發(fā),完全開源,因此在運行Stable Diffusion Web Ui前,我們需要安裝Git來拉取Stable Diffusion Web Ui源代碼,并安裝Python。
安裝Git
Git是一個開源的分布式版本控制系統(tǒng)。這里安裝Git是為了獲取Stable Diffusion Web Ui的代碼。當(dāng)然,如果不安裝Git,我們也可以通過代碼打包下載鏈接直接下載Stable Diffusion Web Ui的代碼,但是這樣獲取的代碼無法后續(xù)更新,每次Stable Diffusion Web Ui升級都要重新下載代碼覆蓋老版本代碼。用Git就很方便,可以通過clone命令從代碼庫獲取代碼,通過git pull更新到最新版代碼。
Git安裝很簡單,只需到Git下載頁面下載對應(yīng)平臺安裝包安裝即可(Linux發(fā)行版一般自帶Git可以不用安裝)。
Windows用戶請注意,安裝時在安裝配置界面勾選上“Add a Git Bash Profile to Windows Terminal”選項。
安裝Python
Python的安裝方法有很多,這里推薦大家通過Miniconda來安裝。用Miniconda有幾個好處:
方便創(chuàng)建和管理多個Python虛擬環(huán)境。我建議每個Python項目都創(chuàng)建一套自己獨立的Python虛擬環(huán)境,防止python環(huán)境或庫版本不對導(dǎo)致代碼運行出錯。
Miniconda體積很小,只有conda+python+pip+zlib和一些其他常用的包,小巧靈活。
大家只要到Miniconda下載頁面下載對應(yīng)平臺的安裝包即可,最新的Miniconda包含Python 3.10.9。
下載完安裝包直接雙擊安裝即可(Linux版本在Shell中運行下載下來的shell腳本)。Windows用戶請注意,當(dāng)看到下面界面時,請務(wù)必勾選第一個選項,將Miniconda添加到環(huán)境變量PATH中。
配置國內(nèi)源
由于 Python 第三方庫的來源是國外源,使用國內(nèi)網(wǎng)絡(luò)安裝庫時會出現(xiàn)下載緩慢、卡頓等現(xiàn)象,不僅耽誤時間,而且很容易安裝失敗。因此我們需要將 conda 的安裝源替換成國內(nèi)鏡像,這樣可以大幅提升下載速度,提高安裝成功率。這里推薦清華源,執(zhí)行下方命令即可添加:
添加成功后可以通過conda config --show-sources查看當(dāng)前源
除了清華源,還可以添加中科大源或阿里云源
中科大的源
阿里云的源
最后,運行conda clean -i清除索引緩存,保證用的是鏡像站提供的索引。
安裝Stable Diffusion Web Ui
環(huán)境配置好后,我們就可以開始安裝Stable Diffusion Web Ui了。
首先從GitHub上下載Stable Diffusion Web Ui的源代碼:
下載完成后,cd stable-diffusion-webui進入Stable Diffusion Web Ui的項目目錄,在項目目錄里會看到webui.bat和webui.sh這兩個文件,這兩個文件就是Stable Diffusion Web Ui的安裝腳本。
如果你是Windows系統(tǒng),直接雙擊運行webui.bat文件
如果你是Linux系統(tǒng),在控制臺運行./webui.sh
如果你是Mac系統(tǒng),使用方法跟Linux相同
安裝腳本會自動創(chuàng)建Python虛擬環(huán)境,并開始下載安裝缺失的依賴庫。這個過程可能會有點久,請耐心等待。如果中途安裝失敗,多半是網(wǎng)絡(luò)連接超時,此時可以重新執(zhí)行安裝腳本,腳本會接著上次的下載安裝位置繼續(xù)安裝。直到看到
用瀏覽器打開http://127.0.0.1:7860就會看到Stable Diffusion Web Ui的界面。
說明Stable Diffusion Web Ui安裝成功。
Stable Diffusion Web Ui界面
模型安裝
Stable Diffusion Web Ui安裝過程中會默認下載Stable Diffusion v1.5模型,名稱為v1-5-pruned-emaonly。如果想用最新的Stable Diffusion v2.1,可以從Hugging Face上下載官方版本
stabilityai/stable-diffusion-2-1。下載后將模型復(fù)制到models目錄下的Stable-diffusion目錄即可。完成后點擊頁面左上角的刷新按鈕,即可在模型下拉列表中看到新加入的模型。
Stable Diffusion Web Ui選擇模型
除了標(biāo)準(zhǔn)模型外,Stable Diffusion還有其他幾種類型的模型,models目錄下每一個子目錄就是一種類型的模型,其中用的最多的是LoRA模型。
LoRA(Low-Rank Adaptation)模型是小型穩(wěn)定擴散模型,可對標(biāo)準(zhǔn)模型進行微調(diào)。它通常比標(biāo)準(zhǔn)模型小10-100倍,這使得LoRA模型在文件大小和訓(xùn)練效果之間取得了很好平衡。LoRA無法單獨使用,需要跟標(biāo)準(zhǔn)模型配合使用,這種組合使用方式也為Stable Diffusion帶來了強大的靈活性。
LoRA模型下載后需要放到Lora目錄中,使用時在提示中加入LoRA語法,語法格式如下:
filename是LoRA模型的文件名(不帶文件后綴)
multiplier 是LoRA 模型的權(quán)重,默認值為1,將其設(shè)置為 0 將禁用該模型。
關(guān)于Stable Diffusion提示的使用規(guī)則請參考這里。
使用Stable Diffusion Web Ui
界面介紹
Stable Diffusion Web Ui整體上分為2個部分,最上面是模型選擇,可以從下拉列表中選擇已下載的預(yù)訓(xùn)練模型
模型選擇下面是一個Tab欄,這里是Stable Diffusion Web Ui提供的所有功能。

Stable Diffusion Web Ui功能模塊
txt2img — 根據(jù)文本提示生成圖像;
img2img — 根據(jù)提供的圖像作為范本、結(jié)合文本提示生成圖像;
Extras — 優(yōu)化(清晰、擴展)圖像;
PNG Info — 顯示圖像基本信息
Checkpoint Merger — 模型合并
Train — 根據(jù)提供的圖片訓(xùn)練具有某種圖像風(fēng)格的模型
Settings — 系統(tǒng)設(shè)置
平時使用最多的是txt2img 和 img2img,下面針對這2大塊功能詳細講解。
txt2img有三個區(qū)域:
提示區(qū)主要是2個文本框,可以輸入提示文本。其中:
prompt:?主要是對于圖像進行描述。prompt對Stable Diffusion圖像生成質(zhì)量至關(guān)重要,因此如果想生成高質(zhì)量圖片,一定要在提示設(shè)計上下功夫。一個好的提示需要詳細和具體,后面會專門講解如何設(shè)計一個好的提示。
Negative prompt:主要是告訴模型我不想要什么樣的風(fēng)格或元素;
參數(shù)調(diào)節(jié)區(qū)提供了大量參數(shù)用于控制和優(yōu)化生成過程:
Sampling method:擴散去噪算法的采樣模式,不同采樣模式會帶來不一樣的效果,具體需要在實際使用中測試;
Sampling steps:模型生成圖片的迭代步數(shù),每多一次迭代都會給 AI 更多的機會去對比 prompt 和 當(dāng)前結(jié)果,從而進一步調(diào)整圖片。更高的步數(shù)需要花費更多的計算時間,但卻不一定意味著會有更好的結(jié)果。當(dāng)然迭代步數(shù)不足肯定會降低輸出的圖像質(zhì)量;
Width、Height:輸出圖像寬高,圖片尺寸越大越消耗資源,顯存小的要特別注意。一般不建議設(shè)置的太大,因為生成后可以通過 Extras 進行放大;
Batch count、 Batch size:控制生成幾張圖,前者計算時間長,后者需要顯存大;
CFG Scale:分類器自由引導(dǎo)尺度,用于控制圖像與提示的一致程度,值越低產(chǎn)生的內(nèi)容越有創(chuàng)意;
Seed:隨機種子,只要種子一樣,參數(shù)和模型不變,生成的圖像主體就不會劇烈變化,適用于對生成圖像進行微調(diào);
Restore faces:優(yōu)化面部,當(dāng)對生成的面部不滿意時可以勾選該選項;
Tiling:生成一張可以平鋪的圖像;
Highres. fix:使用兩個步驟的過程進行生成,以較小的分辨率創(chuàng)建圖像,然后在不改變構(gòu)圖的情況下改進其中的細節(jié),選中該選項會有一系列新的參數(shù),其中重要的是:
Upscaler:縮放算法;
?Upscale by:放大倍數(shù);
Denoising strength:決定算法對圖像內(nèi)容的保留程度。0什么都不會改變,1會得到一個完全不同的圖像;
img2img
img2img跟txt2img界面類似,不同的是沒有了txt2img中的參數(shù)調(diào)節(jié)區(qū),取而代之的是圖像范本區(qū)。
img2img功能區(qū)
我們可以上傳范本圖片讓Stable Diffusion模仿,其他地方跟txt2img相同
版權(quán)聲明:本文為CSDN博主「JarodYv」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:萬字長文:Stable Diffusion 保姆級教程