MacBook Pro部署Stable Diffusion WebUI笔记 (六)Pytorch的配套安装
安装 pytorch主要是考虑使用ComfyUI来配套新出的SDXL1,而不是升级目前的webui。因为目前在使用的webUI1.3.1和配套插件作图流程相对稳定,不希望升级以后带来的变化导致整个流程要重新调整,而且听说新的模型更容易爆内存/显存,使用ComfyUI会好一点。
按照ComfyUI主页(https://github.com/comfyanonymous/ComfyUI)的说法, pytorch是要求安装的。我之前有安装过一个,后来又卸载了,只能重新来过。而 pytorch本身又要求一些配套,之前没太搞懂,这次弄完稍微又了解了一点点。
主要参考的文章是如下这个地址的:
https://developer.apple.com/metal/pytorch/
大概三个关键内容如下,一个是anaconda,一个是如何验证pytorch安装成功以及如何验证pytorch的版本,这是我之前非常困扰的一个部分。最后一个是如何创建pytorch环境。
在开始之前先罗列几个在终端里检查版本信息的命令:
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
一)安装和验证anaconda
我是通过在官网下载安装包的方式安装,下载的文件叫Anaconda3-2023.07-1-MacOSX-arm64.pkg,直接运行就行。有的材料会推荐安装miniconda,好像是安装完会小很多。
安装之后在终端输入
conda info
会返回很多anaconda的相关信息,如果只是想看看anaconda的版本,可以输入
conda --version
我这里返回的是conda 23.5.2
二)安装和验证pytorch
首先我也是上官网,我选择的是pytorch预览版(Nightly)以及 Pip Package,因此它给我的命令行是如下这样的:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
然后就会进入Collecting torch的进程,都跑完之后会出现一个Successfully installed torch、torchvision、torchaudio的信息。我这里还有一条报警:
WARNING: There was an error checking the latest version of pip.
吓了一跳,不过还好后续没受到什么影响。
然后就是验证的部分了,验证的部分我卡了很久,因为网络的材料里给的验证命令都是好几行的,我完全搞不懂要在哪里输入这些。在终端里输入就会报错。后来我才发现,要在终端里先输入:
python
然后终端就特么变了!!!这个>>>出现以后,很多指令才能被理解和执行。这对很多有基础的人来说可能根本不是问题,我这个完全不懂python的就瞎了半天。不过这里返回的是python 3.11.3和我自己装的那个版本不一样,而且后面还会再多一个pythonT—T

对应进入python,退出的指令是:
exit()
在python模式下,很多东西就可以整了。比如上图里面的platform()可以看到mac系统的信息。然后就可以验证pytorch了,进入python模式,输入两行内容:
>>>import torch
>>>torch --version--
我这里返回的是‘2.0.1’,这是torch的版本号
再输入
>>>torch.device("mps")
我这里返回的是device(type='mps'),这里我就看不懂了,按材料的意思是返回这个就是安装成功了。
我还做了另外一组验证,虽然还是看不懂,但是好像也说明装上了,如下图:

就在我以为大功告成的时候,忽然发现好像还没有完!!!
三)创建pytorch环境
我一直以为装上了pytorch,就是有了pytorch环境了,结果好像并不是这样。这是一个环境验证的指令,直接在终端输入就行:
conda info --envs
返回的内容会告诉你有几个conda环境,默认的情况下只有一个base环境。因此,需要创建一个pytorch的,我输入了如下命令:
conda create -n pytorch python=3.10
这里的python我打了3.10是因为我自己装的python是3.10.6的,结果后续创建的过程里anaconda又给我打包了一个python3.10.12塞到了新建的python环境里!不管怎么样,在跑了一大堆东西之后,如下图再验证环境,除了原来的base之外,有了一个叫pytorch的环境。

单单有是不够的,还要激活这个环境。指令如下:
conda activate pytorch
回车之后,会发现mac名称的前面,由原来的base变成了pytorch!
对应的退出环境的指令是:
conda deactivate