今天來給大家做一個AMD顯卡使用stable diffusion的小白(硬核)教程。最近這段時間AI特別火,很多小伙伴看到各種大佬用AI畫的老婆非常精美(色情),弄的人心癢癢,自己也想畫一個心儀的老婆(畫作)。

太露骨的圖片不能放,你們懂得?。?/span>
但是很多小伙伴用的是AMD的獨立顯卡,而自從礦潮以來,顯卡價格就居高不下,特別是英偉達的顯卡,雖然它用AI作圖有優(yōu)勢,但是貴的嚇人,從哥布林洞窟里解救出來的RTX3070也還要2000多,簡直離譜。本教程呢適用于只有一張amd的顯卡,不想換英偉達顯卡(窮),又想玩stable diffusion的小伙伴。
那么今天呢我用的是ubuntu 20.4.5桌面版系統(tǒng)部署stable diffusion的教程,保證你能順利跑起stable diffusion,因為我是從一個完全不懂linux系統(tǒng)的小白找教程一步一步部署下來的,你也能行!
要部署stable diffusion的話需要滿足下面三個條件:
第一,要有一個128G以上的硬盤空間,用于安裝ubuntu系統(tǒng)。
第二,最好要有一個科學(xué)上網(wǎng)的環(huán)境。
第三,要有成功部署的決心,遇到什么問題呢就解決什么問題,不要隨便放棄,跟著我一步一步來。
本次的部署環(huán)境呢,是AMD的獨立顯卡RX6600。下圖呢是支持AMD顯卡部署stable diffusion的型號,從470到580、vega56、64、duo、五千以及六千系列,幾乎涵蓋了主流的AMD顯卡型號。

首先,我們需要安裝Ubuntu20.4.5桌面版系統(tǒng)的安裝我就不詳細講了,很基礎(chǔ),大概十分鐘就能裝好。為什么需要大家安裝新系統(tǒng)呢,因為已有的ubuntu系統(tǒng)會因為我們裝的一些軟件會產(chǎn)生奇奇怪怪的問題。
本次部署呢,分為以下三個部分:
第一,python3.10.6的安裝。
第二,安裝ROCM與pytorch
第三,安裝stable-diffusion
第一部分:安裝python3.10.6
我們進入系統(tǒng)以后呢,需要安裝python3.10.6,因為ubuntu20.4.5呢自帶的是python3.8.10。本次安裝的stable diffusion需要跑在python3.10.6環(huán)境下,當(dāng)然更高版本的也能跑,只是我沒試過。
1.安裝依賴 如果出現(xiàn)選擇,輸入Y。
sudo -i
sudo apt-get update
sudo apt-get upgrade
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev
2.從官網(wǎng)下載源文件
wget https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz
3.解壓縮Python3.10文件
①先通過find命令找到Python-3.10.6.tgz的下載在哪里了:
find / -name Python-3.10.6.tgz
②接著轉(zhuǎn)換路徑至home:
cd /home/
③將python3.10從/root/Python-3.10.6.tgz(第①步找到的路徑,紅色的是我的路徑)的文件復(fù)制到home文件夾下:
cp /root/Python-3.10.6.tgz /home/
④然后將文件解壓至home文件夾下:tar -zvxf Python-3.10.6.tgz
tar -zvxf Python-3.10.6.tgz
4.開始安裝python3.10.6
cd Python-3.10.6/
./configure --enable-optimizations
5.編譯:make(沒有安裝make命令的安裝一下)
make
6.安裝sudo make install
sudo make install
這樣python3.10就安裝完成了。
最后,我們需要更新一下python讓python默認指向為python3.10
1.更新python默認指向有以下兩個方法:
(下面這兩個方法是或的關(guān)系,不是且的關(guān)系!當(dāng)然,你也可以都做一遍。)
①建立軟連接
首先,刪除原有鏈接
rm /usr/bin/python
其次,找到python3的安裝路徑(我的是在/usr/local/bin/python3)
which python3
然后,找到的路徑建立新鏈接
ln -s /usr/local/bin/python3 /usr/bin/python
這樣輸入python就可以了。
②設(shè)置python的環(huán)境變量(需要搜索vim編輯器的用法)
首先,編輯.bashrc文件
vim ~/.bashrc
在這里寫入自己剛剛安裝python3.10的路徑:
alias python='/usr/local/bin/python3'
然后:
source ~/.bashrc
python
這樣就可以了!
2.更新pip默認指向
pip指向pip3也是如上的兩個辦法。
這里只展示方法①(如果新裝的系統(tǒng)就直接用我的命令):
which pip3
ln -s /usr/local/bin/pip3 /usr/bin/pip
pip
到這里,小伙伴們可以愉快的使用python3.10了!
我們回到主界面,輸入 python -V 返回python 3.10.6 就說明部署成功了。
第二部分:安裝ROCM與pytorch
1.ROCM的簡介
ROCM和NVDIA的CUDA類似,ROCM是AMD發(fā)布的一個用于加速GPU計算的軟件平臺。而該平臺從面世至今僅支持Linux系統(tǒng),因此本文的一切操作都將在Linux系統(tǒng)下進行。
2.ROCm的配置
2.1 查看顯卡型號
由于AMD每更新一次ROCm就拋棄一批老型號顯卡支持的不做人行為,安裝前確認自己的顯卡是否能支持就變成了一件很重要的事。
上表包括了大部分常見的A卡型號,以世代分類。 不在表中的可以去這里輸入自己顯卡的型號,找到Graphics/Compute這一列會有說明。

2.2 ROCm環(huán)境的準(zhǔn)備
2.2.1 軟件包安裝
首先安裝AMD顯卡驅(qū)動:
sudo apt-get update
wget https://repo.radeon.com/amdgpu-install/5.3/ubuntu/focal/amdgpu-install_5.3.50300-1_all.deb
sudo apt-get install ./amdgpu-install_5.3.50300-1_all.deb
執(zhí)行安裝操作:
sudo amdgpu-install --usecase=hiplibsdk,rocm --no-dkms
如有另外安裝顯卡驅(qū)動的需求,就刪去后面的 --no-dkms
…漫長的等待…(大概需要一個小時左右,和網(wǎng)絡(luò)狀況關(guān)系很大)
如果順利的話基本不會出現(xiàn)報錯,本著warnings不用管的原則直接進入下一步即可。
真報錯了原因一般是Linux內(nèi)核版本不一致造成部分編譯不通過,可以查看AMD的官方文檔來確定所需的Linux內(nèi)核版本。
查看系統(tǒng)內(nèi)核版本:終端輸入 uname -r
以樓主安裝的ROCM5.3.0為例,對應(yīng)的內(nèi)核版本是5.15.0-46-generic,實際系統(tǒng)中是5.15.0-50-generic,安裝時未出現(xiàn)報錯。
2.2.2 后續(xù)配置
添加用戶組:
sudo usermod -a -G video $LOGNAME
sudo usermod -a -G render $LOGNAME
配置環(huán)境變量:
echo 'export PATH=$PATH:/opt/rocm-5.3.0/bin:/opt/rocm-5.3.0/opencl/bin'
export LD_LIBRARY_PATH=/opt/rocm-5.3.0/lib:/opt/rocm-5.3.0/lib64
安裝完成后重啟:
sudo reboot
2.2.3 測試
打開終端輸入rocminfo或rocm-smi,會出現(xiàn)當(dāng)前設(shè)備信息和狀態(tài)。
設(shè)備信息里出現(xiàn)GPU,且能正常顯示顯卡狀態(tài),即代表ROCM環(huán)境安裝成功。
3 .運行庫的補充及pytorch的安裝
安裝完成后仍需補充一些額外的運行庫以免報錯,測試時按照提示缺什么補什么即可,一般情況下需要補的有這些:
sudo apt install git python3 python3-pip python3-venv rocm-libs miopen-hip rccl libtinfo5 libopenmpi3 libopenblas-dev
pytorch安裝,直接去官網(wǎng)下最新的就行
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2
4 .環(huán)境配置綜合測試(本條可以不做?。?!已經(jīng)試過出錯好像也沒問題)
這里使用 https://github.com/xuhuisheng/rocm-build 提供的檢查程序,可以clone或直接下載下來。
找到里面的check文件夾,終端下運行check.sh和另外3個py:
sh check.sh
python test-pytorch-device.py
python test-pytorch-fc.py
python test-pytorch-rocblas.py
運行不報錯即可認為ROCm、pytorch環(huán)境配置正確。
第三部分:stable-diffusion的本地部署
把stable diffusion軟件本體clone下來,參照官方文檔說明部署即可。
因為已經(jīng)在之前的步驟中安裝了pytorch,此處可不用安裝。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
python -m venv venv
source ./venv/bin/activate
python -m pip install --upgrade pip wheel
python launch.py --precision full --no-half
可能發(fā)生的錯誤:
錯誤1:torch unable to use gpu....
解決辦法:
#打開launch.py找到這句代碼
安裝vim編輯器(已經(jīng)安裝過的可以不用管)
apt-get install vim
進入軟件目錄
cd /root/stable-diffusion-webui
編輯launch.py
vim launch.py
按“i”修改文件:
將
commandline_args = os.environ.get('COMMANDLINE_ARGS', "")
#改成
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--skip-torch-cuda-test")
按ESC然后輸入 :wq回車保存
錯誤2:No module named ‘_lzma‘
解決辦法:
打開python3
cd /usr/local/lib/python3.10
安裝
apt-get install liblzma-dev -y
pip3 install backports.lzma
環(huán)境中修改lzma.py位置依自己的環(huán)境路徑而定,新裝系統(tǒng)和我的路徑是一樣的不用改
然后
cd /usr/local/lib/python3.10
編輯
vim lzma.py
按“i”修改文件,如下的部分:
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties
修改成如下:
try:
from _lzma import *
from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
from backports.lzma import *
from backports.lzma import _encode_filter_properties, _decode_filter_properties
按ESC然后輸入 :wq回車保存
錯誤3:No module named 'backports'
pip3 install backports.lzma
apt-get update
apt-get upgrade
重新啟動一下 stable diffusion
cd stable-diffusion-webui
source ./venv/bin/activate
python launch.py --precision full --no-half
cd /usr/local/lib/python3.10
cd ..
python
import lzma
然后就可以退出了
首次運行時會安裝依賴包,所以依舊是漫長的等待…
模型文件需放置在stable-diffusion-webui/models/Stable-diffusion/ 文件夾下??梢蕴崆胺胖?,不放也可以,只是第一次回下載默認模型包有點慢。
跑完出現(xiàn)127.0.0.1:7860即代表部署成功,瀏覽器中輸入127.0.0.1:7860可打開webUI。
stable-diffusion的運行,及常用參數(shù)
后續(xù)運行只需要輸入:
cd /root/stable-diffusion-webui
HSA_OVERRIDE_GFX_VERSION=10.3.0 python launch.py --precision full --no-half
如果第一次運行顯卡不工作,是CPU在跑圖,則需要重啟下電腦。然后取得root權(quán)限再運行,即:
sudo -i
輸入密碼就可以了
瀏覽器中輸入 127.0.0.1:7860 即可打開webUI。
然后就可以愉快的玩耍啦?。。?/span>
------------------------------------------------------------------------------------------------
分割線
常用參數(shù):
--precision full 和 --no-half:強制雙精度浮點運算(據(jù)說在N卡上可以減少綠屏bug出現(xiàn)的幾率,A卡上不知道有啥用)
--medvram 和 --lowvram:降低顯存占用量,視自己顯卡水平加不加。
--opt-split-attention-v1:性能優(yōu)化,進一步降低顯存占用量。
至于具體能降低多少,樓主之前在只有4G顯存的R9 nano上運行時使用了--medvram和--opt-split-attention-v1,顯存占用大概25%的樣子。
--disable-safe-unpickle:加載模型前有一步unpickle(原理不明,類似于哈希校驗)的過程,部分用戶在這里可能報錯中止,加上這個參數(shù)跳過這一步可繼續(xù)運行。
詳細參數(shù)表見AUTOMATIC1111的文檔說明。
視頻教程地址:
https://www.bilibili.com/video/BV1gs4y1H7Uq/?spm_id_from=333.999.0.0&vd_source=798c720594d31bfcbf5d2a56af4707f4文章來源:http://www.zghlxwxcb.cn/news/detail-779415.html
https://www.youtube.com/watch?v=FLOtfHvX8NE文章來源地址http://www.zghlxwxcb.cn/news/detail-779415.html
到了這里,關(guān)于AMD顯卡Ubuntu20.4系統(tǒng)下部署stable diffusion的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!