如何在没有 root 权限和网络的情况下使用学校高性能 GPU 运行 stable diffusion

PHPz
发布: 2024-07-19 00:30:09
原创
816 人浏览过

如何在没有 root 权限和网络的情况下使用学校高性能 GPU 运行 stable diffusion

众所周知,stablediffusion通常笔记本gpu是带不动的。说是起码须要4GB的GPUVRAM,但想要“正常速率(1)”使用根本不够。想用云?cloudgpu租用有的价钱倒是可以接受,而且通常也不给存文件,再开个cloudstorage又是一笔开销,且文件传来传去很麻烦。所以我(主要是我导师)为了省钱决定用中学的gpu。

(1)不谈GPU机型速率大约参考:我的GPU2GB:一张图3分钟linux使用代理服务器linux系统编程,友AGPU6GB:一张图50s,友BGPU32GB:一张图2S...

中学的GPU性能还是挺好的鸟哥的linux私房菜,而且没有root权限啊!驱动也不是想更新才能给你更新的!更烦的是我连的机器连个网还得代理(这是我下载sd过程中遇见的最麻烦的事情)。

鉴于我还没看到有谁用linuxconda绕开各类root权限问题+proxy问题装过SD,以下我分享一下我的stablediffusionwebui安装经验。此经验应当同样适用于须要linuxconda没有权限和代理问题的同事。

*我的机器是LinuxCentOS(Redhat),NVidiaGPU

**我指的安装sd是指安装这个github上比较流行的AUTOMATIC1111的webgui:

***我在美国

****我不是学CS的如有不专业之处请拜谢,不喜勿喷,仅分享经验

安装prerequisite:

(1)GPU够大吗(显存起码4GB)?不够就别费力了,去huggingface上用免费乞丐版吧(真心)。

(2)请复查你机器的CUDAdrive版本(由于torch要用到)按照我的经验10.几的应当是用不了的,不管哪些torchcuda组合都不行...CUDA11及以上的兼容性都不错,我装的torch写的适配cu117虽然我11.2也能用。(前面安装torch,CUDA版本兼容性出问题的可以尝试不同版本组合,在launch.py里改下载路径)

linux使用代理服务器_linux代理服务_linux代理服务器软件

1.首先用gitclone这个repo(git没有的话装git哈;git须要设置代理能够联网的请看步骤4)

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

2.由于我没有root权限下载各类包我须要使用conda(我的情况得用miniconda)。具体参考这儿其实就是自动下载anaconda/miniconda安装包(wget一下哪些的)并安装

3.下载好后创造你的conda环境(python3.10.6不能少哦)

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

4.(没有须要设置proxy联网的伙伴可以省略此步骤)这时侯通常来说就可以开始下载了,而且须要设置网路代理的伙伴可能须要检测如下几个地方有没有如下设置:

~/.bashrc(设置环境,负责通常意义上的联网...)

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

~/.condarc(负责condainstall之类的联网...通常来说在这个位置)

linux代理服务_linux使用代理服务器_linux代理服务器软件

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

git联网

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

还有就是下载各类包须要用到的pipinstall也须要联网,她们在文件launch.py里:

第一个须要改的地方在defrun_pip上面,129行左右

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

第二个须要改的地方是defprepare_environment里下载torch这儿,228行左右

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

5.之后理论上就可以开始下载了,但是只须要:

linux代理服务器软件_linux代理服务_linux使用代理服务器

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

*这儿须要注意:用bashwenui.sh安装虽然是用了python的virtualenviornment安装同在目录里的launch.py。我之前认为既然在conda里可能差异不大所以我直接运行了launch.py并且旁边出现了许多奇奇怪怪的错误,致使我重新配了好多次环境,所以我强烈建议哪怕在conda里也要用bashwebui.sh让它在python的虚拟环境里安装不要直接运行launch.py!

但对于我来说我的踩坑之路才刚才开始。。。

以下分享几个我的踩坑和workaround(仅经验分享linux使用代理服务器,我的解决方式毫无道理可言,而且最后能用!哈哈!)

1.难以下载gfpgan

"RuntimeError:Couldn'tinstallgfpgan."

我认为是网路问题,我的话恐怕是proxy的问题但鬼晓得哪不对(国外有这个问题的似乎可以参考这个,可能是[上网]的问题)

我的解决方式:先把launch.py里的gfpgan下载代码注释掉

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

linux使用代理服务器_linux代理服务器软件_linux代理服务

之后尝试自动下载(须要代理的记得加--proxy=你的代理地址)

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

假如还是不行那叫瞧瞧报错,缺哪些补哪些,我尝试了在conda里重新装了numpy,更新了pip,git,setuptools,cython...最后竟然能用了(我猜想git和numpy比较重要),尽管还是自动装的但总比不能用好。

参考:

2.下载stabilityai的stablediffusion出错

"RuntimeError:Couldn'tdetermineStableDiffusion'shash"wheninstalling

我的解决方式:conda里更新git(我之前是1.8,更新到2.几就好了)

参考:

到此模型下载就没哪些问题了,接出来是一些其他简单的bug:

linux使用代理服务器_linux代理服务器软件_linux代理服务

3.由于我用的机器localhost不能访问,须要生成外链

ValueError:Whenlocalhostisnotaccessible,ashareablelinkmustbecreated.Pleasesetshare=True.

linux使用代理服务器_linux代理服务器软件_linux代理服务

我的解决方式:在webui-user.sh里除去注释并添加--share,再运行一下webui-user.sh

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

这样就可以用gradio的外链访问webgui了

4.可以打开网页界面并且难以生成图片,报错SomethingwentwrongExpectingvalue:line1column1(char0)

我的解决方式:听说把代理关了就好了,但我不能关。。。所以和前面的问题类似,加一下--no-gradio-queue再运行一下webui-user.sh就可以了

<code class=" language-javascript"></code>
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制
登录后复制

参考:

欢迎你们一起交流stablediffusion和其他generativeai使用经验!

以上是如何在没有 root 权限和网络的情况下使用学校高性能 GPU 运行 stable diffusion的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:itcool.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!