開源免費(fèi)繪畫AI:Stable Diffusion本地安裝部署和使用步驟,老是報(bào)錯(cuò)的小伙伴可以看看

? ? 注意,本文章部署的是基于命令行的stable?diffusion,如果需要GUI請(qǐng)移步webgui版,網(wǎng)頁(yè)版?https://huggingface.co/spaces/stabilityai/stable-diffusion
????前幾天看到現(xiàn)在AI繪畫好像有點(diǎn)東西,就想自己來(lái)試試搞一個(gè)玩玩。目前你可以在網(wǎng)上找到網(wǎng)頁(yè)版的AI繪圖,但網(wǎng)頁(yè)版的由于能輸入的參數(shù)有限,無(wú)法發(fā)揮stable diffusion的全部功能(某些無(wú)良網(wǎng)站說(shuō)不定還要收你錢,交智商稅了屬于是)。今天來(lái)講講如何在自己電腦上安裝一個(gè)stable?diffusion,不但不用交智商稅還能使用更多功能。
????最開始的時(shí)候我安裝的是main支的(github鏈接:https://github.com/CompVis/stable-diffusion),但是按照他給的步驟安裝后死活用不了,一用就報(bào)錯(cuò),各種報(bào)錯(cuò)都有(包括缺少moduel),你pip install 缺少的庫(kù)沒(méi)用,刪除虛擬環(huán)境后重新安裝也不頂用,于是后來(lái)到處找資料,終于找到一個(gè)靠譜的(鏈接https://kil0bit.blogspot.com/2022/09/how-to-install-stable-diffusion-on.html 感謝這位大佬的文章指點(diǎn)),下面主要講一講如何安裝這個(gè)AI,按步驟來(lái)基本上不會(huì)不成功(由于需要下載包,有可能要掛梯子才行)。步驟盡量不要搞錯(cuò)順序,指不定就會(huì)遇到各種各樣的問(wèn)題,會(huì)報(bào)錯(cuò)導(dǎo)致無(wú)法使用。
下載Anaconda
????anaconda相信做python和ai相關(guān)的朋友們應(yīng)該都知道,沒(méi)用過(guò)的也沒(méi)關(guān)系,你去下載一個(gè)安裝好就行,官網(wǎng)鏈接https://www.anaconda.com/products/distribution#macos 你要是實(shí)在不知道怎么安裝,可以自己去百度知乎看看別人的教程,這里不多講了。我的anaconda安裝在D盤,也就是D:\Anaconda
下載stable?diffusion
????從GitHub上下載stable?diffusion本體,如果你的顯卡夠牛逼,顯存夠大(10GB),那么你可以選擇下載main支(https://github.com/CompVis/stable-diffusion),但是不推薦,因?yàn)槲抑跋螺d這個(gè)安裝老是出問(wèn)題,一用就報(bào)錯(cuò)。推薦下載?lstein?

下載的時(shí)候點(diǎn)Code按鈕的Download Zip,下載好后解壓到你喜歡的地方,我選擇直接解壓到C盤,也就是C:\InvokeAI-main。按照習(xí)慣給這個(gè)文件夾重命名一下,就變成了C:\stable-diffusion

下載模型包
????模型包就是stable?diffusion的靈魂,也就是開發(fā)者耗盡無(wú)數(shù)心血訓(xùn)練出來(lái)的繪畫模型。不同的模型畫出來(lái)的畫是不一樣的,模型可以換,下面以官方的默認(rèn)模型做演示。stable?diffusion提供了模型包的下載,在https://huggingface.co/CompVis/stable-diffusion-v-1-4-original 這個(gè)網(wǎng)站需要注冊(cè),自己去注冊(cè)一個(gè)賬號(hào),注冊(cè)好后點(diǎn)擊這個(gè)Access repository才能下載模型(所有模型都必須先點(diǎn)這個(gè)按鈕才能下載)

點(diǎn)完之后,點(diǎn)Files and versions?

紅色框框圈出來(lái)的兩個(gè)文件,一個(gè)大一個(gè)小,隨便下哪個(gè)都行,不過(guò)大的應(yīng)該更好,我下的大的。
安裝模型包
先進(jìn)入stable-diffusion\models\ldm,然后新建一個(gè)文件夾叫stable-diffusion-v1

之后,把剛剛下載的模型包重命名為model.ckpt移動(dòng)到這個(gè)stable-diffusion-v1文件夾中,如圖所示

至此,模型的安裝就做好了,如果這一步?jīng)]做對(duì),到時(shí)候AI就找不到模型,運(yùn)行不了
搭建虛擬環(huán)境
????這一步開始就要用到剛剛下載好的anaconda了,進(jìn)入anaconda有兩種方式,一種是直接進(jìn)anaconda,另一種是通過(guò)cmd進(jìn)去,這兩種方法沒(méi)有區(qū)別,要是搞不明白就按照我的辦法來(lái)吧。因?yàn)檫@一步需要下載文件(挺大的,好幾個(gè)G吧),我掛了梯子(不掛梯子行不行我不知道),而一般梯子只能支持cmd代理,沒(méi)法給所有應(yīng)用都代理上(當(dāng)然如果你有全局代理就不用管了),所以我選擇開cmd進(jìn)入anaconda。先打開cmd(按Win+R輸入cmd),進(jìn)入anaconda的安裝位置(我安裝在D:\Anaconda)下的Scripts文件夾。
????提示:cmd打開默認(rèn)在C盤下,如果需要切換盤符,不能使用cd命令,而是直接輸入盤符名稱(我的是D:),注意標(biāo)點(diǎn)符號(hào)要用英文的。當(dāng)進(jìn)入你想要的盤符后,就可以使用cd命令進(jìn)入你想進(jìn)入的位置,用法是cd 路徑
????進(jìn)入scripts文件夾后,輸入 activate base

這樣,就成功從cmd進(jìn)入anaconda了。當(dāng)然你可以直接進(jìn)入anaconda,直接桌面左下角搜索anaconda,點(diǎn)開就能進(jìn)去

直接進(jìn)去就行,不需要多余的步驟。我用cmd進(jìn)去純粹是因?yàn)槲业奶葑硬恢С秩执恚荒艽韈md(我用的Clash)。

進(jìn)入anaconda之后,需要進(jìn)入stable?diffusion的文件夾(我的是C:\stable-diffusion),方法和上面一樣,可以看我的圖

進(jìn)去之后,就可以開始創(chuàng)建虛擬環(huán)境了。輸入conda env create -f?environment.yaml
這一步會(huì)下載很多東西,有點(diǎn)費(fèi)時(shí)間,你慢慢等就行,切記不要中途中斷(比如直接把a(bǔ)naconda的窗口關(guān)了),如果你中斷了,那么你需要先刪除這個(gè)“半成品虛擬環(huán)境”再重新創(chuàng)建虛擬環(huán)境。方法是輸入 conda remove -n ldm --all
這是刪除虛擬環(huán)境的指令,輸入這個(gè)指令后他會(huì)問(wèn)你是否移除下列包,你需要輸入y/n(也就是yes/no),輸入 y 即可。
????搭建成功后,你的界面應(yīng)該是這樣的(如果不是這樣的,比如說(shuō)一堆紅字或者報(bào)錯(cuò),那么就說(shuō)明虛擬環(huán)境搭建失敗,需要使用?conda remove -n ldm --all 刪除虛擬環(huán)境并重新用?conda env create -f?environment.yaml 搭建。如果還是搭建失敗的話,那就掛梯子吧)

預(yù)加載模型
????搭建成功后,輸入 conda activate ldm 來(lái)進(jìn)入我們搭建好的虛擬環(huán)境(這個(gè)虛擬環(huán)境名稱叫l(wèi)dm),然后輸入 python?scripts\preload_models.py?來(lái)預(yù)加載模型。這一步同樣需要下載很多東西

下載好后,你的界面應(yīng)該是下面這樣的

看見下面那個(gè)success就成功了。至此,stable?diffusion的全部安裝步驟已經(jīng)完畢。如果沒(méi)有安裝成功,那就刪掉虛擬環(huán)境從頭再來(lái),能掛梯子就掛梯子。
使用Stable Diffusion
????這個(gè)InvokeAI支使用方法和main支稍微有些不一樣,為了使用它,你需要先從anaconda進(jìn)入stable diffusion文件夾,再啟用ldm虛擬環(huán)境(參看上文,這里不多講),然后輸入?python scripts/dream.py 之后(這一步是初始化),就可以使用stable?diffusion了。如果需要給stable?diffusion傳遞初始參數(shù),可以使用?python?scripts/dream.py -h?來(lái)查看可以傳遞哪些初始參數(shù)(如計(jì)算精度等),例如以全精度模式啟動(dòng)stable?diffusion的指令就是 python scripts/dream.py -F?

如果你不知道如何使用stable?diffusion,可以輸入 -h 來(lái)獲取幫助,里面詳細(xì)介紹了指令格式和各個(gè)參數(shù),這里不多講

例如,要生成一個(gè)玫瑰花園的圖片,指令是 "Rose flower garden"?-W512 -H512 -s100 -n1?,其中第一個(gè)參數(shù)用來(lái)描述你想生成的圖片,需要用英文描述,引號(hào)可加可不加,我習(xí)慣加上。W表示width,即圖片寬度,H表示height,即圖片高度,s表示step,即生成圖片的步數(shù),n表示number,即生成圖片的張數(shù),還有更多可以控制的參數(shù),如種子S(seed)、圖片與描述的相關(guān)度f(wàn)(prompt strength)等等,你自己去看help慢慢鉆研,注意大小寫。生成圖片的速度取決于你的GPU,一般圖片尺寸最好不要太大,不然超級(jí)慢。如果你實(shí)在想要高清大圖,奈何自己顯卡太渣,可以先用stable diffusion生成一個(gè)低清晰度的,再用waifu2x(http://waifu2x.udp.jp/)生成高清大圖。生成的結(jié)果圖片默認(rèn)放在stable-diffusion\outputs\img-samples文件夾下(可以通過(guò)指定參數(shù)更改輸出路徑,但沒(méi)必要)
如果沒(méi)有正確生成圖片怎么辦
????有可能生成的圖片全都是純綠色的,或者別的什么顏色,總之就是純色圖片,那么你可以參考?https://github.com/CompVis/stable-diffusion/issues/69?來(lái)試試別人的解決辦法(我也遇到了,看哪天如果解決了再寫篇文章講講)。如果實(shí)在不行,還是老老實(shí)實(shí)去玩網(wǎng)頁(yè)版吧(文章開頭給出了鏈接),或者去谷歌的colab在線運(yùn)行(https://colab.research.google.com/github/woctezuma/stable-diffusion-colab/blob/main/stable_diffusion.ipynb#scrollTo=AUc4QJfE-uR9 需要掛梯子)