此页面说明了 Stable Diffusion Web UI 的环境配置方式,包括依赖项、Python 包、仓库和特定于硬件的优化。有关命令行启动选项的信息,请参阅 启动选项。
Stable Diffusion Web UI 需要一个配置正确且具有特定依赖项的环境才能正常运行。环境配置过程包括:
来源:launch.py26-44 modules/launch_utils.py318-447
Web UI 环境可通过三种主要方法配置,按优先级顺序列出:
用于环境配置的关键参数包括:
| 参数 | 目的 |
|---|---|
--skip-prepare-environment | 跳过所有环境准备 |
--skip-python-version-check | 不检查 Python 版本 |
--skip-torch-cuda-test | 跳过 CUDA 功能测试 |
--reinstall-torch | 即使 PyTorch 已安装,也重新安装 |
--reinstall-xformers | 即使 xformers 已安装,也重新安装 |
--skip-install | 跳过包的安装 |
--update-check | 启动时检查更新 |
--use-ipex | 将 Intel XPU 用作 torch 设备 |
--xformers | 为交叉注意力层启用 xformers |
来源:modules/cmd_args.py6-129 launch.py26-44
影响配置的常见环境变量
| 可变 | 目的 | 默认值 |
|---|---|---|
TORCH_COMMAND | 安装 PyTorch 的命令 | pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url https://download.pytorch.org/whl/cu121 |
TORCH_INDEX_URL | PyTorch 轮子(wheels)的 URL | https://download.pytorch.org/whl/cu121 |
REQS_FILE | 要使用的要求文件 | requirements_versions.txt |
XFORMERS_PACKAGE | xformers 包的规格 | xformers==0.0.23.post1 |
GIT | 要使用的 Git 可执行文件 | git |
INDEX_URL | PyPI 索引 URL | 空字符串 |
COMMANDLINE_ARGS | 附加的命令行参数 | 特定于平台 |
来源:modules/launch_utils.py23-26 modules/launch_utils.py319-352 webui-macos-env.sh1-18
特定于平台的用户的配置文件
webui-user.shwebui-user.bat这些文件定义了跨启动持久化的环境变量和设置。在更新过程中不会覆盖它们。
来源:webui-user.sh1-49 webui-user.bat1-9 webui.sh18-23 webui.bat3-7
Web UI 通过几个系统管理依赖项
Web UI 使用固定的包版本来确保兼容性。依赖项在两个文件中指定:
requirements_versions.txt - 包含精确的包版本(首选)requirements.txt - 包含更灵活的版本规范主要依赖项包括
| 包 | 目的 | 默认版本 |
|---|---|---|
| torch/torchvision | PyTorch 框架 | 2.1.2/0.16.2 |
| gradio | Web 界面 | 3.41.2 |
| transformers | Hugging Face 模型 | 4.30.2 |
| safetensors | 安全模型存储 | 0.4.2 |
| xformers | 内存优化 | 0.0.23.post1 |
| accelerate | 训练加速 | 0.21.0 |
来源:requirements_versions.txt1-36 modules/launch_utils.py319-350
环境设置会克隆几个必需的仓库
| 仓库 | 目的 | 位置 |
|---|---|---|
| stable-diffusion-stability-ai | Stable Diffusion 模型 | ./repositories/stable-diffusion-stability-ai |
| generative-models | Stable Diffusion XL | ./repositories/generative-models |
| k-diffusion | 采样方法 | ./repositories/k-diffusion |
| BLIP | 图像字幕 | ./repositories/BLIP |
| stable-diffusion-webui-assets | UI 资源 | ./repositories/stable-diffusion-webui-assets |
来源:modules/launch_utils.py347-358 modules/launch_utils.py411-415
来源:modules/launch_utils.py34-62
系统会自动检测并配置不同的 GPU 类型
来源:webui.sh130-175 modules/launch_utils.py319-335
macOS 有特定设置来处理 Metal GPU 后端
Web UI 使用 Python 虚拟环境来隔离依赖项。
| 设置 | 平台 | 描述 |
|---|---|---|
VENV_DIR | 所有 | 虚拟环境的目录(默认为 venv) |
SKIP_VENV | Windows | 设置为 1 以跳过 venv 创建 |
venv_dir="-" | Linux/macOS | 设置为 - 以禁用 venv |
来源:webui.sh25-43 webui.sh208-236 webui.bat9-52
主要的环境准备发生在 launch_utils.py 文件中的 prepare_environment() 函数中
来源: modules/launch_utils.py318-447 launch.py35-39
| 错误 | 可能的解决方案 |
|---|---|
| Python版本不兼容 | 使用 Python 3.10 (推荐 3.10.6) |
| CUDA 不可用 | 添加 --skip-torch-cuda-test 或检查 GPU 驱动 |
| 软件包安装失败 | 检查互联网连接,尝试 --reinstall-torch |
| "找不到 Stable Diffusion" | 检查仓库是否克隆,或使用 --skip-prepare-environment 运行 |
| 内存不足错误 | 尝试 --medvram, --lowvram, 或 --lowram 选项 |
| 虚拟环境问题 | 删除 venv 文件夹并重新创建,或使用 --skip-venv |
系统可以使用以下命令生成诊断报告
这将创建一个包含详细环境信息的 JSON 文件。
来源: modules/sysinfo.py45-53 launch.py27-33
在 Linux 系统上,如果可用,启动器会尝试使用 TCMalloc 来改进内存使用情况。
来源: webui.sh239-282
由环境配置管理的重要文件夹
| 文件夹 | 目的 |
|---|---|
| ./venv | Python 虚拟环境 |
| ./repositories | 克隆的外部仓库 |
| ./models | 模型存储 |
| ./extensions | 用户和内置扩展 |
| ./tmp | 临时文件 |
来源: .gitignore1-45