Loading... 1.前言: 最近看Stable Diffusion开源了,据说比Disco Diffusion更快,于是从git上拉取了项目尝试本地部署了,记录分享一下过程~ 这里是官网介绍:https://stability.ai/blog/stable-diffusion-public-release 2.必要前提: 科学上网。很多链接都需要用到。 显卡的显存需要足够大,至于多大没看到哪有说,反正6g绝对不行 3.部署前准备: 3.1 Anaconda安装 这是一个运行python的环境管理工具 进入 Anaconda官网,https://www.anaconda.com/ 点击Download下载,打开文件一路next到这个界面,勾上第一项,把该命令注册到环境变量 Anaconda安装 点击install开始下载,下载完成后,点击右下角开始界面,可在最近添加里看到 Anaconda Prompt,建议右键更多以管理员身份运行。 安装Anaconda完成 3.2 Anaconda配置 后续需要生成环境,下载python包,但网络很不好,建议替换源 在刚才打开的 Anaconda Prompt 窗口输入以下命令进行全局配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 打开此电脑,进入 C:\Users\<你的用户名> 这个路径,可以看到.condarc文件 打开它,我这里用的是Notepad++,应该用记事本也行,复制以下内容进去,保存 default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud show_channel_urls: true ssl_verify: false 3.3 git安装 进入git下载链接,https://git-scm.com/downloads 点击Download for Windows,下载完打开一路默认,安装完成 (这里之所以把git放到后面安装,是因为我在Prompt里碰到没有git命令的问题,重装解决) 4.开始部署: 4.1 下载Stable Diffusion项目 在刚才打开的Anaconda Prompt窗口里,进入到你想要进入的目录 刚进来的目录是C:\Windows\system32,比如我这里想要放置目录是D:\git_pro,则输入以下命令(注意>之后的才是输入的内容) (base) C:\Windows\system32>cd ../.. (base) C:\>D: (base) D:\>cd git_pro (base) D:\git_pro>git clone https://github.com/CompVis/stable-diffusion.git git clone很卡的话,访问 https://github.com/CompVis/stable-diffusion,点击绿色按钮code再点击Download ZIP,解压到该目录下也行 4.2 安装Stable Diffusion环境 这里是重点,源不好的话经常会卡住 进入到项目目录下,按README.md的指引操作 (base) D:\git_pro>cd stable-diffusion-main (base) D:\git_pro\stable-diffusion-main>conda env create -f environment.yaml 这里要下载不少时间,可能会报错,通常是源太卡了 也可能是git太卡,因为该过程还需要在项目的src目录下clone两个其他项目下来(见 environment.yaml,不要想把他们直接下载放到该目录,后面运行会报错) 4.3 下载模型 安装好环境后,还不能进入使用,因为需要的模型还没有下载 模型有几种,需要去 https://huggingface.co/CompVis 下载,这里还需要注册账号,先注册下 如果我们用sd-v1-4.ckpt这个模型,就在该网页里点击stable-diffusion-v-1-4-original那一项 Hugging Face 跳转过去,找到Download the weights下面的sd-v1-4.ckpt即可点击下载,通常几G,下载时间较长。 4.4 设置模型文件路径 见Stable Diffusion项目README.md的这一步,是要我们把模型的路径软链过去,但我想大家Windows电脑应该没有这个命令吧 README.md 简便一点,我们下载好模型以后,找个地方存起来 打开资源管理器,去 D:\git_pro\stable-diffusion-main\models\ldm 路径新建stable-diffusion-v1文件夹,然后把模型文件复制过来,再把模型名字改成model.ckpt 模型文件路径 我这里把下载的模型都新建一个文件夹models放到里面,方便复制替换 4.5 运行 终于来到这一步了,前面所做的一切都是为了这一步啊!! 刚才在Anaconda Prompt窗口输入conda env create那一步,我们新建了环境ldm,现在切换过去,在Anaconda Prompt窗口输入以下命令 (base) D:\git_pro\stable-diffusion-main>conda activate ldm 当然官方建议我们可以更新一下pytorch包,应该是可不跑的,贴一下 conda install pytorch torchvision -c pytorch pip install transformers==4.19.2 diffusers invisible-watermark pip install -e . 最后!!就是我们的跑图命令了 (ldm) D:\git_pro\stable-diffusion-main>python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --prompt后面的就是你的描述,可输入python scripts/txt2img.py --help查看各种参数配置 接下来就是见证奇迹的时刻~ 运行跑图中 诶,等会儿,这是啥? CUDA out of memory 一口老血吐出来,显存不够,所以说必要前提还是要注意的,白忙了 只能等我换了显卡再说咯,留给3090ti的朋友去试试~ 5.QA: 5.1 不想部署,只想玩玩? 其实想玩玩,也可以去网站: https://huggingface.co/spaces/stabilityai/stable-diffusion 这个要稍微排队一下 https://beta.dreamstudio.ai/dream 这个DreamStudio测试版要注册,支持一些参数,不用排队 5.2 生成了错误环境 可能你乱改environment.yaml文件,生成了错误的环境,此时需要把yaml重新恢复,不用删除该环境,可以运行update命令更新,如下 conda env update -f environment.yaml 5.3 报错 'git' is not recognized as an internal or external command, operable program or batch file. 这是没有git命令,之前安装过git的,Anaconda Prompt窗口也可能没有加载到git 解决方法,重装git 5.4 第二次运行,报错 ModuleNotFoundError: No module named 'CV2' 因为你的程序依赖包都在新建的安装环境ldm下,所以每次重新打开Anaconda Prompt都需要再切一次环境,再跑你的程序,切环境命令如下: conda activate ldm 5.5 每次进入项目目录好麻烦 可以直接在项目资源管理器输入cmd并回车,进入命令行工具 D:\git_pro\stable-diffusion-main 5.6 如何设置参考图 有参考图的配置是另一个命令,如下,<path-to-img.jpg>就是你电脑里的参考图片路径 python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8 5.7 显存不够,按照提示设置max_split_size_mb变量行不行? 本来我以为max_split_size_mb的单位是g,设置以后报错,我还狠狠吐槽了一下 当时想吐槽的话 结果吐槽完才反应过来单位应该是mb,满怀期待又去设置了一下,还是老样子的报错,硬件是硬伤,不过有想试试的也可参考流程: 左下角搜“环境变量”,点进去 编辑Windows环境变量 按此123操作,变量名PYTORCH_CUDA_ALLOC_CONF,变量值max_split_size_mb:xxx 设置max_split_size_mb 暂时想不到其他坑了,有误请指正~~ 作者:星云曈昽 https://www.bilibili.com/read/cv18292916 出处:bilibili 最后修改:2023 年 05 月 10 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏