Stable Diffusion 本地部署安装指南
电脑显卡不是NVIDIA的道友可以直接放弃了。
最低4GB显存能跑,但生图效率感人,请酌情安装。
前言
什么是Stable Diffusion?
Stable Diffusion是一个文本到图像的潜在扩散模型,由CompVis、Stability AI和LAION的研究人员和工程师创建。它使用来自LAION-5B数据库子集的512x512图像进行训练。使用这个模型,可以生成包括人脸在内的任何图像。因为有大量开源的预训练模型,所以我们也可以在自己的机器上运行它。
官网介绍:https://stability.ai/blog/stable-diffusion-public-release
用Stable Diffusion能做什么?
它的主要功能是使用文本描述、现有图片或指定训练模型产生新的图像。
Stable Diffusion相比其他AI生图应用的优势是什么?
- 有大量开源模型,可本地部署运行,无需额外付费。
- 训练模型参数、精度可深度控制,定制生图所见即所得。
- 丰富的应用插件,可拓展性强。
为什么要学习使用Stable Diffusion?
- AI作为未来重要且高效的生产力工具,我们必须掌握如何使用它。
- “xxx从业者即将失业”、“AI即将取代人类工作”等论调甚嚣尘上,通过学习破除焦虑心态。
Stable Diffusion可运行最低配置
操作系统:Windows、MacOS 或 Linux
显卡:Nvidia RTX 2050 以上
VRAM显存:4GB
硬盘空间:12GB以上
安装注意事项
- 需要具备科学上网条件,大多数资源安装会用到。
- 在Stable Diffusion部署过程中所有软件安装的路径严禁出现中文、空格。
- 电脑的用户名不能有中文。
环境配置
1. Anaconda
Anaconda是一个运行python的环境管理工具。
1.1 Anaconda安装
官网下载链接https://www.anaconda.com/products/distribution。
点击“Download”下载,打开文件一路“Next”到这个界面,勾上第一个选项,把该命令注册到环境变量。
点击“Install”开始安装。安装完成后,点击“开始”菜单,可在“最近添加”里看到Anaconda Prompt,建议右键“更多-以管理员身份运行”。
1.2 Anaconda配置
后续需要下载Python包运行生成环境,如果Python下载失败或速度较慢,建议替换下载源。
替换下载源方法如下:
运行Anaconda Prompt,在打开的窗口输入以下命令进行全局配置。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
打开“此电脑”,进入 C:\Users\<电脑用户名>
这个路径,可以看到.condarc
文件。
打开它,我这里用的是Sublime Text,用记事本也行。
复制以下内容进去,然后保存文件。
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
2. Python
2.1 下载安装
Python官网下载链接https://www.python.org/downloads/release/python-3106/。
完成下载后运行安装程序,安装界面中“Add Python3.10 to PATH”(将Python加入环境变量)前面要打勾 ,然后直接安装。
2.2 Windows PowerShell设置
右键Windows菜单图标打开Windows PowerShell(管理员模式),输入如下命令:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
出现下面选择栏按[A]回车。
注意:
- 建议下载Python版本为3.10.6,较新的版本可能会在后续过程中出现因找不到匹配资源报错而无法完成部署,所以这里需要下载的版本不是越新越好。
- 如安装过程中忘记勾选“Add Python3.10 to PATH”可参考如下操作将Python加入环境变量。
3. Git
进入Git下载链接,https://git-scm.com/downloads。
点击“Download for Windows”,下载完成后一路默认下一步,完成安装即可。
部署应用
1. 下载Stable Diffusion
运行Anaconda Prompt窗口,进入到你想要进入的目录(注意文件路径不要有中文)。
刚进来的目录是C:\Windows\system32
,比如我这里想要放置的目录是D:\git_pro
,则依次输入以下命令:cd ../..
cd D:
cd git_pro
输入如下命令,将Stable Diffusion应用克隆到刚刚打开的本地目录:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
如果克隆速度很慢或连接失败,则可直接访问https://github.com/AUTOMATIC1111/stable-diffusion-webui,手动下载应用代码包并解压到本地目录。
2. 检查webui-user.bat
记事本打开webui-user.bat,修改Python应用程序路径为本地python.exe所在文件夹。
@echo off
set PYTHON="D:\python\python.exe"
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers
call webui.bat
3. 安装Stable Diffusion
进入 stable-diffusion-webui\目录,运行webui-user.bat 它会自己安装。
注意:
- 安装过程视网络状态可能会有多次中断(一部分模型在国外)。
- 但凡报错中断之后,只需要重新运行webui-user.bat,程序会继续安装过程。
- 一般来说,反复来个十多次很正常,请有足够耐心。
安装完毕之后,会出现如下界面:
如果安装过程顺利,在浏览器输入红框处的地址http://127.0.0.1:7860 ,就能访问到stable diffusion的本地服务了,这时候应该能看到下面的画面。
常见问题
1. pip问题及处理方法
主要解决打包之后运行程序闪退,图片资源无法打包的问题。
- pip安装指令:
pip install pyinstaller
如果报“’pip’ 不是内部或外部命令,也不是可运行的程序或批处理文件”,那么说明没有配置Python环境变量:
- 右键“我的电脑——属性——高级系统设置——环境变量”。
- 用户变量对系统安全,但作用域只在本用户。而系统变量作用域在整个电脑,在path变量中添加python的\python\Scripts路径,因为下面有你的pip.exe,告诉cmd去哪里找pip。
如果报错为:
WARNING: You are using pip version 19.2.3, however version 20.2.2
is available.You should consider upgrading
via the ‘python -m pip install --upgrade pip’ command.
或者:
Traceback (most recent call last):
File “e:\rj\python37\lib\runpy.py”, line 193, in _run_module_as_main
“main”, mod_spec)
File “e:\rj\python37\lib\runpy.py”, line 85, in run_code
exec(code, run_globals)
File "E:\RJ\python37\Scripts\pip.exe_main.py", line 5, in
ModuleNotFoundError: No module named ‘pip’
则说明pip版本过低或者损坏,需要更新一下。
如果是line4
报错,一般是pip版本和python版本不匹配,常在更新pip时出现,输入python -m ensurepip
匹配正确pip版本就好。
在cmd中执行pip install --upgrade pip
,等待pip和pyinstaller安装好即可开始使用。
更多pip问题及解决方案参考:
2. 报错:Couldn’t install gfpgan
资源链接问题,可编辑stable-diffusion-webui文件夹中的“launch.py”,在每个资源链接前加上代理“https://ghproxy.com/” ,代码块如下:
def prepare_environment():
global skip_install
torch_command = os.environ.get('TORCH_COMMAND', "pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117")
requirements_file = os.environ.get('REQS_FILE', "requirements_versions.txt")
xformers_package = os.environ.get('XFORMERS_PACKAGE', 'xformers==0.0.16rc425')
gfpgan_package = os.environ.get('GFPGAN_PACKAGE', "git+https://ghproxy.com/https://github.com/TencentARC/GFPGAN.git@8d2447a2d918f8eba5a4a01463fd48e45126a379")
clip_package = os.environ.get('CLIP_PACKAGE', "git+https://ghproxy.com/https://github.com/openai/CLIP.git@d50d76daa670286dd6cacf3bcd80b5e4823fc8e1")
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "git+https://ghproxy.com/https://github.com/mlfoundations/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b")
stable_diffusion_repo = os.environ.get('STABLE_DIFFUSION_REPO', "https://ghproxy.com/https://github.com/Stability-AI/stablediffusion.git")
taming_transformers_repo = os.environ.get('TAMING_TRANSFORMERS_REPO', "https://ghproxy.com/https://github.com/CompVis/taming-transformers.git")
k_diffusion_repo = os.environ.get('K_DIFFUSION_REPO', 'https://ghproxy.com/https://github.com/crowsonkb/k-diffusion.git')
codeformer_repo = os.environ.get('CODEFORMER_REPO', 'https://ghproxy.com/https://github.com/sczhou/CodeFormer.git')
blip_repo = os.environ.get('BLIP_REPO', 'https://ghproxy.com/https://github.com/salesforce/BLIP.git')
stable_diffusion_commit_hash = os.environ.get('STABLE_DIFFUSION_COMMIT_HASH', "47b6b607fdd31875c9279cd2f4f16b92e4ea958e")
taming_transformers_commit_hash = os.environ.get('TAMING_TRANSFORMERS_COMMIT_HASH', "24268930bf1dce879235a7fddd0b2355b84d7ea6")
k_diffusion_commit_hash = os.environ.get('K_DIFFUSION_COMMIT_HASH', "5b3af030dd83e0297272d861c19477735d0317ec")
codeformer_commit_hash = os.environ.get('CODEFORMER_COMMIT_HASH', "c5b4593074ba6214284d6acd5f1719b6c5d739af")
blip_commit_hash = os.environ.get('BLIP_COMMIT_HASH', "48211a1594f1321b00f14c9f7a5b4813144b2fb9")
3. 报错:No module ‘xformers’. Proceeding without it.
编辑stable-diffusion-webui目录中的“webui-user.bat”文件,添加–xformers参数,如下:
set COMMANDLINE_ARGS=--xformers
4. 报错:modulenotfounderror
若报错信息为:
modulenotfounderror: no module named 'font_roboto'
则用Everything搜索roboto,然后把图中这三个文件删除(或者把所有搜索到的roboto字体全删除)
要点总结
关于安装Stable Diffusion
- 从原版仅支持6G显存以上显卡优化到目前仅仅需要4G显存的显卡(理论上甚至仅用CPU都可以跑,速度很慢,不推荐)。
- Stable Diffusion的安装整体不难,但也有点考验外网的连通性。好用的通道是前提。
- 需要大量安装各种python库,可以考虑设置PIP国内源。
- 安装目录尽可能不要放在C盘,安装位置要留出足够的空间,建议50GB以上。
资源链接
元素法典制作委员会:https://space.bilibili.com/1981251194
Controlnet-models:https://huggingface.co/Hetaneko/Controlnet-models/
PromptHero:https://prompthero.com/
Civitai:https://civitai.com/
Lexica:https://lexica.art/