Stable Diffusion WebUI 各操作系統安裝教程

最近幾天在 2 臺 Mac、2 臺 PC、一臺云無 GPU 的 Linux 安裝了 Stable Diffusion WebUI,這里記錄下如何安裝,以及一些注意點和坑。

以下內容針對 Windows(N 卡)、MacOS(m 系列芯片)、Linux(Ubuntu、無 GPU)。

Windows 安裝

Windows 安裝算是比較簡單的,首先直接到 www.python.org/downloads/r… 最下方下載 Windows Installer(注意官方建議版本是 3.10.6,不要使用太新的或太舊的版本,存在部分包不兼容的問題),然后點擊安裝,建議選擇默認安裝方式并勾選上 PATH,這樣后面就不用自己設置 PATH 環境變量了:

最后的 PATH 最大長度限制的解除可選可不選。然后就可以 clone WebUI 倉庫了,如果沒有安裝過 git 的記得先安裝一下:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

clone 完成后進入 WebUI 目錄雙擊 webui-user.bat 即可打開 WebUI,WebUI 會自動安裝需要的依賴并啟動,首次運行需要下載的依賴較多可能需要等待比較久的時間。

MacOS 安裝

MacOS 安裝同樣需要先安裝依賴,注意先安裝好 homebrew,由于 m 系列芯片支持兩個版本的 homebrew,所以一定要注意,需要使用 x86 版本的 homebrew,可以使用 which brew 查看,如果是 /usr/local/bin/brew 則是 x86,如果不是最好卸載重裝后再繼續下面的操作。

確認 homebrew 無誤后,使用 homebrew 安裝需要的依賴,并 clone Stable Diffusion WebUI:

brew install cmake protobuf rust python@3.10 git wget
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

上述操作都就緒后,就可以進入 WebUI 目錄,然后使用 ./webui.sh 啟動,WebUI 會自動安裝需要的依賴并啟動,首次運行需要下載的依賴較多可能需要等待比較久的時間。

Linux 安裝

我的云主機操作系統是 Ubuntu 22,并且由于是白嫖的甲骨文的免費云,沒有 GPU,所以只能用純 CPU 跑。

在 Linux 上跑也是一樣的路子,先安裝依賴,再 clone WebUI:

sudo apt install wget git python3 python3-venv
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

然后進入 WebUI 目錄執行 ./webui.sh 啟動即可,同樣的,WebUI 會自動安裝需要的依賴并啟動,首次運行需要下載的依賴較多可能需要等待比較久的時間。

不過需要注意的是由于機器沒有 GPU,在啟動時候需要添加參數來使用 GPU:

./webui.sh --skip-torch-cuda-test --precision full --no-half --use-cpu all

還需要注意,有一些 model 的參數需要 GPU 的支持,所以使用 CPU 跑圖很可能會發現跑半天出現不支持 CPU 的錯誤,所以如果不是沒辦法強烈不建議使用 CPU 來跑

啟動

在 Windows 啟動時添加參數

由于 Windows 上啟動時使用的是 bat 文件,而不是命令行,所以需要添加參數時和其它系統不同,需要編輯 webui-user.bat 文件,然后將在其中的 set COMMANDLINE_ARGS= 后面加上需要添加的參數來運行。

Serve 給其它機器使用

默認情況下 WebUI 只會監聽本機的 host,如果需要從其他機器訪問,比如在局域網通過另一臺機器訪問服務器上的 WebUI 則需要增加 --listen 參數。添加參數后如果需要使用插件要添加 --enable-insecure-extension-access 參數,不然會出現最下方的問題。

當然其實也可以直接用 Nginx 反代就不會觸發 WebUI 的安全問題。

Nginx 反代

如果想用 Nginx 反代 WebUI,需要注意:WebUI 里面用到 websocket,所以反代也需要考慮到,不然 WebUI 中發出的 ws 請求 /queue/join 會一直報錯,下面放一下我的反代的配置:

server {listen 80;listen [::]:80;server_name xxx.xxx.com;return 301 https://$server_name$request_uri;
}server {listen 443 ssl;listen [::]:443 ssl;server_name xxx.xxx.com;ssl_certificate /etc/nginx/cert/xxx.pem;ssl_certificate_key /etc/nginx/cert/xxx.key;proxy_connect_timeout              60s;proxy_send_timeout                 60s;proxy_read_timeout                 60s;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Upgrade           $http_upgrade;proxy_set_header Connection        $connection_upgrade;proxy_set_header X-Forwarded-Proto $scheme;location / {proxy_pass http://localhost:7860;}
}

使用上述配置還需要在 nginx.conf 中的 http 模塊中添加上如下聲明,不然會報錯:

map $http_upgrade $connection_upgrade {default upgrade;''      close;
}

速度

從幾臺機器和結合最近幾天在其它平臺上的經驗來看,速度差異非常大,我兩臺 Mac 都是 m1-16G,PC 由于顯卡太老舊根本跑不起來(GTX660),Linux 是甲骨文的 VM.Standard.A1.Flex-4VCPU-24G,對比后速度如下:

  • Linux 跑一張默認圖耗時大概 9 分鐘左右
  • m1-16G 跑一張默認圖的耗時大概在 50 秒
  • Colab 的 T4 跑一張默認圖耗時大概在 4 秒左右
  • 阿里云的 A10 跑一張默認圖都是秒出的

如果稍微復雜點的模型我的這臺 Linux 一晚上都跑不出幾張圖,m1 勉強能用,所以哪怕是 Colab 現在的免費時長縮短到一小時,其實也比在其他機器上瞎跑好多了,效率擺在這里。

FAQ

AssertionError: extension access disabled because of command line flags

當使用 WebUI 安裝插件時報錯,這個是因為使用了 --listen 參數,WebUI 為了安全(因為此時可以外網通過 IP 訪問 WebUI)會默認禁用插件安裝的權限,此時可以通過 --enable-insecure-extension-access 參數關閉插件的安全檢測。

參考鏈接: github.com/AUTOMATIC11…

WebSocket 連不上,queue/join 報錯

正常出現在使用 nginx 反代時,一般由于沒有反代 websocket 導致 websocket 無法連接。

沒有 GPU 怎么辦

沒有 GPU 時在啟動時需要添加 --skip-torch-cuda-test --no-half --use-cpu all 這幾個參數,關閉 CUDA 并強制開啟使用 CPU。

Mac 報錯: have ‘arm64’, need ‘x86_64’

一般這種情況下是安裝了 arm 版的 homebrew,導致安裝的其他依賴包也是 arm 版本,而有些依賴包沒有 arm 版本就會造成依賴缺失,所以遇到后需要檢查自己的 homebrew 版本并切換成 x86 版本并重新安裝依賴。

注意

最后一定要注意:在調試時出現問題需要重新安裝依賴時,一定、一定、一定要記得先清理干凈 WebUI 目錄下的緩存,比如 __pycache__venv 這幾個目錄,否則會一直使用緩存中的配置。

寫在最后

感興趣的小伙伴,贈送全套AIGC學習資料,包含AI繪畫、AI人工智能等前沿科技教程和軟件工具,具體看這里。
?

AIGC技術的未來發展前景廣闊,隨著人工智能技術的不斷發展,AIGC技術也將不斷提高。未來,AIGC技術將在游戲和計算領域得到更廣泛的應用,使游戲和計算系統具有更高效、更智能、更靈活的特性。同時,AIGC技術也將與人工智能技術緊密結合,在更多的領域得到廣泛應用,對程序員來說影響至關重要。未來,AIGC技術將繼續得到提高,同時也將與人工智能技術緊密結合,在更多的領域得到廣泛應用。
?
在這里插入圖片描述

一、AIGC所有方向的學習路線

AIGC所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照下面的知識點去找對應的學習資源,保證自己學得較為全面。

在這里插入圖片描述

在這里插入圖片描述

二、AIGC必備工具

工具都幫大家整理好了,安裝就可直接上手!
在這里插入圖片描述

三、最新AIGC學習筆記

當我學到一定基礎,有自己的理解能力的時候,會去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細記載了他們對一些技術點的理解,這些理解是比較獨到,可以學到不一樣的思路。
在這里插入圖片描述
在這里插入圖片描述

四、AIGC視頻教程合集

觀看全面零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。

在這里插入圖片描述

五、實戰案例

紙上得來終覺淺,要學會跟著視頻一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。
在這里插入圖片描述
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24664.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24664.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24664.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

最小二乘法-擬合平面方程

背景 通常有這樣的需求 給你一些點,擬合出最佳直線或者擬合出最佳平面。本文介紹的是最小二乘法 最小二乘法 最小二乘法(又稱最小平方法)是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求…

Linux | 標準IO編程

Linux | 標準IO編程 時間:2024年6月8日23:03:43 文章目錄 `Linux` | 標準`IO`編程1.標準`IO`編程1-1.流的打開1-2.流的關閉1-3.錯誤處理函數原型perror參數功能返回值使用示例注意事項額外信息函數原型strerror參數返回值使用示例注意事項errno 變量總結1-4.流的讀寫1-4-1.按字…

【國產NI替代】SMU 源測量儀:源測量單元平臺主要用于半導體、傳感器、模組等 IVR 測試測量

? 集 5 臺儀器 (數字萬用表、電壓源、電流源、電子負載和脈沖發生器) 功能于?體 ? 典型輸出源及測量精度 02%,支持直流/脈沖輸出模式 ? 脈沖輸出模式,最?脈沖寬度 100 us ,上升時間 10 us ? 具有 pA 級分辨率高精度源,且…

【Python機器學習】PCA——特征提取(1)

PCA的一個重要應用是特征提取。特征提取背后的思想是,可以找到一種數據表示,比給定的原始表示更適合于分析。特征提取很有用,它的一個很好的應用實例就是圖像。圖像由像素組成,通常存儲于紅綠藍強度。圖像中的對象通常由上千個像素…

c++【入門】已知一個圓的半徑,求解該圓的面積和周長?

限制 時間限制 : 1 秒 內存限制 : 128 MB 已知一個圓的半徑,求解該圓的面積和周長 輸入 輸入只有一行,只有1個整數。 輸出 輸出只有兩行,一行面積,一行周長。(保留兩位小數)。 令pi3.1415926 樣例…

圖論第8天

685.冗余連接II 這題需要考慮兩種情況&#xff1a; 1.兩個輸入 2.沒有兩個輸入就是有成環 class Solution { public:static const int N 1005;int father[N];int n;void init(){for (int i 0; i < n; i){father[i] i;}}int find(int x){return x father[x] ? x : f…

Python——用新字符替換字符串中的舊字符

替換方法&#xff1a; string.replace&#xff08;old&#xff0c;new [&#xff0c;count]&#xff09;參考文章&#xff1a; Python程序用特定字符替換字符串中的空格

變聲器軟件免費版有哪些?國內外12大熱門變聲器大盤點!(新)

變聲軟件是一種人工智能AI音頻處理工具&#xff0c;允許用戶實時修改自己的聲音或改變預先錄制的音頻。這些軟件解決方案可提供不同的效果&#xff0c;如改變聲音的音調或速度&#xff0c;或將我們的聲音轉換成其他人或其他東西的聲音&#xff0c;如名人、卡通人物、機器人或不…

【C/C++】相機標定

參考文章 相機標定&#xff08;Camera calibration&#xff09;原理、步

WinForms 應用(.NET 8.0)使用ReportViewerCore.WinForms顯示打印RDLC報表

在要WinForms 應用&#xff08;.NET 8.0&#xff09;中&#xff0c;顯示RDLC報表&#xff0c;就要使用ReportViewerCore.WinForms。原來的ReportViewer只能在.NET Framework框架下運行。 1.ReportViewerCore.WinForms 程序包說明 SQL Server Reporting Services ReportViewer…

Windows下使用netty的SelfSignedCertificate進行SSL加密通信

在使用netty的時候&#xff0c;經常需要對通信進行SSL加密&#xff0c;這就需要相關的證書和秘鑰&#xff1b; 當我們在自己的開發環境中進行測試的時候&#xff0c;有一個非常簡單的方法來創建證書和私鑰文件&#xff0c;netty提供了SelfSignedCertificate類。 SelfSignedCer…

UG12編程怎么沒有:深度解析與困惑探尋

UG12編程怎么沒有&#xff1a;深度解析與困惑探尋 UG12編程作為現代制造業的重要工具&#xff0c;其應用廣泛且功能強大。然而&#xff0c;對于初學者或某些特定需求的用戶來說&#xff0c;有時可能會遇到“UG12編程怎么沒有”的困惑。這種困惑可能源于軟件功能的不熟悉、操作…

[stm32]——uc/OS-III多任務程序

目錄 一、獲取uC/OS-III源碼 二、移植源代碼 &#xff08;1&#xff09;建立工程文件 &#xff08;2&#xff09;移植uC/OS-III源碼 &#xff08;3&#xff09;添加工程組件和頭文件路徑 &#xff08;4&#xff09;添加頭文件路徑 三、修改代碼 總結 一、獲取uC/OS-III源碼 …

【Vue】聲明式導航-自定義類名(了解)

問題 router-link的兩個高亮類名 太長了&#xff0c;我們希望能定制怎么辦 解決方案 我們可以在創建路由對象時&#xff0c;額外配置兩個配置項即可。 linkActiveClass和linkExactActiveClass const router new VueRouter({routes: [...],linkActiveClass: "類名1&quo…

【中篇】從 YOLOv1 到 YOLOv8 的 YOLO 物體檢測模型歷史

YOLO 型號之所以聞名遐邇,主要有兩個原因:其速度和準確性令人印象深刻,而且能夠快速、可靠地檢測圖像中的物體。上回我解釋了Yolo v1, 今天從Yolov2開始。 YOLOv2:更好、更快、更強 2017 年 7 月一個悶熱的星期二下午,雷德蒙(Joseph Redmon, Yolo創始人)再次走上舞臺。 …

Android gradle kts 8.0以上版本配置簽名和修改APK輸出名字

目錄 概述修改簽名配置新建簽名文件目錄配置簽名信息使用簽名信息打包 修改APK名稱 概述 之前寫過一篇文章是通過Kotlin的Dsl結合gradle編寫的插件來管理項目依賴&#xff0c;我是從一個開源項目叫DanDanPlayAndroid項目上學到的&#xff0c;那時還沒有使用toml文件來管理項目…

【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南

文章目錄 1 引言2 準備工作2.1 安裝 Docker2.1.1 在 Linux 上安裝 Docker2.1.2 在 macOS 上安裝 Docker2.1.3 在 Windows 上安裝 Docker 2.2 驗證 Docker 安裝 3 拉取 confluentinc/cp-kafka Docker 鏡像3.1 拉取鏡像3.2 驗證鏡像 4 運行 Kafka 容器4.1 啟動 ZooKeeper4.2 啟動…

【原創】springboot+mysql農業園區管理系統設計與實現

個人主頁&#xff1a;程序猿小小楊 個人簡介&#xff1a;從事開發多年&#xff0c;Java、Php、Python、前端開發均有涉獵 博客內容&#xff1a;Java項目實戰、項目演示、技術分享 文末有作者名片&#xff0c;希望和大家一起共同進步&#xff0c;你只管努力&#xff0c;剩下的交…

公差基礎(互換性和測量基礎)

互換性概念&#xff1a; 圖紙設計是理論的&#xff0c;理性的&#xff0c;沒有誤差的&#xff0c;但是實際上加工上市有誤差的。 所以說&#xff0c;實際加工出來的零件是否符合要求&#xff0c;我們需要對圖紙上的尺寸精度&#xff0c;幾何精度&#xff0c;表面粗糙度進行說明…

STM32關于uc/OS-III的多任務程序

目錄 一、UCOS-III源碼獲取 二、HAL庫工程的建立 1.RCC配置 2.SYS配置 3.USART1配置 4.GPIO配置 5.時鐘配置 6.項目配置 三、KEil文件添加 1.文件復制 2.KEil工程添加 3.添加文件路徑 四、代碼修改 1. 2.修改文件app_cfg.h中代碼 3.修改include.h的代碼 4.修改…