快轉到主要內容

命令列引數|Stable Diffusion WebUI使用手冊

· 民國113年甲辰年
·
切換正體/简体 ·
分類 Linux系統 Self-hosting自架
目錄
Stable Diffusion WebUI使用手冊 - 點選展開系列文
4: 現在位置

註:這篇文章僅供參考,本系列教學已經附上預先設定好的指令引數了,照抄即可。

Stable Diffusion WebUI的專案資料夾附有啟動主程式的指令稿(script),稱為啟動指令稿。

此圖使用Stable Diffusion WebUI生成

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_URL pip的--index-url參數
TRANSFORMERS_CACHE Transformer函式庫下載的路徑,以及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, –help None False 顯示此幫助訊息並退出。
–exit 安裝後終止程式。
–data-dir DATA_DIR ./ 使用者資料儲存的路徑。
–config CONFIG configs/stable-diffusion/v1-inference.yaml 建構模型設定檔的路徑。
–ckpt CKPT model.ckpt Stable Diffusion模型的存檔點模型路徑。一旦指定,該模型會加入至存檔點模型列表並載入。
–ckpt-dir CKPT_DIR None 存放Stable Diffusion模型存檔點模型的路徑。
–no-download-sd-model None False 即使找不到模型,也不自動下載SD1.5模型。
–vae-dir VAE_PATH None VAE的路徑。
–gfpgan-dir GFPGAN_DIR GFPGAN/ GFPGAN路徑
–gfpgan-model GFPGAN_MODEL GFPGAN模型檔名
–codeformer-models-path CODEFORMER_MODELS_PATH models/Codeformer/ Codeformer模型檔的路徑。
–gfpgan-models-path GFPGAN_MODELS_PATH models/GFPGAN GFPGAN模型檔的路徑。
–esrgan-models-path ESRGAN_MODELS_PATH models/ESRGAN ESRGAN模型檔的路徑。
–bsrgan-models-path BSRGAN_MODELS_PATH models/BSRGAN BSRGAN模型檔的路徑。
–realesrgan-models-path REALESRGAN_MODELS_PATH models/RealESRGAN RealESRGAN模型檔的路徑。
–scunet-models-path SCUNET_MODELS_PATH models/ScuNET ScuNET模型檔的路徑。
–swinir-models-path SWINIR_MODELS_PATH models/SwinIR SwinIR和SwinIR v2模型檔的路徑。
–ldsr-models-path LDSR_MODELS_PATH models/LDSR 含有LDSR模型檔的路徑。
–lora-dir LORA_DIR models/Lora 含有LoRA模型檔的路徑。
–clip-models-path CLIP_MODELS_PATH None 含有CLIP模型檔的路徑。
–embeddings-dir EMBEDDINGS_DIR embeddings/ Textual inversion的embeddings路徑 (預設: embeddings)
–textual-inversion-templates-dir TEXTUAL_INVERSION_TEMPLATES_DIR textual_inversion_templates Textual inversion範本的路徑
–hypernetwork-dir HYPERNETWORK_DIR models/hypernetworks/ Hypernetwork路徑
–localizations-dir LOCALIZATIONS_DIR localizations/ 在地化翻譯路徑
–styles-file STYLES_FILE styles.csv 風格檔名
–ui-config-file UI_CONFIG_FILE ui-config.json UI設定檔檔名
–no-progressbar-hiding None False 取消隱藏Gradio UI的進度條 (我們之所以將其隱藏,是因為在瀏覽器啟動硬體加速的狀況下,進度條會降低機器學習的效能)
–max-batch-count MAX_BATCH_COUNT 16 UI的最大批次數值
–ui-settings-file UI_SETTINGS_FILE config.json UI設定值畫面的檔名
–allow-code None False 允許在WebUI執行自訂指令稿
–share None False 使用此引數在啟動後會產生Gradio網址,使WebUI能從外部網路存取
–listen None False 以0.0.0.0主機名稱啟動Gradio,使其能回應連線請求
–port PORT 7860 以給定的通訊埠啟動Gradio。1024以下的通訊埠需要root權限。如果可用的話,預設使用7860通訊埠。
–hide-ui-dir-config None False 在WebUI隱藏設定檔目錄。
–freeze-settings None False 停用編輯設定。
–enable-insecure-extension-access None False 無視其他選項,強制啟用擴充功能頁籤。
–gradio-debug None False 使用 –debug選項啟動Gradio
–gradio-auth GRADIO_AUTH None 設定Gardio授權,例如"username:password",或是逗號分隔值形式"u1:p1,u2:p2,u3:p3"
–gradio-auth-path GRADIO_AUTH_PATH None 設定Gardio授權檔案路徑。 例如 “/路徑/” 再加上--gradio-auth的格式。
–disable-console-progressbars None False 不在終端機顯示進度條。
–enable-console-prompts None False 在使用文生圖和圖生圖的時候,於終端機印出提示詞
–api None False 以API模式啟動WebUI
–api-auth API_AUTH None 設定API授權,例如"username:password",或是逗號分隔值形式"u1:p1,u2:p2,u3:p3"
–api-log None False 啟用所有API請求的紀錄檔
–nowebui None False 僅啟動API, 不啟動WebUI
–ui-debug-mode None False 不載入模型,以更快啟動WebUI
–device-id DEVICE_ID None 選擇要使用的CUDA裝置 (例如在啟動指令稿使用export CUDA_VISIBLE_DEVICES=0或1)
–administrator None False 使用系統管理員權限
–cors-allow-origins CORS_ALLOW_ORIGINS None 允許跨來源資源共用,列表以逗號分隔,不可有空格
–cors-allow-origins-regex CORS_ALLOW_ORIGINS_REGEX None 允許跨來源資源共用,後面加上單一正規表達式
–tls-keyfile TLS_KEYFILE None 部份啟用TLS,,需要配合–tls-certfile才能正常運作
–tls-certfile TLS_CERTFILE None 部份啟用TLS,需要配合–tls-keyfile才能正常運作
–server-name SERVER_NAME None 設定伺服器主機名稱
–skip-version-check None False 不檢查torch和xformers的版本
–no-hashing None False 停用計算存檔點模型的sha256雜湊值,加快載入速度
–skip-version-check None False 不檢查torch與xformers版本。
–skip-version-check None False 不檢查Python版本。
–skip-torch-cuda-test None False 不檢查CUDA是否正常運作。
–skip-install None False 跳過安裝套件。
–loglevel None None 日誌紀錄等級,有效值為CRITICAL, ERROR, WARNING, INFO, DEBUG
–log-startup None False 在啟動程式時輸出launch.py的詳細執行內容。
–api-server-stop None False 允許透過API通訊停止/重啟/強制停止主程式。
–timeout-keep-alive int 30 設定uvicorn的timeout_keep_alive數值。
性能相關
–xformers None False 給cross attention layers啟用xformers
–reinstall-xformers None False 強制重裝xformers,升級時很有用。但為避免不斷重裝,升級後將會移除。
–force-enable-xformers None False 強制給cross attention layers啟用xformers 此選項無法運作的話請勿回報bug
–xformers-flash-attention None False 給xformers啟用Flash Attention,提昇再現能力 (僅支援SD2.x或以此為基礎的模型)
–opt-split-attention None False 強制啟用Doggettx的cross-attention layer最佳化。有CUDA的系統預設啟用此選項。
–opt-split-attention-invokeai None False 強制啟用InvokeAI的cross-attention layer最佳化。無CUDA的系統預設啟用此選項。
–opt-split-attention-v1 None False 啟用舊版的split attention最佳化,防止佔用全部可用的VRAM,
–opt-sub-quad-attention None False 啟用增進記憶體效率的sub-quadratic cross-attention layer最佳化
–sub-quad-q-chunk-size SUB_QUAD_Q_CHUNK_SIZE 1024 sub-quadratic cross-attention layer最佳化使用的序列化區塊大小
–sub-quad-kv-chunk-size SUB_QUAD_KV_CHUNK_SIZE None sub-quadratic cross-attention layer最佳化使用的kv區塊大小
–sub-quad-chunk-threshold SUB_QUAD_CHUNK_THRESHOLD None sub-quadratic cross-attention layer最佳化過程中,區塊化使用的VRAM閾值
–opt-channelslast None False 啟用4d tensors使用的alternative layout,或許可以加快推理速度 僅適用搭載Tensor核心的Nvidia顯示卡(16xx系列以上)
–disable-opt-split-attention None False 強制停用cross-attention layer的最佳化
–disable-nan-check None False 不檢查生成圖像/潛在空間是否有nan。在CI模式無使用存檔點模型的時候很有用。
–use-cpu {all, sd, interrogate, gfpgan, bsrgan, esrgan, scunet, codeformer} None 讓部份模塊使用CPU作為PyTorch的裝置
–no-half None False 不將模型轉換為半精度浮點數
–precision {full,autocast} autocast 使用此精度評估
–no-half-vae None False 不將VAE模型轉換為半精度浮點數
–upcast-sampling None False 向上取樣。搭配 –no-half使用則無效。生成的結果與使用–no-half引數相近,效率更高,使用更少記憶體。
–medvram None False 啟用Stable Diffusion模型最佳化,犧牲速度,換取較小的VRAM佔用。
–lowvram None False 啟用Stable Diffusion模型最佳化,大幅犧牲速度,換取更小的VRAM佔用。
–lowram None False 將Stable Diffusion存檔點模型的權重載入至VRAM,而非RAM
–disable-model-loading-ram-optimization None False 停用模型載入時降低RAM佔用的優化。
功能
–autolaunch None False 啟動WebUI後自動開啟系統預設的瀏覽器
–theme None Unset 使用指定主題啟動WebUI (light或dark),無指定則使用瀏覽器預設主題。
–use-textbox-seed None False 在WebUI的種子欄位使用textbox (沒有上下,但可以輸入長的種子碼)
–disable-safe-unpickle None False 不檢查PyTorch模型是否有惡意程式碼
–ngrok NGROK None Ngrok授權權杖, –share引數的替代品。
–ngrok-region NGROK_REGION us 選擇啟動Ngrok的區域
–update-check None None 啟動時檢查有無新版本。
–update-all-extensions None None 在啟動WebUI的時候自動更新所有擴充功能。
–reinstall-xformers None False 強制重新安裝xformers,適用於更新程式之後執行。更新完之後記得移除此引數。
–reinstall-torch None False 強制重新安裝touch,適用於更新程式之後執行。更新完之後記得移除此引數。
–tests TESTS False 執行功能測試,確認WebUI正常運作。
–no-tests None False 即使有--test引數也不要執行功能測試。
–dump-sysinfo None False 傾印系統訊息並退出程式(不包括擴充功能)
–disable-all-extensions None False 停用所有擴充功能,包含內建的擴充功能。
–disable-extra-extensions None False 停用所有擴充功能。
已經無效的選項
–show-negative-prompt None False 無作用
–deepdanbooru None False 無作用
–unload-gfpgan None False 無作用
–gradio-img2img-tool GRADIO_IMG2IMG_TOOL None 無作用
–gradio-inpaint-tool GRADIO_INPAINT_TOOL None 無作用
–gradio-queue None False 無作用
–add-stop-route None False 無作用
–always-batch-cond-uncond None False 無作用
Stable Diffusion WebUI使用手冊 - 點選展開系列文
4: 現在位置

相關文章


感謝您的閱讀。我寫作是為了誠實表達想法,而不是追逐社群互動與流量。我很樂意傾聽你在仔細閱讀我文章之後的心得。若有內容勘誤 or 技術問題 or 回饋想法,歡迎透過本站「關於」頁面的Email與我聯絡。