從零開始,手把手教你本地部署Stable Diffusion AI繪畫(Win最新版)

img

本號之前有發過一篇win平臺的教程,由于是去年10月發布的,而Al繪畫技術發展很快,那篇教程已經有些不適用了,有些同學執行到第二步就出錯了。

應廣大同學的期望,我更新一版新版詳細教程。

img

一、前言

1.為什么要本地部署

因為沒有生成數量的限制,不用花錢,不用被NSFW約束,生成時問快,不用排隊,自由度

高,插件豐富,功能眾多,可以調試和個性化的地方也更多。

如果說,會用各大在線的Al繪圖平臺來生成圖像的話,算是Al繪畫領域的小學生級別。

那么,如果會使用本地化部署來運行A繪畫的話,那就已經算得上是高中畢業,進入成年啦。

等你能夠使用A繪圖指哪打哪,想怎么畫怎么畫,那就已經是大學畢業,學成歸來的牛逼人

物啦。

2.本地化部署的要求

本地化部署運行雖然很好,但是也有一些基本要求

(1) 需要擁有NVIDIA顯卡,GTX1060 (或者同等算力的N卡)以上,顯存4G以上。

(2) 操作系統需要win10或者win11的系統。(如果是MacOS的同學,請看這里)

(3) 內存16G或者以上,至少有一個128G以上的SSD固態硬盤。

(4)如果不知道自己電腦配置的,可以下載一個魯大師或者類似軟件,點擊硬件檢測,就能看到顯卡,顯存,CPU,內存等信息。

(5) 最好會魔法上網,否則網絡波動,有些網頁會打不開,有些下載很慢

(6)耐心,多嘗試,多搜索。這個教程我已經重復過多次,因此很多問題都踩過坑并寫出來了,還有很多學員踩坑的問題也都放在里面了。所以請放心,一定能跑通的。

(7) 我的電腦配置供大家參考,Win11,i5,NVIDIA GT1060 5G顯存,16G內存

生成一張20 Step的圖大概20-30s (若使用更高性能的電腦,生成速度更快。)

如果滿足相關軟硬件要求,請繼續往下看

3.部署的AI繪畫項目簡介

AI繪畫開源項目其實有蠻多個,但是最受歡迎,功能最豐富,且最易用的開源項目之一,就是Stable diffusion WebUl,因此我們是以Stable diffusion webui的本地部署為例。

img

(本地Webui版AI繪圖界面)

二.部署算法環境:

1.下載miniconda,用于配置基礎算法環境。

這個是用來管理python版本的,他可以實現python的多版本切換。

下載地址: http://docs.conda.io/en/latest/miniconda.html

img

安裝時按默認的一路next就行。

2.打開miniconda,

img

輸入

conda -V 

彈出版本號即為正確安裝

img

(顯示conda版本,那就對了)

  1. 在miniconda小窗里,執行下面語句,
conda config --set show_channel_urls yes 

接著運行

conda clean -i 

清除索引緩存

4.創建python 3.10.6版本的環境,叫sdwebui好了

運行下面語句,(注意,這一步一定要內外網通暢,否則會報錯。多執行幾次。)

conda create --name sdwebui python=3.10.6

提示你是否要繼續安裝,輸入y,并回車。

img

顯示下面這個界面,這步就完成了。程序已經在你的路徑C:\ProgramData\Miniconda3\envs\sdwebui已經創建了一個新的項目。

img

5,激活項目環境

輸入

conda activate sdwebui

回車。

img

6.升級pip并更改默認庫包下載地址為清華鏡像站。

依次執行下面的兩行語句,每一行輸入后回車,等執行完再輸入下一行,再回車。

python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

不報錯就是完成了。報錯了就依次執行多幾次。

  1. 安裝git,用來克隆下載github的項目,比如本作中的stable diffusion webui這個開源項目。

(1)前往git官網 http://git-scm.com/download/win下載相關安裝包

img

(2)下載好后,一路默認安裝,點next即可。

安裝完成之后,回到剛剛的miniconda小窗口,并輸入并執行下面指令。

git --version

查看git的版本,顯示了版本號即安裝成功。

img

(3)如果報錯,顯示說“‘git’ 不是內部或外部命令,也不是可運行的程序”。(如果不報錯有顯示git版本,則跳過這一步,進入第8步)

那么,把git的bin文件夾地址和git-core的文件夾地址放到windows系統變量的path里面。

默認gitbin文件夾是:C:\Program Files\Git\bin

默認gitcore文件夾地址是:C:\Program Files\Git\mingw64\libexec\git-core

把地址添加到環境變量的Path里面。

操作路徑是:開始-設置-系統-高級系統設置-環境變量-path-新建。(具體見下圖)

img

添加完后,你在miniconda里面,輸入

git --version

就能出現git版本號啦。

8.安裝CUDA

cuda是NVIDIA顯卡用來跑算法的依賴程序,所以我們需要它。

打開NVIDIA cuda官網, http://developer.nvidia.com/cuda-toolkit-archive

(這里有人可能會打不開網頁,如果打不開,請用魔法上網。)

你會發現有很多版本的CUDA,下載哪個版本呢?

img

回到一開始的miniconda的小窗,輸入

nvidia-smi

查看你的cuda版本。

img

(在這里輸入nvidia-smi的時候,有可能會顯示“‘nvidia’ 不是內部或外部命令,也不是可運行的程序”。

這時候,需要確認你的顯卡是否為Nvidia的顯卡。

如果是,則檢查自己的顯卡驅動是否最新版,可以用魯大師或者驅動精靈之類的軟件更新驅動至最新。

如果更新驅動還不行,則把C:\Program Files\NVIDIA Corporation\NVSMI添加到系統環境變量。)

比如我的顯卡cuda是11.7版本,所以我就下載11.7.1即可。

img

然后安裝自己的系統選擇win10或者11,exe local,download

下載完后安裝,這個軟件2個多G,可以安裝在c盤以外的地方。比如D盤,節省系統盤空間。

好了,安裝好之后,電腦的基礎環境設置終于完事了。

下面開始正式折騰stable diffusion了。

三、stable diffusion環境配置

1.下載stable diffusion源碼

確認你的miniconda黑色小窗顯示的是

(sdwebui) C:\Users\Administrator>

這代表著你正在sdwebui這個程序環境里面。

接著我們要安裝stable-diffusion-webui本體了。

先看看你想安裝在哪個盤,建議放在非系統盤的其他盤根目錄。最好是SSD盤,加載模型速度會快一些。

比如我安裝在F盤。我就輸入下面指令再回車。(安裝在其他盤同理)

F:

img

接著執行下面指令克隆SD項目代碼:

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

等到頁面顯示“done”,則克隆完成。

img

2.下載SD訓練模型

打開 https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.ckpt

點擊download,下載模型。大約5.2G。

下載完把這個訓練模型v2-1_768-ema-pruned.ckpt放入models\Stable-diffusion文件夾里面。(我的文件夾是“

F:\stable-diffusion-webui\models\Stable-diffusion“)

注:

(1)這里可能提示需要注冊或同意協議之后才能下載,那就注冊并同意。

(2)models\Stable-diffusion這個文件夾,專門存放用于生成AI繪圖的繪圖元素的基礎模型庫。后續如果在其他網站比如civitai之類的地方下載的ckpt或者safetensors文件也是放在這個文件夾里面。

3.準備開啟運行ai繪圖程序sd-webui

在miniconda的黑色小窗,執行下面指令,進入項目文件夾:

cd stable-diffusion-webui 

執行下面指令, 打開webui的應用程序,

webui-user.bat

接下來就是等待系統自動執行。

直到系統提示,running on local URL: http://127.0.0.1:7860

這就代表,你可以開始正式使用AI畫畫啦~

注意:

(1)這一步要下載不少的依賴程序,網絡一點波動都可能會報錯。所以安裝過程當中多次報錯也很正常,需要耐心和時間多次嘗試。多次執行webui-user.bat指令。

(2)不要關閉黑色小窗,哪怕它幾分鐘甚至20分鐘沒有任何變化。直到它報錯再進行下一次嘗試。

(3)如果提示連接錯誤,可能需要開啟或者關閉魔法上網,再重新執行webui-user.bat命令。

(4)如果不小心退出了黑色窗口,則重新點擊:開始菜單-程序-打開miniconda窗口,依次輸入執行

conda activate sdwebui
F:
cd stable-diffusion-webui
webui-user.bat

(因為我是安裝再f盤,所以我輸入”F:”,你如果安裝在其他盤,則修改成其他盤符,比如”D:”, “E:”之類)

(5)如果長時間卡在Installing gfpgan(或者installing clip,installing open_clip)這個環節,那么進入F:\stable-diffusion-webui文件夾下面,找到launch.py這個文件,用記事本打開。

在第200多行到300行的位置,找到這段代碼。

img

并在“https://github.com/xxx”的最前面,加上:https://ghproxy.com/

加三個位置,變成如下狀態,

img

然后ctrl + s保存后退出。

這就相當于讓原來從github下載相關程序包變成了走國內鏡像下載相關程序包,這樣會增加網絡的穩定性和網絡速度。

改完之后,下面繼續執行webui-user.bat。

(4)如果改了launch.py文件, 還卡在gfpgan環節,那么記得關閉外網功能。讓下載走通用線路。

(5)安裝完gfpgan,clip,open_clip等幾個大頭之后,后面還有一些自動安裝的依賴項,如果比較慢,記得打開外網。總之,感覺卡慢或者報錯之后,則切換調節網絡后再重新執行webui-user.bat指令。

4.打開webui網頁版

當黑色窗口提示,running on local URL: [http://127.0.0.1:7860 的時候,如下圖

img

不要關閉黑色窗口,接著用瀏覽器(比如谷歌瀏覽器chrome)打開http://127.0.0.1:7860,就是AI繪畫主界面啦。

你可以直接在左上角的文本框輸入prompt提示詞,

比如:pandas eating bamboo (熊貓在吃竹子)

然后點擊右側的橙色按鈕Generate,過一小會,就能看到你畫出來的第一張圖啦。

img

(注意,如果寫了prompt點擊generate后無法生成圖片,看見黑色小框顯示“float 32“之類的關鍵字,則在webui頁面的Settings-stable-diffusion最下面,勾選float32的選項框。接著點擊上方的Apply Settings應用,然后按F5刷新頁面后,即可正常使用。)

img

恭喜你,歷盡千辛萬苦,終于完成了stable diffusion webui的安裝,也成為新潮的AI玩家之一啦,歡迎來到新世界,為你驕傲,筆芯~

三.答疑

1.之后每次打開stable-diffusion-webui都要這么麻煩嗎?

不用,之后每次打開只要1分鐘,簡單6步即可完成

第一步,打開miniconda,

第二步,執行conda activate sdwebui,

第三步,執行F:

第四步,執行cd stable-diffusion-webui

第五步,執行webui-user.bat. 等待黑色小窗出現[http://127.0.0.1:7860 字樣,

第六步,瀏覽器打開[http://127.0.0.1:7860

現在,即可開始作畫。(注意,第三步是因為我安裝在F盤,所以輸入F: ,你如果安裝在其他盤,記得改成自己的盤符,比如D: E: G:等等)

2.我還是覺得安裝太麻煩,有問題能問你嗎?你能幫我嗎?

可以,私我,但不保證回復時間。

3.安裝好了,怎么用呢?

請查看本號的AI繪圖相關文集,里面有很多好玩的用法介紹。

另外,本號覺悟之坡也長期分享AI繪圖領域的知識技巧,歡迎關注學習交流。

4.內外網問題怎么辦?

由于某種原因,抱歉不能出相關教程。如果需要協助,可以聯系我單獨協助,比如通過幫忙下載好大文件再通過網盤分享的方式來解決。

5.為什么要自己部署,這么麻煩,不可以下載整合包嗎?

當然可以,整合包的好處就是方便,快捷。直接下載幾個幾十G的文件,即可直接打開,動動鼠標就能使用。

但是也有缺點,

(1)整合包是別人開發和維護的,可能會有后門隱患。

(2)Stable diffusion本身就是開源的,具有開放的精神,因此有很多豐富的插件和源源不斷的新功能。

而整合包又讓他變成了封閉版,之后如果自己想要玩新的插件,功能,或者升級stable diffusion,都需要依賴整合包的開發者,會麻煩很多。如果別人沒有及時更新呢?如果別人不更新了呢?

因此,個人不太建議使用整合包。

6.每次啟動的時候,miniconda小黑框提示說xformers缺失,要管嗎?

可以不用管,也能正常使用AI繪畫。如果你想管的話,用記事本打開stable-diffusion-webui下面的webui-user.bat文件,找到“COMMANDLINE_ARGS=“,后面增加”–xformers”,如下圖,接著保存并關閉窗口。

img

關閉網頁,關閉miniconda黑色小窗。重新打開webui,這時候系統會自動下載安裝xformers,下次就不會報錯了。有xformers,據說跑圖速度會略快一些些。我這邊實測感覺沒啥區別。

關于AI繪畫技術儲備

學好 AI繪畫 不論是就業還是做副業賺錢都不錯,但要學會 AI繪畫 還是要有一個學習規劃。最后大家分享一份全套的 AI繪畫 學習資料,給那些想學習 AI繪畫 的小伙伴們一點幫助!

👉CSDN大禮包:《StableDiffusion安裝包&AI繪畫入門學習資料》免費分享

請添加圖片描述

對于0基礎小白入門:

如果你是零基礎小白,想快速入門AI繪畫是可以考慮的。

一方面是學習時間相對較短,學習內容更全面更集中。
二方面是可以找到適合自己的學習方案

包括:stable diffusion安裝包、stable diffusion0基礎入門全套PDF,視頻學習教程。帶你從零基礎系統性的學好AI繪畫!

零基礎AI繪畫學習資源介紹
👉stable diffusion新手0基礎入門PDF👈

(全套教程文末領取哈)
在這里插入圖片描述

👉AI繪畫必備工具👈

在這里插入圖片描述

👉AI繪畫基礎+速成+進階使用教程👈

觀看零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
在這里插入圖片描述
溫馨提示:篇幅有限,已打包文件夾,獲取方式在:文末

👉大廠AIGC實戰案例👈

光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。
在這里插入圖片描述

👉12000+AI關鍵詞大合集👈

在這里插入圖片描述
這份完整版的學習資料已經上傳CSDN,朋友們如果需要可以微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費】

請添加圖片描述

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

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

相關文章

day21 力扣669. 修剪二叉搜索樹 力扣108.將有序數組轉換為二叉搜索樹 力扣538.把二叉搜索樹轉換為累加樹

修剪二叉搜索樹 給你二叉搜索樹的根節點 root ,同時給定最小邊界low 和最大邊界 high。通過修剪二叉搜索樹,使得所有節點的值在[low, high]中。修剪樹 不應該 改變保留在樹中的元素的相對結構 (即,如果沒有被移除,原有的父代子代關…

《設計模式之禪》筆記摘錄 - 7.中介者模式

中介者模式的定義中介者模式的定義為:Define an object that encapsulates how a set of objects interact.Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently…

Flutter:上傳圖片,選擇相機或相冊:wechat_assets_picker

圖片選擇功能:可選單張,或多張。 1、showModalBottomSheet(選擇相冊/相機) 2、WechatImagePicker(選取圖片) 3、CompressMediaFile(圖片壓縮)1、ActionSheetUtilimport package:duca…

pytest--0

1 pytest 使用方式 pytest測試框架-- 基本功能使用詳解 2 pytest-mock常用方式 pytest–1–pytest-mock常用的方法 3

multiprocessing.Pool 中的 pickle 詳解

前言: 在 Python 的 multiprocessing.Pool 中,任務和數據需要通過序列化(pickle)傳遞給子進程。pickle 是 Python 的內置序列化模塊,用于將 Python 對象轉換為字節流,以便在進程間通信時傳遞。然而&#xf…

Java集合框架體系詳解:List/Set/Map接口對比與核心實現原理

一、集合框架核心接口對比 1.1 List/Set/Map接口特性接口類型特性描述典型實現List有序可重復,支持索引訪問ArrayList/LinkedListSet無序不可重復,基于哈希表或樹實現HashSet/TreeSetMap鍵值對存儲,鍵唯一值可重復HashMap/TreeMap核心差異&am…

LeafletJS 進階:GeoJSON 與動態數據可視化

引言 LeafletJS 作為一個輕量、靈活的 JavaScript 地圖庫,以其對 GeoJSON 數據格式的強大支持而聞名。GeoJSON 是一種基于 JSON 的地理數據格式,能夠表示點(Point)、線(LineString)、多邊形(Po…

【STM32實踐篇】:F407 時鐘系統

文章目錄1. 時鐘與啟動2. CubeMX 時鐘樹2.1 時鐘源2.2 PLL 鎖相環2.3 時鐘分發與選擇2.4 頻率限制1. 時鐘與啟動 復位默認時鐘:系統復位后,CPU 時鐘默認由 16MHz 內部 RC 振蕩器(HSI)提供,該 RC 振蕩器經工廠校準&…

純前端html實現圖片坐標與尺寸(XY坐標及寬高)獲取

純前端html實現圖片坐標與尺寸&#xff08;XY坐標及寬高&#xff09;獲取。用于證書圖片或pdf打印的坐標測定。 <!DOCTYPE html> <html lang"zh-CN"> <head> <meta charset"UTF-8"> <title>純html前端實現圖片坐標與尺寸&am…

飛睿UWB超寬帶定位測距技術,數字鑰匙重塑智能生活,高精度厘米級定位無感解鎖

最近&#xff0c;數字鑰匙領域動作頻頻&#xff0c;科技巨頭與車企正掀起一波創新浪潮。小米15S Pro搭載恩智浦UWB芯片&#xff0c;用戶靠近閘機即可無感通行深圳云巴一號線&#xff0c;輕觸小米YU7車門自動解鎖&#xff0c;實現手機-汽車-公共交通的無縫數字鑰匙生態。在智能家…

基于springboot+vue+mysql平臺的醫療病歷交互系統(源碼+論文)

一、開發環境 相關技術介紹 B/S模式分析 C/S模式&#xff1a;主要由客戶應用程序(Client)、服務器管理程序(Server)和中間件(middleware)三個部件組成。客戶應用程序是系統中用戶與數據組件交互。服務器程序負責系統資源&#xff0c;如管理信息數據庫的有效管理。中間件負責連…

arm架構,arm內核,處理器之間的關系

一、情景分析 我們經常說&#xff0c;stm32f103是采用cotex-M3內核&#xff0c;基于armv7架構設計的。 那么&#xff0c;stm32f103、cotex-M3、armv7之間有什么關系呢&#xff1f; 二、層次分析 1. 架構&#xff08;Architecture&#xff09; 定義&#xff1a;架構是處理器…

基于PHP的招投標系統_603gk

目錄具體實現截圖課程項目技術路線開發技術介紹PHP核心代碼部分展示系統測試詳細視頻演示/源碼獲取具體實現截圖 課程項目技術路線 招投標系統后端采用 PHP 語言搭配Thinkphp或者 Laravel 框架&#xff0c;PHP 語法簡潔且功能強大&#xff0c;Laravel 或者Thinkphp框架能優化代…

深入解析 JavaScript 中的 `$.ajax()`:專業指南與實戰示例

文章目錄一、為什么需要 $.ajax()&#xff1f;二、核心語法解析三、關鍵參數深度剖析四、實戰示例&#xff1a;從基礎到進階五、錯誤處理最佳實踐六、性能與安全優化七、現代替代方案對比八、總結作為網站編輯&#xff0c;我將帶您深入剖析 jQuery 的 $.ajax() 方法。本文不僅涵…

Flutter 前端開發中的常見問題全面解析

Flutter 開發中的常見問題全面解析一篇給 Flutter 開發者「靈兒」里里外外都能看的問題項。從基礎開發到打包上線&#xff0c;每一步都充滿坑&#xff0c;我們詳細列出「環環盜光」的那些場景和解決思路&#xff01;【基礎系統】開發環境問題 1. flutter doctor 報錯 常見錯誤:…

STM32 單片機的停車場管理系統設計與實現

基于 STM32 的停車場管理系統設計與實現摘要隨著城市汽車保有量的快速增長&#xff0c;停車場管理的效率與智能化水平愈發重要。本文設計并實現了一套基于 STM32 單片機的停車場管理系統&#xff0c;整合車輛檢測、車位引導、計費管理及信息交互等功能。系統以 STM32 為控制核心…

STM32 寫選項字 關鍵要加載HAL_FLASH_OB_Launch

AI亂寫&#xff0c;還是得自己來&#xff01;void Write_OptionBytes_IWDG_STDBY(void) {FLASH_OBProgramInitTypeDef OBInit;HAL_FLASHEx_OBGetConfig(&OBInit); // 獲取當前選項字節配置[6,7](ref)// 檢查當前nRST_STDBY位&#xff08;IWDG_STDBY相關位&#xff09;是否…

153.在 Vue 3 中使用 OpenLayers + Cesium 實現 2D/3D 地圖切換效果

&#x1f3ac; 效果演示截圖 ? 前言 在實際項目開發中&#xff0c;我們經常需要提供「二維地圖 三維地形」的可視化效果切換&#xff0c;例如&#xff1a; 智慧農業展示耕地分布 三維地形起伏&#xff1b; 智慧城市展示建筑物點位 三維城市&#xff1b; 數字孿生場景中&…

純C++11實現!零依賴貝葉斯情感分析系統,掌握機器學習系統工程化的秘密!

本文深度剖析了一個完全基于C++11標準庫實現的貝葉斯情感分析系統。該系統采用模塊化設計,實現了從文本預處理、特征提取到樸素貝葉斯分類的完整機器學習流水線。 1. 系統架構概覽 1.1 技術棧選擇與設計哲學 該系統完全采用C++11標準庫實現,無任何外部依賴,體現了"純…

Android原生Dialog

在原生android里面&#xff0c;有兩種dialog寫法&#xff0c;一種是直接使用里面提供的AlertDialog.Builder方法去使用&#xff0c;另一種是我們自己根據自己的ui來設計&#xff08;自定義&#xff09;。在一般開發中&#xff0c;我們主要使用的是自定義&#xff0c;主要是Aler…