众所周知,stable diffusion一般电脑gpu是带不动的。说是至少需要4GB的GPU VRAM, 但想要“正常速度(1)”使用根本不够。想用云?cloud gpu租用有的价格倒是可以接受,但是一般也不给存文件,再开个cloud storage又是一笔花销,且文件传来传去很麻烦。所以我(主要是我导师)为了省钱决定用学校的gpu。
(1)不谈GPU型号速度大概参考: 我的GPU 2GB:一张图3分钟,友A GPU 6GB: 一张图50s,友B GPU 32GB: 一张图2S...
学校的GPU性能还是很好的,但是没有root权限啊!驱动也不是想更新就能给你更新的!更烦的是我连的机器连个网还得代理(这是我下载sd过程中遇到的最麻烦的事情)。
鉴于我还没看见有谁用linux conda绕过各种root权限问题+proxy问题装过SD,以下我分享一下我的stable diffusion webui 安装经验。此经验应该同样适用于需要linux conda没有权限和代理问题的朋友。
*我的机器是Linux CentOS (Redhat),NVidia GPU
**我指的安装sd是指安装这个github上比较流行的AUTOMATIC1111的 webgui: https://github.com/AUTOMATIC1111/stable-diffusion-webui
***我在国外
****我不是学CS的如有不专业之处请见谅,不喜勿喷,仅分享经验
安装prerequisite:
(1)GPU够大吗(内存至少4GB)?不够就别费劲了,去hugging face上用免费乞丐版吧(真心)。
(2)请检查你机器的CUDA drive版本(因为torch要用到)根据我的经验10.几的应该是用不了的,不管什么torch cuda组合都不行... CUDA 11及以上的兼容性都不错,我装的torch写的适配cu117其实我11.2也能用。(后面安装torch, CUDA版本兼容性出问题的可以尝试不同版本组合https://pytorch.org/get-started/previous-versions/,在launch.py里改下载路径)
1. 首先用git clone这个repo(git没有的话装git哈;git需要设置代理才能联网的请看步骤4)
2. 因为我没有root权限下载各种包我需要使用conda(我的情况得用miniconda)。具体参考这里https://docs.conda.io/projects/conda/en/latest/user-guide/install/linux.html 总之就是手动下载anaconda/miniconda安装包(wget一下什么的)并安装
3. 下载好后创造你的conda环境(python 3.10.6不能少哦)
4. (没有需要设置proxy联网的伙伴可以省略此步骤)这时候一般来说就可以开始下载了,但是需要设置网络代理的伙伴可能需要检查如下几个地方有没有如下设置:
~/.bashrc (设置环境,负责一般意义上的联网...)
~/.condarc (负责conda install之类的联网...一般来说在这个位置)
git联网
还有就是下载各种包需要用到的pip install也需要联网,他们在文件launch.py里:
第一个需要改的地方在def run_pip里面, 129行左右
第二个需要改的地方是def prepare_environment里下载torch这里,228行左右
5. 然后理论上就可以开始下载了,而且只需要:
*这里需要注意:用bash wenui.sh安装其实是用了python的virtual enviornment安装同在目录里的launch.py。我之前觉得既然在conda里可能差别不大所以我直接运行了launch.py但是后面出现了许多奇奇怪怪的错误,导致我重新配了很多次环境,所以我强烈建议哪怕在conda里也要用bash webui.sh让它在python的虚拟环境里安装 不要直接运行launch.py!
但对于我来说我的踩坑之路才刚刚开始。。。
以下分享几个我的踩坑和workaround(仅经验分享,我的解决方法毫无道理可言,但是最后能用!哈哈!)
1. 无法下载gfpgan
"RuntimeError: Couldn't install gfpgan."
我觉得是网络问题,我的话估计是proxy的问题但鬼知道哪不对(国内有这个问题的或许可以参考这个,可能是[上网]的问题 https://www.bilibili.com/read/cv19991459?from=search)
我的解决方法:先把launch.py里的gfpgan下载代码注释掉
然后尝试手动下载(需要代理的记得加 --proxy=你的代理地址)
如果还是不行那叫看看报错,缺什么补什么,我尝试了在conda里重新装了numpy,更新了pip, git, setuptools, cython... 最后居然能用了(我猜测git和numpy比较重要),虽然还是手动装的但总比不能用好。
参考:https://github.com/CompVis/stable-diffusion/issues/506
2. 下载stability ai 的stable diffusion 出错
"RuntimeError: Couldn't determine Stable Diffusion's hash" when installing
我的解决方法:conda里更新git(我之前是1.8,更新到2.几就好了)
参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/1888
到此模型下载就没什么问题了,接下来是一些其他简单的bug:
3. 因为我用的机器local host 不能访问,需要生成外链
ValueError: When localhost is not accessible, a shareable link must be created. Please set share=True.
我的解决方法:在webui-user.sh 里去掉注释并添加 --share, 再运行一下webui-user.sh
这样就可以用gradio的外链访问webgui了
4. 可以打开网页界面但是无法生成图片,报错Something went wrong Expecting value: line 1 column 1 (char 0)
我的解决方法:据说把代理关了就好了,但我不能关。。。所以和上面的问题类似,加一下--no-gradio-queue再运行一下webui-user.sh就可以了
参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/9150
欢迎大家一起交流stable diffusion 和其他generative ai使用经验!