AI繪畫之一_StableDiffusion_搭建環(huán)境

一周之內(nèi)體驗了:Diffusion,CLIP崇决,Segment Anything,Insightface底挫,LoRA恒傻,ConnectNet 諸多算法的實際應(yīng)用,全部是本地部署建邓,0花費盈厘。

1 選擇 AI 繪畫工具

目前 Ai 繪畫界有兩大主流工具,Midjourney(簡稱MJ) 和 Stable Diffusion(稱SD)官边。
MJ 于 2022 年 3 月首次面世沸手,已從 V3 模型發(fā)展至 V5 模型,SD 由 Stability AI 公司和非營利研究人員在2022年8月推出的注簿,可在本地免費部署契吉。

MJ 更適合新手入門,10刀/月诡渴,30刀/月捐晶,60刀/月三檔收費;低付費的圖片是共享的玩徊,高付費服務(wù)能一對一出圖租悄;學(xué)習(xí)提示詞門檻低;有一定的審核要求恩袱,敏感詞比較多泣棋;少量設(shè)置后的畫面看起來就很炫,但不太受控畔塔,自娛自樂還行潭辈,難以穩(wěn)定輸出鸯屿。

SD 可以設(shè)置大量參數(shù),下載海量模型把敢,本地部署寄摆,提示詞百無禁忌,針對實際工作中的目標(biāo)修赞,更需要 SD 來定制婶恼。它需要本地硬件支持,以及更高的學(xué)習(xí)成本柏副。

如果只想玩一下勾邦,國內(nèi)也有一些免費平臺,瀏覽器端和手機端微信端都有割择,就是生成效果比較差眷篇。

從兩個產(chǎn)品不同的生態(tài)圈就可以看出,開放的系統(tǒng)明顯呈現(xiàn)出眾人拾柴火焰高的趨勢荔泳,從平臺蕉饼、插件、模型玛歌,到文檔昧港,工具都越做越好。另外沾鳄,LoRA 技術(shù)讓大家都可以自己訓(xùn)練自己的增補小模型慨飘,Civitai圈的交流氛圍,加入的人也越來越多译荞。這就相當(dāng)于MJ一個公司和所有人拼瓤的,又沒有特別過人的核心技術(shù)。

藝術(shù)給人帶來的體驗和工作體驗不太一樣吞歼,大家更向往彼此的認(rèn)同感圈膏,除了經(jīng)濟價值,工作本身就是工作的動力篙骡,這也成為一種巨大助推力稽坤。

2 搭建 SD 環(huán)境

2.1 介紹

Stable Diffusion (簡稱:SD)支持:通過描述生成圖,或者改圖糯俗,做自己的卡通頭像尿褪,生成各種風(fēng)格的畫作,給線稿上色得湘,修復(fù)相片杖玲,換臉,摳圖 …… 點兩下鼠標(biāo)淘正,幾秒就能生成一張作品摆马。在自家機器上搭建一個 SD 環(huán)境臼闻,不用花錢,不用上網(wǎng)也能使用囤采。

不過還是有點門檻述呐,比如:

  • 安裝時需要 “科學(xué)”連接下載網(wǎng)站(否則無法隨心選擇海量模型)
  • 英文尚可,能看懂界面和簡單說明(用翻譯軟件也不是不行)
  • 會一點Python如遇問題自己能解決(也不一定會遇到問題)
  • 有帶6G以上顯存的 GPU 的機器(沒有 GPU 會很慢蕉毯,但也能用)
  • 至少 20G 的磁盤剩余空間(這個必須有乓搬,建議 50G,最好是SSD恕刘,否則加載模型特別慢)

本教程中我使用了 Ubuntu + Docker 方式安裝缤谎,這是目前我能找到最簡單的方法,幾乎只需要輸入一個命令褐着,即可運行基本功能;當(dāng)然前提是事先安裝了 Ubuntu 系統(tǒng) Docker 環(huán)境以及 GPU 驅(qū)動托呕。

這僅僅是運行環(huán)境含蓉,后面涉及各種模型的組合,調(diào)參项郊,插件馅扣,了解工具周邊生態(tài),與其它工具聯(lián)合使用着降;還有審美差油,光影的感覺,對受眾內(nèi)心的揣摩…… 總之任洞,當(dāng)一個 AI 畫手也不是件容易的事蓄喇。

2.2 基礎(chǔ)環(huán)境

操作系統(tǒng): Ubuntu 22.04
顯卡: NVIDIA GTX 1080 Ti 11GB 顯存

2.3 安裝方法

SD github 項目中推薦直接在系統(tǒng)中安裝環(huán)境。我則更喜歡把 Python交掏、git妆偏、conda 一系列工具都打包在內(nèi)的 docker 安裝方式,這避免了與機器上安裝的其它工具的沖突盅弛。
siutin/stable-diffusion-webui-docker 是目前下載量最大的 Stable Diffusion 鏡像钱骂,幾乎和 Stable Diffusion github 版本同步更新,相比幾個同類鏡像挪鹏,它的大小和易用性也是最好的见秽。

2.3.1 CPU 版本

$ docker run -it --name sdw --network host \
  -v $(pwd)/models:/app/stable-diffusion-webui/models \
  -v $(pwd)/outputs:/app/stable-diffusion-webui/outputs \
  -v $(pwd)/extensions:/app/stable-diffusion-webui/extensions \
  --rm siutin/stable-diffusion-webui-docker:latest-cpu \
  bash  # 安裝
$ ./webui.sh --skip-torch-cuda-test --use-cpu all --share --precision full --no-half --listen # 運行

下載后安裝模型即可使用。
參數(shù):--no-half 由于我這邊一直報錯讨盒,所以設(shè)置了該參數(shù)解取。
參數(shù):--listen 設(shè)置后可使用其 ip 地址訪問服務(wù),否則只允許本機用 127.0.0.1訪問催植,服務(wù)默認(rèn)端口為 7860肮蛹。
參數(shù):--enable-insecure-extension-access 允許使用插件

2.3.2 GPU 版本

$ nvidia-docker run -it --name sdw --gpus all --network host \
  -v $(pwd)/models:/app/stable-diffusion-webui/models \
  -v $(pwd)/outputs:/app/stable-diffusion-webui/outputs \
  -v $(pwd)/extensions:/app/stable-diffusion-webui/extensions \
  --rm siutin/stable-diffusion-webui-docker:cuda-v1.5.1-2023-08-02 \
  bash
$ ./webui.sh --share --listen --enable-insecure-extension-access

2.3.3 下載模型

我下載的第一個模型是:
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors
可用于生成真實場景勺择,修圖,換圖等伦忠,大小為4.2G省核,下載后放入 stable-diffusion-webui/models/Stable-diffusion/ 目錄。

2.3.4 使用

如果上述程序不報錯昆码,在瀏覽器打開 127.0.0.1:7860气忠,即可看到 gradio 生成的界面。

2.3.5 注意事項

  • 請將模型赋咽、輸出旧噪、擴展名映射到 docker 以外的目錄,以保證正常保存數(shù)據(jù)脓匿。
  • 以 bash 方式進入鏡像后淘钟,使用命令運行 webui.sh 工具,這樣可以在重啟時一定程度保留現(xiàn)場陪毡,也較方便調(diào)試米母。
  • 安裝時,我的CPU版正常運行了毡琉,GPU版老是報錯铁瞒,于是升級了宿主機的GPU驅(qū)動(從470升到535,nvidia-driver-535, nvidia-utils-535兩個包)桅滋,重啟后一切正常
  • CPU版本工具 3分鐘生成一張圖慧耍,GPU版本 7秒生成一張圖,是完全不同的體驗丐谋。
  • 插件和模型數(shù)據(jù)未必都下載到 models 目錄下芍碧,所以我后來做了 docker commit,以保存現(xiàn)場笋鄙。

2.4 調(diào)試命令

  • 查看 torch 可否支持當(dāng)前 GPU
python -c "import torch; print(torch.cuda.is_available())"
  • 查看當(dāng)前 GPU 硬件
lspci |grep VGA
  • venv
    venv是Python的虛擬環(huán)境工具师枣,以支持多個Python環(huán)境并存。它是Python 3.3版本后標(biāo)準(zhǔn)庫中的一個模塊萧落。stable diffusion 使用了venv 將環(huán)境搭建在 /app/stable-diffusion-webui/venv/下践美,自行調(diào)試需設(shè)置 venv:
python -m venv venv # 設(shè)置環(huán)境
source venv/bin/activate # 激活環(huán)境

3 源碼

源碼并不多,去掉 .git 目錄找岖,只有4M左右陨倡。當(dāng)前版本共 160 個 python 文件,主要包含:內(nèi)置函數(shù)extensions-builtin许布,支持工具scripts兴革,以及主功能模塊modules。整體 python 代碼量在 3W-4W 行左右。界面基于 gradio 框架開發(fā)杂曲。

4 相關(guān)資源

Stable Diffusion 源碼
相關(guān) Docker 鏡像
最詳細(xì)的WEBUI啟動參數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末庶艾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子擎勘,更是在濱河造成了極大的恐慌咱揍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚饵,死亡現(xiàn)場離奇詭異煤裙,居然都是意外死亡,警方通過查閱死者的電腦和手機噪漾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門硼砰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人欣硼,你說我怎么就攤上這事题翰。” “怎么了诈胜?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵遍愿,是天一觀的道長。 經(jīng)常有香客問我耘斩,道長,這世上最難降的妖魔是什么桅咆? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任括授,我火速辦了婚禮,結(jié)果婚禮上岩饼,老公的妹妹穿的比我還像新娘荚虚。我一直安慰自己,他們只是感情好籍茧,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布版述。 她就那樣靜靜地躺著,像睡著了一般寞冯。 火紅的嫁衣襯著肌膚如雪渴析。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天吮龄,我揣著相機與錄音俭茧,去河邊找鬼。 笑死漓帚,一個胖子當(dāng)著我的面吹牛母债,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼毡们,長吁一口氣:“原來是場噩夢啊……” “哼迅皇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起衙熔,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤登颓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后青责,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挺据,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年脖隶,在試婚紗的時候發(fā)現(xiàn)自己被綠了扁耐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡产阱,死狀恐怖婉称,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情构蹬,我是刑警寧澤王暗,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站庄敛,受9級特大地震影響俗壹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜藻烤,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一绷雏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧怖亭,春花似錦涎显、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至倾芝,卻和暖如春讨勤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛀醉。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工悬襟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拯刁。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓脊岳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子割捅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容