MacBook Pro部署Stable Diffusion WebUI筆記 (六)Pytorch的配套安裝
安裝?pytorch主要是考慮使用ComfyUI來(lái)配套新出的SDXL1,而不是升級(jí)目前的webui。因?yàn)槟壳霸谑褂玫膚ebUI1.3.1和配套插件作圖流程相對(duì)穩(wěn)定,不希望升級(jí)以后帶來(lái)的變化導(dǎo)致整個(gè)流程要重新調(diào)整,而且聽(tīng)說(shuō)新的模型更容易爆內(nèi)存/顯存,使用ComfyUI會(huì)好一點(diǎn)。
按照ComfyUI主頁(yè)(https://github.com/comfyanonymous/ComfyUI)的說(shuō)法,?pytorch是要求安裝的。我之前有安裝過(guò)一個(gè),后來(lái)又卸載了,只能重新來(lái)過(guò)。而?pytorch本身又要求一些配套,之前沒(méi)太搞懂,這次弄完稍微又了解了一點(diǎn)點(diǎn)。
主要參考的文章是如下這個(gè)地址的:
https://developer.apple.com/metal/pytorch/
大概三個(gè)關(guān)鍵內(nèi)容如下,一個(gè)是anaconda,一個(gè)是如何驗(yàn)證pytorch安裝成功以及如何驗(yàn)證pytorch的版本,這是我之前非常困擾的一個(gè)部分。最后一個(gè)是如何創(chuàng)建pytorch環(huán)境。
在開(kāi)始之前先羅列幾個(gè)在終端里檢查版本信息的命令:
pip3 --version
我這里返回的是pip 22.2.1 from /library/framework/version/3.10/lib/python3.10/site-packags/pip (python 3.10)
python3 --version
我這里返回的是Python 3.10.6
一)安裝和驗(yàn)證anaconda
我是通過(guò)在官網(wǎng)下載安裝包的方式安裝,下載的文件叫Anaconda3-2023.07-1-MacOSX-arm64.pkg,直接運(yùn)行就行。有的材料會(huì)推薦安裝miniconda,好像是安裝完會(huì)小很多。
安裝之后在終端輸入
conda info
會(huì)返回很多anaconda的相關(guān)信息,如果只是想看看anaconda的版本,可以輸入
conda --version
我這里返回的是conda 23.5.2
二)安裝和驗(yàn)證pytorch
首先我也是上官網(wǎng),我選擇的是pytorch預(yù)覽版(Nightly)以及 Pip Package,因此它給我的命令行是如下這樣的:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
然后就會(huì)進(jìn)入Collecting torch的進(jìn)程,都跑完之后會(huì)出現(xiàn)一個(gè)Successfully installed torch、torchvision、torchaudio的信息。我這里還有一條報(bào)警:
WARNING: There was an error checking the latest version of pip.
嚇了一跳,不過(guò)還好后續(xù)沒(méi)受到什么影響。
然后就是驗(yàn)證的部分了,驗(yàn)證的部分我卡了很久,因?yàn)榫W(wǎng)絡(luò)的材料里給的驗(yàn)證命令都是好幾行的,我完全搞不懂要在哪里輸入這些。在終端里輸入就會(huì)報(bào)錯(cuò)。后來(lái)我才發(fā)現(xiàn),要在終端里先輸入:
python
然后終端就特么變了?。?!這個(gè)>>>出現(xiàn)以后,很多指令才能被理解和執(zhí)行。這對(duì)很多有基礎(chǔ)的人來(lái)說(shuō)可能根本不是問(wèn)題,我這個(gè)完全不懂python的就瞎了半天。不過(guò)這里返回的是python 3.11.3和我自己裝的那個(gè)版本不一樣,而且后面還會(huì)再多一個(gè)pythonT—T

對(duì)應(yīng)進(jìn)入python,退出的指令是:
exit()
在python模式下,很多東西就可以整了。比如上圖里面的platform()可以看到mac系統(tǒng)的信息。然后就可以驗(yàn)證pytorch了,進(jìn)入python模式,輸入兩行內(nèi)容:
>>>import torch
>>>torch --version--
我這里返回的是‘2.0.1’,這是torch的版本號(hào)
再輸入
>>>torch.device("mps")
我這里返回的是device(type='mps'),這里我就看不懂了,按材料的意思是返回這個(gè)就是安裝成功了。
我還做了另外一組驗(yàn)證,雖然還是看不懂,但是好像也說(shuō)明裝上了,如下圖:

就在我以為大功告成的時(shí)候,忽然發(fā)現(xiàn)好像還沒(méi)有完?。?!
三)創(chuàng)建pytorch環(huán)境
我一直以為裝上了pytorch,就是有了pytorch環(huán)境了,結(jié)果好像并不是這樣。這是一個(gè)環(huán)境驗(yàn)證的指令,直接在終端輸入就行:
conda info --envs
返回的內(nèi)容會(huì)告訴你有幾個(gè)conda環(huán)境,默認(rèn)的情況下只有一個(gè)base環(huán)境。因此,需要?jiǎng)?chuàng)建一個(gè)pytorch的,我輸入了如下命令:
conda create -n pytorch python=3.10
這里的python我打了3.10是因?yàn)槲易约貉b的python是3.10.6的,結(jié)果后續(xù)創(chuàng)建的過(guò)程里anaconda又給我打包了一個(gè)python3.10.12塞到了新建的python環(huán)境里!不管怎么樣,在跑了一大堆東西之后,如下圖再驗(yàn)證環(huán)境,除了原來(lái)的base之外,有了一個(gè)叫pytorch的環(huán)境。

單單有是不夠的,還要激活這個(gè)環(huán)境。指令如下:
conda activate pytorch
回車(chē)之后,會(huì)發(fā)現(xiàn)mac名稱的前面,由原來(lái)的base變成了pytorch!
對(duì)應(yīng)的退出環(huán)境的指令是:
conda deactivate