2.3. 命令行参数

注:这篇文章仅供参考,本系列教学已经附上预先设置好的指令参数了,照抄即可。

Stable Diffusion WebUI的项目文件夹附有启动主程序的指令稿(script),称为启动指令稿。

Linux/macOS的变量与参数是写在webui-user.sh,接着用户以终端机运行webui.sh,它会读取webui-user.sh里面写的变量与设置值,将其传给launch.py,然后启动WebUI。

Windows也是类似,不过变量与参数是写在webui-user.bat批量档,然后用户以终端机运行此批量档(或者在文件总管点二下,无需系统管理员权限)即会启动主程序。

因此要修改启动参数,您应该改的是webui-user.sh,而不是webui.sh

1. 环境变量与命令行参数的设置方法 #

  • Linux/macOS:编辑webui-user.sh,填入export 变量=数值
  • Windows:编辑webui-user.bat,填入set 变量=数值

例如,Windows对webui-user.bat按右键以记事本编辑,加入这行命令行参数:

set COMMANDLINE_ARGS=--xformers --no-half-vae --medvram

2. 环境变量 #

可在启动指令稿使用这些环境变量(environment variables):

名称说明
PYTHON设置Python运行档路径。
VENV_DIR设置Python虚拟环境的路径。默认值为venv。该值为-时则不创建虚拟环境,直接运行Python程序。
COMMANDLINE_ARGS主程序的额外命令行参数。
IGNORE_CMD_ARGS_ERRORS设置为任意值,使程序遇到未知的命令行参数退出时不显示错误
REQS_FILE启动launch.py安装依赖套件使用的requirements.txt文件名。默认值为requirements_versions.txt
TORCH_COMMAND安装PyTorch的指令
INDEX_URLpip的--index-url参数
TRANSFORMERS_CACHETransformer函数库下载的路径,以及CLIP模型相关文件的路径。
CUDA_VISIBLE_DEVICES如果电脑有多重GPU,使用此参数选取要使用的GPU,例如set CUDA_VISIBLE_DEVICES=0
SD_WEBUI_LOG_LEVEL输出日志格式。有效值为Pyhton内置的logging模块数值。缺省为INFO
SD_WEBUI_CACHE_FILE缓存文件路径,默认值为根目录下的cache.json
SD_WEBUI_RESTAR由启动指令稿(webui.shwebui.bat)设置的值,告诉WebUI可以使用重启功能。
SD_WEBUI_RESTARTING检测WebUI是否正在重启或重新加载的内部数值,可以用来关闭自动打开浏览器的功能。设为1即不要自动打开浏览器。设为0的话,即使WebUI正在重启也自动打开浏览器。

3. 命令行参数 #

命令行参数(command line arguments)为启动WebUI时使用的选项,写在启动指令稿的COMMANDLINE_ARGS=后面。

注意下面是二条横线「- -」

参数指令数值默认值说明
设置值
-h, –helpNoneFalse显示此帮助消息并退出。
–exit安装后终止程序。
–data-dirDATA_DIR./用户数据保存的路径。
–configCONFIGconfigs/stable-diffusion/v1-inference.yaml建构模型设置档的路径。
–ckptCKPTmodel.ckptStable Diffusion模型的存盘点模型路径。一旦指定,该模型会加入至存盘点模型列表并加载。
–ckpt-dirCKPT_DIRNone存放Stable Diffusion模型存盘点模型的路径。
–no-download-sd-modelNoneFalse即使找不到模型,也不自动下载SD1.5模型。
–vae-dirVAE_PATHNoneVAE的路径。
–gfpgan-dirGFPGAN_DIRGFPGAN/GFPGAN路径
–gfpgan-modelGFPGAN_MODELGFPGAN模型文件名
–codeformer-models-pathCODEFORMER_MODELS_PATHmodels/Codeformer/Codeformer模型档的路径。
–gfpgan-models-pathGFPGAN_MODELS_PATHmodels/GFPGANGFPGAN模型档的路径。
–esrgan-models-pathESRGAN_MODELS_PATHmodels/ESRGANESRGAN模型档的路径。
–bsrgan-models-pathBSRGAN_MODELS_PATHmodels/BSRGANBSRGAN模型档的路径。
–realesrgan-models-pathREALESRGAN_MODELS_PATHmodels/RealESRGANRealESRGAN模型档的路径。
–scunet-models-pathSCUNET_MODELS_PATHmodels/ScuNETScuNET模型档的路径。
–swinir-models-pathSWINIR_MODELS_PATHmodels/SwinIRSwinIR和SwinIR v2模型档的路径。
–ldsr-models-pathLDSR_MODELS_PATHmodels/LDSR含有LDSR模型档的路径。
–lora-dirLORA_DIRmodels/Lora含有LoRA模型档的路径。
–clip-models-pathCLIP_MODELS_PATHNone含有CLIP模型档的路径。
–embeddings-dirEMBEDDINGS_DIRembeddings/Textual inversion的embeddings路径 (缺省: embeddings)
–textual-inversion-templates-dirTEXTUAL_INVERSION_TEMPLATES_DIRtextual_inversion_templatesTextual inversion范本的路径
–hypernetwork-dirHYPERNETWORK_DIRmodels/hypernetworks/Hypernetwork路径
–localizations-dirLOCALIZATIONS_DIRlocalizations/在地化翻译路径
–styles-fileSTYLES_FILEstyles.csv风格文件名
–ui-config-fileUI_CONFIG_FILEui-config.jsonUI设置档文件名
–no-progressbar-hidingNoneFalse取消隐藏Gradio UI的进度条 (我们之所以将其隐藏,是因为在浏览器启动硬件加速的状况下,进度条会降低机器学习的性能)
–max-batch-countMAX_BATCH_COUNT16UI的最大批量数值
–ui-settings-fileUI_SETTINGS_FILEconfig.jsonUI设置值画面的文件名
–allow-codeNoneFalse允许在WebUI运行自订指令稿
–shareNoneFalse使用此参数在启动后会产生Gradio网址,使WebUI能从外部网络访问
–listenNoneFalse以0.0.0.0主机名称启动Gradio,使其能回应连接请求
–portPORT7860以给定的通信端口启动Gradio。1024以下的通信端口需要root权限。如果可用的话,缺省使用7860通信端口。
–hide-ui-dir-configNoneFalse在WebUI隐藏设置档目录。
–freeze-settingsNoneFalse停用编辑设置。
–enable-insecure-extension-accessNoneFalse无视其他选项,强制激活扩充功能页签。
–gradio-debugNoneFalse使用 –debug选项启动Gradio
–gradio-authGRADIO_AUTHNone设置Gardio授权,例如"username:password",或是逗号分隔值形式"u1:p1,u2:p2,u3:p3"
–gradio-auth-pathGRADIO_AUTH_PATHNone设置Gardio授权文件路径。 例如 “/路径/” 再加上--gradio-auth的格式。
–disable-console-progressbarsNoneFalse不在终端机显示进度条。
–enable-console-promptsNoneFalse在使用文生图和图生图的时候,于终端机印出提示词
–apiNoneFalse以API模式启动WebUI
–api-authAPI_AUTHNone设置API授权,例如"username:password",或是逗号分隔值形式"u1:p1,u2:p2,u3:p3"
–api-logNoneFalse激活所有API请求的纪录档
–nowebuiNoneFalse仅启动API, 不启动WebUI
–ui-debug-modeNoneFalse不加载模型,以更快启动WebUI
–device-idDEVICE_IDNone选择要使用的CUDA设备 (例如在启动指令稿使用export CUDA_VISIBLE_DEVICES=0或1)
–administratorNoneFalse使用系统管理员权限
–cors-allow-originsCORS_ALLOW_ORIGINSNone允许跨来源资源共用,列表以逗号分隔,不可有空格
–cors-allow-origins-regexCORS_ALLOW_ORIGINS_REGEXNone允许跨来源资源共用,后面加上单一正规表达式
–tls-keyfileTLS_KEYFILENone部份激活TLS,,需要配合–tls-certfile才能正常运作
–tls-certfileTLS_CERTFILENone部份激活TLS,需要配合–tls-keyfile才能正常运作
–server-nameSERVER_NAMENone设置服务器主机名称
–skip-version-checkNoneFalse不检查torch和xformers的版本
–no-hashingNoneFalse停用计算存盘点模型的sha256哈希值,加快加载速度
–skip-version-checkNoneFalse不检查torch与xformers版本。
–skip-version-checkNoneFalse不检查Python版本。
–skip-torch-cuda-testNoneFalse不检查CUDA是否正常运作。
–skip-installNoneFalse跳过安装套件。
–loglevelNoneNone日志纪录等级,有效值为CRITICAL, ERROR, WARNING, INFO, DEBUG
–log-startupNoneFalse在启动程序时输出launch.py的详细运行内容。
–api-server-stopNoneFalse允许通过API通信停止/重启/强制停止主程序。
–timeout-keep-aliveint30设置uvicorn的timeout_keep_alive数值。
性能相关
–xformersNoneFalse给cross attention layers激活xformers
–reinstall-xformersNoneFalse强制重装xformers,升级时很有用。但为避免不断重装,升级后将会移除。
–force-enable-xformersNoneFalse强制给cross attention layers激活xformers 此选项无法运作的话请勿回报bug
–xformers-flash-attentionNoneFalse给xformers激活Flash Attention,提升再现能力 (仅支持SD2.x或以此为基础的模型)
–opt-split-attentionNoneFalse强制激活Doggettx的cross-attention layer优化。有CUDA的系统缺省激活此选项。
–opt-split-attention-invokeaiNoneFalse强制激活InvokeAI的cross-attention layer优化。无CUDA的系统缺省激活此选项。
–opt-split-attention-v1NoneFalse激活旧版的split attention优化,防止占用全部可用的VRAM,
–opt-sub-quad-attentionNoneFalse激活增进内存效率的sub-quadratic cross-attention layer优化
–sub-quad-q-chunk-sizeSUB_QUAD_Q_CHUNK_SIZE1024sub-quadratic cross-attention layer优化使用的串行化区块大小
–sub-quad-kv-chunk-sizeSUB_QUAD_KV_CHUNK_SIZENonesub-quadratic cross-attention layer优化使用的kv区块大小
–sub-quad-chunk-thresholdSUB_QUAD_CHUNK_THRESHOLDNonesub-quadratic cross-attention layer优化过程中,区块化使用的VRAM阈值
–opt-channelslastNoneFalse激活4d tensors使用的alternative layout,或许可以加快推理速度 仅适用搭载Tensor内核的Nvidia显卡(16xx系列以上)
–disable-opt-split-attentionNoneFalse强制停用cross-attention layer的优化
–disable-nan-checkNoneFalse不检查生成图像/潜在空间是否有nan。在CI模式无使用存盘点模型的时候很有用。
–use-cpu{all, sd, interrogate, gfpgan, bsrgan, esrgan, scunet, codeformer}None让部份模块使用CPU作为PyTorch的设备
–no-halfNoneFalse不将模型转换为半精度浮点数
–precision{full,autocast}autocast使用此精度评估
–no-half-vaeNoneFalse不将VAE模型转换为半精度浮点数
–upcast-samplingNoneFalse向上采样。搭配 –no-half使用则无效。生成的结果与使用–no-half参数相近,效率更高,使用更少内存。
–medvramNoneFalse激活Stable Diffusion模型优化,牺牲速度,换取较小的VRAM占用。
–lowvramNoneFalse激活Stable Diffusion模型优化,大幅牺牲速度,换取更小的VRAM占用。
–lowramNoneFalse将Stable Diffusion存盘点模型的权重加载至VRAM,而非RAM
–disable-model-loading-ram-optimizationNoneFalse停用模型加载时降低RAM占用的优化。
功能
–autolaunchNoneFalse启动WebUI后自动打开系统缺省的浏览器
–themeNoneUnset使用指定主题启动WebUI (light或dark),无指定则使用浏览器缺省主题。
–use-textbox-seedNoneFalse在WebUI的种子字段使用textbox (没有上下,但可以输入长的种子码)
–disable-safe-unpickleNoneFalse不检查PyTorch模型是否有恶意代码
–ngrokNGROKNoneNgrok授权权杖, –share参数的替代品。
–ngrok-regionNGROK_REGIONus选择启动Ngrok的区域
–update-checkNoneNone启动时检查有无新版本。
–update-all-extensionsNoneNone在启动WebUI的时候自动更新所有扩充功能。
–reinstall-xformersNoneFalse强制重新安装xformers,适用于更新程序之后运行。更新完之后记得移除此参数。
–reinstall-torchNoneFalse强制重新安装touch,适用于更新程序之后运行。更新完之后记得移除此参数。
–testsTESTSFalse运行功能测试,确认WebUI正常运作。
–no-testsNoneFalse即使有--test参数也不要运行功能测试。
–dump-sysinfoNoneFalse倾印系统消息并退出程序(不包括扩充功能)
–disable-all-extensionsNoneFalse停用所有扩充功能,包含内置的扩充功能。
–disable-extra-extensionsNoneFalse停用所有扩充功能。
已经无效的选项
–show-negative-promptNoneFalse无作用
–deepdanbooruNoneFalse无作用
–unload-gfpganNoneFalse无作用
–gradio-img2img-toolGRADIO_IMG2IMG_TOOLNone无作用
–gradio-inpaint-toolGRADIO_INPAINT_TOOLNone无作用
–gradio-queueNoneFalse无作用
–add-stop-routeNoneFalse无作用
–always-batch-cond-uncondNoneFalse无作用