1. 前言
最近在研究如何使用Controlnet細(xì)粒度控制Stable Diffusion生成滿意的圖片,無(wú)奈自己本地的顯卡只有6G的顯存,而Controlnet的Openpose功能需要10G以上的顯存才能正常出圖。于是只能租用GPU云服務(wù)器并將SD模型部署在服務(wù)器上,然后再通過(guò)本地瀏覽器訪問(wèn)。
2. 關(guān)于云服務(wù)器的選擇
推薦這篇文章:GPU云服務(wù)器平臺(tái)對(duì)比!哪家最值得推薦?
自己使用的是AutoDL,但是并沒(méi)有使用它家自帶的Stable Diffusion模型,還是自己從頭開(kāi)始部署。不太推薦這家,原因是如果使用按量計(jì)費(fèi),關(guān)機(jī)后經(jīng)常會(huì)出現(xiàn)無(wú)卡可用的情況,尤其是3090這種熱門卡。
3. 關(guān)于機(jī)器的選擇
以AutoDL為例,注冊(cè)完成后來(lái)到以下界面選機(jī)器:
一般來(lái)說(shuō),現(xiàn)階段3090從價(jià)格、顯存大小各個(gè)方面綜合來(lái)看是比較好選擇,當(dāng)然也是經(jīng)常被一搶而空。
關(guān)于計(jì)費(fèi)方式,只推薦按量計(jì)費(fèi),很多有優(yōu)惠的平臺(tái)可以用1~2塊/小時(shí)租到3090的顯卡。除非是需要訓(xùn)練大模型,只是自己用的話不推薦包日/周/月,那價(jià)格1年自己都快能買一塊了。按量計(jì)費(fèi)的缺點(diǎn)就是關(guān)機(jī)后可能會(huì)因?yàn)榭臻e顯卡不足無(wú)法正常開(kāi)機(jī)。
AutoDL自帶了NovelAI,但是實(shí)際使用起來(lái)可能會(huì)有各種錯(cuò)誤,其中最多的是Python版本的問(wèn)題。我這個(gè)時(shí)間點(diǎn),它們的機(jī)器上自帶的都是Python3.8,但是最新版本的stable-diffusion需要3.10的環(huán)境,所以不推薦用它自帶的,而是選擇如下的配置:
這里需要提一下,一些出場(chǎng)早一點(diǎn)的顯卡可能會(huì)不讓使用CUDA11.8的環(huán)境(如RTX3080),所以這里還是推薦使用3090及以后的顯卡。
4. 部署Stable Diffusion
Python和CUDA
一般GPU服務(wù)器已經(jīng)自帶Python和顯卡驅(qū)動(dòng),建議使用服務(wù)器廠商自帶的,否則后續(xù)會(huì)出現(xiàn)很多問(wèn)題。
檢查pip源
這一步很重要。Stable Diffusion的更新速度很快,但是有一部分廠商的機(jī)器所使用的的pip源沒(méi)有及時(shí)更新,沒(méi)有SD所需要的一些依賴的最新版本,就會(huì)導(dǎo)致一直報(bào)錯(cuò)。
以autodl為例,我的機(jī)器默認(rèn)使用了華為源,導(dǎo)致自己在后續(xù)安裝依賴的時(shí)候facexlib和numpy一直找不到最新的版本,最后換成阿里源才成功解決,同時(shí)換源后記得再更新一下pip的版本。
具體的操作方式見(jiàn):pip換源 -pip更換國(guó)內(nèi)鏡像源
下載Stable Diffusion web UI
在終端中輸入以下命令,這里推薦部署在數(shù)據(jù)盤而不是系統(tǒng)盤,因?yàn)楹罄m(xù)還需要下載各種模型,占用空間較大。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
如果連接超時(shí),建議多試幾次,因?yàn)間it的連接有時(shí)很不穩(wěn)定。
嘗試運(yùn)行Stable Diffusion
下載完成后,進(jìn)入項(xiàng)目根目錄,執(zhí)行命令:
cd stable-diffusion-webui
COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py
其中l(wèi)aunch.py是執(zhí)行腳本,medvram和always-batch-cond-uncond都是顯存優(yōu)化的參數(shù);
port 6006指定進(jìn)程運(yùn)行在機(jī)器的6006端口上。因?yàn)閍utodl自帶了一個(gè)對(duì)外暴露的服務(wù),端口號(hào)為6006,所以這樣設(shè)置。當(dāng)然,也有其他的方法,會(huì)在后面說(shuō)明;
最后的REQS_FILE是運(yùn)行所需要的的依賴,命令執(zhí)行后會(huì)自動(dòng)安裝依賴。
使用命令手動(dòng)下載依賴
如果租用的是國(guó)內(nèi)節(jié)點(diǎn)的云服務(wù)器,大概率會(huì)碰到各種連接失敗和超時(shí)的問(wèn)題。比如:
The TLS connection was non-properly terminated
如果出現(xiàn)這種問(wèn)題推薦手動(dòng)下載。
基礎(chǔ)模型
首先在主目錄下創(chuàng)建repositories目錄:
mkdir repositories
Stable Diffusion web UI有四個(gè)依賴模型,需要分別下載。
StableDiffusion:
git clone https://github.com/CompVis/stable-diffusion.git repositories/stable-diffusion
taming-transformers:
git clone https://github.com/CompVis/taming-transformers.git repositories/taming-transformers
CodeFormer:
git clone https://github.com/sczhou/CodeFormer.git repositories/CodeFormer
BLIP:
git clone https://github.com/salesforce/BLIP.git repositories/BLIP
安裝完成后再次執(zhí)行命令,會(huì)自動(dòng)安裝剩下的依賴,當(dāng)然后續(xù)也可能因?yàn)檫B接超時(shí)而報(bào)錯(cuò):
COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py
python庫(kù)依賴
在安裝依賴的時(shí)候也可能會(huì)因?yàn)榫W(wǎng)絡(luò)而卡住,尤其是gfpgan庫(kù),這時(shí)候建議使用pip install命令手動(dòng)安裝依賴。如果出現(xiàn)類似以下錯(cuò)誤:
No matching distribution found for facexlib>=0.2.5
這是因?yàn)闊o(wú)法從pip中獲取最新版本的庫(kù),建議升級(jí)一下pip,并且檢查一下pip源是否太久沒(méi)更新。
本機(jī)下載依賴并上傳到服務(wù)器
如果網(wǎng)絡(luò)實(shí)在無(wú)法連接,則只能用本機(jī)下載模型并上傳到服務(wù)器上。
在Stable Diffusion的依賴中有一個(gè)v1-5-pruned-emaonly.safetensors模型需要從huggingface網(wǎng)站中下載,但是終端的下載速度巨慢。按量計(jì)費(fèi)每分每秒都是money,所以更推薦本地下載后直接上傳到服務(wù)器。這里以autodl的服務(wù)器為例。
下載模型
網(wǎng)址:
https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.safetensors
上傳服務(wù)器
常規(guī)可以使用Xshell的方式,詳情可以參加文檔:AutoDL數(shù)據(jù)上傳
我這里介紹通過(guò)阿里云盤(因?yàn)闆](méi)有限速)的方式上傳到autodl的服務(wù)器。
-
模型上傳至阿里云盤,如果沒(méi)有賬號(hào),需要先注冊(cè)。
-
在控制臺(tái)界面(開(kāi)機(jī)狀態(tài)),打開(kāi)AutoPanel:
- 打開(kāi)公網(wǎng)網(wǎng)盤,選擇阿里云盤,下方會(huì)出現(xiàn)一個(gè)二維碼,需要在手機(jī)上下載阿里云盤的app然后掃描并授權(quán)。
- 點(diǎn)擊下載,使用服務(wù)器從云盤中下載模型:
下載后的文件存放在數(shù)據(jù)盤的根目錄中,進(jìn)入數(shù)據(jù)存放的文件夾后,將模型移動(dòng)到項(xiàng)目主目錄:
mv v1-5-pruned-emaonly.safetensors stable-diffusion-webui/
后續(xù)其他模型都可以用這種方式上傳至服務(wù)器。
5. 運(yùn)行
前面所有依賴安裝完畢后,在項(xiàng)目主目錄下再次執(zhí)行命令:
COMMANDLINE_ARGS="--medvram --always-batch-cond-uncond --port 6006" REQS_FILE="requirements.txt" python launch.py
如果出現(xiàn)以下輸出則表示運(yùn)行成功:
使用autodl的情況下,在控制臺(tái)中點(diǎn)擊自定義服務(wù):
后面會(huì)出現(xiàn)提示,讓進(jìn)行實(shí)名,因?yàn)楸O(jiān)管進(jìn)一步收緊,如果不希望實(shí)名建議換其他服務(wù)器廠商。完成實(shí)名后就可以在本地瀏覽器中操作Stable Diffusion作畫了。
界面如下:
Controlnet使用成功!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-411747.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-411747.html
6. 參考
- https://zhuanlan.zhihu.com/p/386821676
- https://zhuanlan.zhihu.com/p/574200991
到了這里,關(guān)于在GPU云服務(wù)器中部署Stable Diffusion web UI的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!