AI生成圖片Stable?Diffusion環(huán)境搭建與運行方法
Stable Diffusion是一種基于擴散過程的生成模型,由Ge et al.在2021年提出。該模型利用了隨機變量的穩(wěn)定分布,通過遞歸地應(yīng)用擴散過程來生成高質(zhì)量的圖像。與其他生成模型相比,Stable Diffusion在生成高質(zhì)量的圖像方面具有顯著優(yōu)勢。具體而言,該模型所生成的圖像具有更好的細節(jié)保留能力和更自然的外觀。通過對不同擴散時間的研究,Stable Diffusion還可以實現(xiàn)通過調(diào)整時間精度來生成圖像的分辨率。
在實踐中,Stable Diffusion被廣泛應(yīng)用于圖像生成、壓縮、修復(fù)和增強等應(yīng)用中。此外,該模型還可以與其他深度學(xué)習(xí)技術(shù)結(jié)合使用,例如GAN和VAE,以提高生成圖像的質(zhì)量和多樣性??傊琒table Diffusion是一種非常實用且具有潛力的圖像生成模型,在未來的研究和應(yīng)用中將發(fā)揮重要作用。
本文主要介紹Stable Diffusion webui環(huán)境搭建,后續(xù)將陸續(xù)介紹參數(shù)設(shè)置、API搭建、模型基本原理、訓(xùn)練、部署等內(nèi)容。具體更新可關(guān)注文章下方公眾號,也可關(guān)注本專欄。所有相關(guān)文章會在《Python從零開始進行AIGC大模型訓(xùn)練與推理》中進行更新。
1 環(huán)境搭建
顯卡驅(qū)動、CUDA、CUDNN、Docker、Python等環(huán)境搭建請參考本專欄另一篇博文《Docker AIGC等大模型深度學(xué)習(xí)環(huán)境搭建(完整詳細版)》,地址為“http://www.dbjr.com.cn/article/283300.htm”。
1.1 創(chuàng)建Python環(huán)境
這里使用conda創(chuàng)建一個Python 3.10環(huán)境,命令如下所示。
conda create -n stdf python=3.10 -y conda activate stdf
1.2 stable-diffusion-webui環(huán)境安裝
stable-diffusion-webui提供了網(wǎng)頁前端頁面用于Stable Diffusion模型生成圖片,其Github官方工程地址為“https://github.com/AUTOMATIC1111/stable-diffusion-webui”。官方工程頁面提供了安裝步驟,包括一些自動安裝腳本。這里主要是手動進行安裝,并在Ubuntu 18.04與Ubuntu 20.04上進行驗證,其環(huán)境安裝命令如下所示。手動進行安裝的好處在于及時了解報錯信息并進行修復(fù)。
conda activate stdf git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git cd stable-diffusion-webui pip install -r requirements_versions.txt -i https://pypi.tuna.tsinghua.edu.cn/simple pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
2 啟動stable-diffusion-webui
stable-diffusion-webui的啟動命令為“python launch.py”,啟動后程序會自動安裝和下載所依賴的其它環(huán)境。安裝過程中出現(xiàn)的問題及解決方式如下所示。運行成功后,我們可通過網(wǎng)頁瀏覽器訪問,默認端口號為7860,訪問地址為“IP:7860”或“0.0.0.0:7860”或“127.0.0.1:7860”或“localhost:7860”。如果需要通過其它主機進行訪問,需要讓防火墻允許該端口,命令為“sudo ufw allow 7860”。
運行成功后頁面如下。安裝過程中出現(xiàn)的問題及解決方式如下所示。
2.1 openclip安裝不上
Openclip無法安裝原因可能是網(wǎng)絡(luò)問題導(dǎo)致無法獲取到github上相應(yīng)資源,因而可通過將其替換為gitee上對應(yīng)資源加以解決。具體修改方式為將launch.py文件中的openclip_package所在行替換為如下內(nèi)容,位于第234行左右。
openclip_package = os.environ.get('OPENCLIP_PACKAGE', "git+https://gitee.com/ufhy/open_clip.git@bb6e834e9c70d9c27d0dc3ecedeebeaeb1ffad6b")
2.2 libGL.so
缺乏libGL.so庫的報錯信息為“ImportError: libGL.so.1: cannot open shared object file: No such file or directory”。該錯誤在安裝opencv是經(jīng)常會遇到,是系統(tǒng)本身缺乏相應(yīng)庫所導(dǎo)致的。解決方案如下。
apt update apt install libgl1-mesa-glx -y
2.3 NaN
由于精度問題導(dǎo)致模型出現(xiàn)NaN錯誤,以致于無法正常生成圖片。這個問題在切換到Stable Diffusion v2.1版本模型時可能會出現(xiàn)。具體問題如下所示:
NansException: A tensor with all NaNs was produced in VAE. This could be because there's not enough precision to represent the picture. Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.
解決方法是將launch.py文件中的commandline_args = os.environ.get('COMMANDLINE_ARGS', "")替換為如下內(nèi)容,位于第13行左右。
commandline_args = os.environ.get('COMMANDLINE_ARGS', "--no-half")
3 模型替換
Stable Diffusion模型有多個版本,當前運行l(wèi)aunch.py程序時會自動下載v1.5版本模型。Stable Diffusion模型存儲在models/Stable-diffusion/下,如下圖所示。我們可以去huggingface網(wǎng)站“https://huggingface.co/”上搜索并下載對應(yīng)模型,然后將模型放到該文件夾下即可。下載時僅需要下載.safetensors后綴的模型文件即可。
例如,stable-diffusion-2-1的下載地址為“https://huggingface.co/stabilityai/stable-diffusion-2-1”,點擊頁面中的“Files and versions”即可看到對應(yīng)的模型文件。我們可以只下載其中.safetensors后綴的模型文件,也可以通過Git LFS下載全部內(nèi)容。Git LFS安裝與模型下載請參考《ChatGPT平替-ChatGLM環(huán)境搭建與部署運行》。
4 啟動端口修改
如上所述,程序默認啟動端口為7860,我們可通過命令“python launch.py --port 5800”來指定端口號。修改webui.py文件的第260行也可以改變端口號,如下所示。這里將share直接設(shè)置成True后可以允許公網(wǎng)訪問。Server_name最好設(shè)置成“0.0.0.0”,如果設(shè)置成“127.0.0.1”,那么也可能會導(dǎo)致公網(wǎng)無法訪問。
app, local_url, share_url = shared.demo.launch( share=True, server_name='0.0.0.0', server_port=5900,
5 后臺運行
默認情況下,關(guān)閉啟動launch.py的終端窗口后,程序會退出。如果希望程序在后臺運行,那么可以通過nohup命令實現(xiàn)。
(1)保存日志到nohup.out
“nohup python launch.py &”可使程序保持在后臺運行,并且日志信息會保存到nohup.out文件。
(2)不保存日志
不保存日志的后臺運行命令為“: nohup python launch.py > /dev/null 2>&1 &”。
(3)關(guān)閉進程
如果需要關(guān)閉后臺進程,可通過“ps -aux | grep launch.py”查詢到進程ID,并通過“kill -9 進程ID”來關(guān)閉進程。
本文主要介紹Stable Diffusion webui環(huán)境搭建,后續(xù)將陸續(xù)詳細介紹Stable Diffusion的參數(shù)設(shè)置、API搭建、模型基本原理、訓(xùn)練、部署等內(nèi)容。所有相關(guān)文章會在《Python從零開始進行AIGC大模型訓(xùn)練與推理》中進行更新。
到此這篇關(guān)于AI圖片生成Stable Diffusion環(huán)境搭建與運行的文章就介紹到這了,更多相關(guān)AI圖片生成Stable Diffusion內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Python找不到ssl模塊問題 No module named _ssl的方法
這篇文章主要介紹了解決Python找不到ssl模塊問題 No module named _ssl的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04python按列索引提取文件夾內(nèi)所有excel指定列匯總(示例代碼)
這篇文章主要介紹了python按列索引提取文件夾內(nèi)所有excel指定列匯總,本文通過多種場景分析結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03如何利用Python處理excel表格中的數(shù)據(jù)
Excel做為職場人最常用的辦公軟件,具有方便、快速、批量處理數(shù)據(jù)的特點,下面這篇文章主要給大家介紹了關(guān)于如何利用Python處理excel表格中數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-03-03Windows 下更改 jupyterlab 默認啟動位置的教程詳解
這篇文章主要介紹了Windows 下更改 jupyterlab 默認啟動位置,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05python 申請內(nèi)存空間,用于創(chuàng)建多維數(shù)組的實例
今天小編就為大家分享一篇python 申請內(nèi)存空間,用于創(chuàng)建多維數(shù)組的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12