本页面介绍了 Stable Diffusion Web UI 可用的命令行参数和启动选项。这些选项控制应用程序如何启动、配置资源、启用功能以及建立网络连接。有关环境配置的信息,请参阅环境配置。
Web UI 启动流程包含多个阶段,从解析命令行参数到启动 Web 界面或 API 服务器。
来源:launch.py27-48 modules/launch_utils.py463-469
命令行参数在modules/cmd_args.py中定义,可以直接在启动脚本时传入。参数可以通过以下两种方式提供:
python launch.py --argument1 --argument2 value2COMMANDLINE_ARGS环境变量这些参数控制着启动过程的基础方面。
| 参数 | 描述 |
|---|---|
--skip-python-version-check | 绕过 Python 版本兼容性检查 |
--skip-torch-cuda-test | 跳过检查 CUDA 是否与 PyTorch 正常工作 |
--skip-prepare-environment | 跳过环境准备(安装包等) |
--precision {full,half,autocast} | 设置计算精度模式 |
--upcast-sampling | 将采样向上转换为更高的精度以获得更好的质量 |
--no-half | 防止模型被切换到 16 位浮点数 |
--no-half-vae | 防止 VAE 模型被切换到 16 位浮点数 |
--skip-install | 跳过安装包 |
--data-dir | 设置所有用户数据存储的基础路径 |
--reinstall-torch | 强制重新安装 torch |
--reinstall-xformers | 强制重新安装 xformers |
--update-check | 启动时检查更新 |
--dump-sysinfo | 将系统信息转储到 JSON 文件并退出 |
来源:modules/cmd_args.py6-128 modules/launch_utils.py367-446
这些参数用于配置硬件使用和性能优化。
| 参数 | 描述 |
|---|---|
--xformers | 启用 xformers 以处理交叉注意力层 |
--force-enable-xformers | 即使兼容性检查失败也强制启用 xformers |
--xformers-flash-attention | 为 SD2.x 模型启用带 Flash Attention 的 xformers |
--opt-channelslast | 将 stable diffusion 的内存类型更改为 channels last |
--medvram | 启用中等 VRAM 使用的优化(牺牲部分速度) |
--lowvram | 启用低 VRAM 使用的优化(速度明显变慢) |
--lowram | 将模型权重加载到 VRAM 而不是 RAM |
--opt-split-attention | 优先使用 Doggettx 的交叉注意力优化 |
--opt-sub-quad-attention | 优先使用子二次交叉注意力优化 |
--opt-split-attention-invokeai | 优先使用 InvokeAI 的交叉注意力优化 |
--opt-sdp-attention | 优先使用缩放点积注意力(需要 PyTorch 2.*) |
--opt-sdp-no-mem-attention | 与上面相同,但不使用内存高效注意力 |
--disable-opt-split-attention | 禁用交叉注意力优化 |
--use-cpu | 对指定的模块使用 CPU 而不是 GPU |
--disable-nan-check | 禁用 NaN 输出检查 |
--use-ipex | 使用 Intel XPU 作为 torch 设备 |
--device-id | 选择特定的 CUDA 设备 |
来源:modules/cmd_args.py58-107 modules/launch_utils.py381-397
这些参数配置网络连接和 API 设置。
| 参数 | 描述 |
|---|---|
--listen | 使服务器监听网络连接 |
--port | 指定要使用的端口(默认:7860) |
--share | 通过 gradio.app 创建一个公共 URL |
--ngrok | 通过 ngrok 创建一个公共 URL(需要认证令牌) |
--api | 在 Web UI 的同时启用 API |
--nowebui | 仅运行 API 服务器,不运行 Web UI |
--api-auth | 设置 API 访问的用户名:密码 |
--api-log | 记录所有 API 请求 |
--gradio-auth | 设置 Web UI 访问的用户名:密码 |
--gradio-auth-path | 包含认证凭据的文件路径 |
--cors-allow-origins | 设置允许的 CORS 源(逗号分隔) |
--cors-allow-origins-regex | 将允许的 CORS 源设置为正则表达式 |
--tls-keyfile | TLS 私钥文件路径 |
--tls-certfile | TLS 证书文件路径 |
--server-name | 设置服务器主机名(默认:localhost) |
--timeout-keep-alive | 设置 uvicorn 的 timeout_keep_alive(默认:30) |
--subpath | 自定义 Gradio 的子路径(在使用反向代理时很有用) |
来源:modules/cmd_args.py77-128 modules/launch_utils.py463-469
这些参数控制加载哪些模型以及如何配置它们。
| 参数 | 描述 |
|---|---|
--ckpt | 要加载的特定检查点文件的路径 |
--ckpt-dir | 包含模型检查点的目录 |
--vae-dir | 包含 VAE 文件的目录 |
--vae-path | 要使用的特定 VAE 检查点 |
--config | 模型构建的配置文件路径 |
--no-download-sd-model | 如果找不到默认模型,则阻止下载 |
--models-dir | 模型存储的基础目录 |
--ui-debug-mode | 跳过加载模型以快速启动 UI |
--skip-load-model-at-start | 启动时跳过加载模型(仅限 API) |
来源:modules/cmd_args.py22-29 modules/cmd_args.py99-126
这些参数控制扩展如何加载和管理。
| 参数 | 描述 |
|---|---|
--allow-code | 允许从 Web UI 执行自定义脚本 |
--disable-all-extensions | 完全禁用所有扩展 |
--disable-extra-extensions | 禁用所有扩展,但内置扩展除外 |
--enable-insecure-extension-access | 无论设置如何,都启用扩展选项卡 |
--update-all-extensions | 启动时更新所有扩展 |
来源:modules/cmd_args.py38-52 modules/cmd_args.py123-124 modules/launch_utils.py440-442
这些参数影响用户界面的外观和行为。
| 参数 | 描述 |
|---|---|
--theme | 设置浅色或深色主题 |
--use-textbox-seed | 使用文本框代替滑块来输入种子 |
--disable-console-progressbars | 禁用控制台中的进度条 |
--no-progressbar-hiding | 在 UI 中显示进度条(可能会影响性能) |
--freeze-settings | 禁止全局编辑所有设置 |
--freeze-settings-in-sections | 禁止编辑特定的设置部分 |
--freeze-specific-settings | 禁止编辑特定的单个设置 |
--ui-config-file | UI 配置文件路径 |
--ui-settings-file | UI 设置文件路径 |
--gradio-debug | 使用 debug 选项启动 Gradio |
--no-prompt-history | 禁用提示历史记录功能 |
--styles-file | 样式文件路径(可指定多个) |
--autolaunch | 启动时自动打开浏览器 |
--hide-ui-dir-config | 在 Web UI 中隐藏目录配置 |
几个环境变量可以影响启动过程
| 环境变量 | 描述 | 默认值 |
|---|---|---|
GIT | git 可执行文件路径 | "git" |
INDEX_URL | pip 的 PyPI 索引 URL | "" |
TORCH_INDEX_URL | PyTorch 包索引 | "https://download.pytorch.org/whl/cu121" |
TORCH_COMMAND | 安装 torch 的命令 | "pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url {torch_index_url}" |
REQS_FILE | 要使用的 requirements 文件 | "requirements_versions.txt" |
XFORMERS_PACKAGE | 要安装的 Xformers 包 | "xformers==0.0.23.post1" |
CLIP_PACKAGE | CLIP 包来源 | GitHub URL |
OPENCLIP_PACKAGE | OpenCLIP 包来源 | GitHub URL |
WEBUI_LAUNCH_LIVE_OUTPUT | 是否打印命令输出 | "0" |
来源:modules/launch_utils.py23-33 modules/launch_utils.py318-348 modules/sysinfo.py13-35
启动过程中,系统会执行几个准备步骤:
此准备阶段可以通过各种参数进行自定义,或者完全跳过,使用--skip-prepare-environment。
来源:launch.py27-46 modules/launch_utils.py318-446
在准备过程中,会克隆或更新几个仓库
| 仓库 | 目的 | URL 的环境变量 |
|---|---|---|
| stable-diffusion-webui-assets | UI 资源 | ASSETS_REPO |
| stable-diffusion-stability-ai | Stable Diffusion 核心 | STABLE_DIFFUSION_REPO |
| generative-models | Stable Diffusion XL | STABLE_DIFFUSION_XL_REPO |
| k-diffusion | K-diffusion 采样器 | K_DIFFUSION_REPO |
| BLIP | 用于字幕的 BLIP | BLIP_REPO |
每个仓库都会克隆到特定的 commit hash,这可以通过相应的环境变量(例如STABLE_DIFFUSION_COMMIT_HASH)来覆盖。
来源:modules/launch_utils.py348-358 modules/launch_utils.py411-415
用于标准启动,使用默认设置
python launch.py
适用于 VRAM 有限的系统
python launch.py --lowvram --medvram --opt-split-attention
仅运行 API 服务器,不带 Web UI
python launch.py --nowebui --api
使服务器可以通过互联网访问
python launch.py --listen --port 7860 --share
用于设置身份验证
python launch.py --gradio-auth username:password --api-auth username:password
用于开发目的
python launch.py --allow-code --gradio-debug --api
来源: modules/cmd_args.py6-128 modules/launch_utils.py463-469
启动选项可以通过两种方式提供
webui-user.bat 或 (Linux/Mac) webui-user.sh 中的配置配置文件允许您设置持久性选项,而无需每次都指定参数。
(Linux/Mac) webui-user.sh 内容示例
来源: .gitignore24-25