? Stable Diffusion 是一款基于人工智能技術(shù)開發(fā)的繪畫軟件,它可以幫助藝術(shù)家和設(shè)計師快速創(chuàng)建高品質(zhì)的數(shù)字藝術(shù)作品。是2022年發(fā)布的深度學(xué)習(xí)文本到圖像生成模型。它主要用于根據(jù)文本的描述產(chǎn)生詳細(xì)圖像,同時也可以應(yīng)用于其他任務(wù),如內(nèi)補(bǔ)繪制、外補(bǔ)繪制,以及在提示詞指導(dǎo)下產(chǎn)生圖生圖的翻譯。?
? Stable Diffusion 項目本地化的部署,是純代碼界面,而Stable Diffusion WebUI,是基于 Stable Diffusion 項目的可視化操作項目。這里我們也是部署Stable Diffusion WebUI。
本地部署StableDiffusion UI
前置條件
? 在部署StableDiffusion前,如果instance是GPU的instance,需要安裝Nividia的driver,如果對安裝dirver等不熟悉,可查看我之前的博客“AWS instance上部署大模型”
? 按前置條件準(zhǔn)備好instance環(huán)境后,就可以按照StableDiffusion官網(wǎng)的步驟快速安裝StableDiffusion UI了。命令如下圖所示,因?yàn)槲易约旱膇nstance是ubuntu,屬于Debian-based,所以,執(zhí)行第一行的命令,安裝相關(guān)的依賴。
# Debian-based:
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
# Red Hat-based:
sudo dnf install wget git python3 gperftools-libs libglvnd-glx
# openSUSE-based:
sudo zypper install wget git python3 libtcmalloc4 libglvnd
# Arch-based:
sudo pacman -S wget git python3
?一鍵安裝stable-diffusion-webui
?安裝了基礎(chǔ)依賴包后,下載webui.sh文件,執(zhí)行該文件,即可一鍵完成stable-diffusion-webui的安裝。具體命令如下圖所示:
#下載shell腳本
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh
#給文件分配執(zhí)行權(quán)限
chmod -x webui.sh
#執(zhí)行shell文件
./webui.sh
?執(zhí)行shell文件后,可以看到整個shell文件大致完成了三個任務(wù)。
第一:創(chuàng)建python虛擬環(huán)境并激活
第二:通過python執(zhí)行l(wèi)aunch.py文件,這也是stable-diffusion-webui的入口文件。
第三:執(zhí)行l(wèi)aunch.py文件時,會下載stable-diffusion的模型參數(shù)文件,即后綴是.safetensors的文件,最后啟動整個webui應(yīng)用。stable-diffusion-webui的前端是用gradio寫的,默認(rèn)啟動在7860端口。
? 如果是在本機(jī)上運(yùn)行,執(zhí)行完上面的命令,就可以在瀏覽器中輸入“http://127.0.0.1:7860”訪問應(yīng)用了。我的實(shí)驗(yàn)是在aws的instance上進(jìn)行,所以需要在security group的inbound 中開放7860端口。另外,執(zhí)行了下面的命令,將aws上instance的端口與自己的本地電腦端口做了映射,如果不做映射,無法在外面本地電腦上直接訪問127.0.0.1 或者localhost等地址。當(dāng)然,還有第二個辦法,就是修改gradio的默認(rèn)地址,將127.0.0.1修改成0.0.0.0也可以。
# -L 7860:localhost:7860: 設(shè)置本地端口轉(zhuǎn)發(fā),將本地端口 7860 轉(zhuǎn)發(fā)到遠(yuǎn)程主機(jī)的本地回環(huán)地址(localhost)的端口 7860。
# 這種端口轉(zhuǎn)發(fā)允許你在本地訪問遠(yuǎn)程主機(jī)上的服務(wù)
ssh -i /Users/taoli/Downloads/taoli-tokyo.pem -N -f -L 7860:localhost:7860 ubuntu@aws public instance ip
? ?在本地瀏覽器上訪問到的stable-diffusion-webui的界面如下圖所示,這里的checkpoint list就是stablediffusion模型列表,在安裝的時候默認(rèn)下載了v1-5這個基礎(chǔ)模型。
? ?stable-diffusion-webui代碼目錄如下圖所示,extensions下面放下載的所有插件,models下面放下載的所有模型,models下面又分了Stable-diffusion,Lora,VAE等目錄,因?yàn)槌酥髂P屯猓€有很多用于特定作用的模型,例如Lora就是用于模型微調(diào)的。安裝時下載的主模型存放在Stable-diffusion目錄下面。
一些主要的模型以及其作用匯總?cè)缦聢D所示:
Stable-Diffusion-WebUI提供的主要功能
txt2image功能
顧名思義,通過文本生成圖片,在生成圖片的時候分prompt和negative prompt。prompt很容易理解,期望生成怎樣的圖片,在prompt中描述即可。negative prompt的含義是:不期望圖片中生成的東西,例如寫black hair在negative prompt中,理想情況下生成的圖片中,人物都不是黑頭發(fā)。
?除了prompt,還有Sampling method,工具中提供了很多Sampling method。我們知道 sd webui 生成圖像,大致會經(jīng)過以下過程:
1、為了生成圖像, Stable Diffusion 會在潛在空間中生成一個完全隨機(jī)的圖像
2、噪聲預(yù)測器會估算圖像的噪聲
3、噪聲預(yù)測器從圖像中減去預(yù)測的噪聲
4、這個過程反復(fù)重復(fù) N 次以后,會得到一個干凈準(zhǔn)確的圖像
這個去噪的過程,就被稱為采樣。采樣中使用的方法被稱為 Sampling method (采樣方法或者是采樣器)??偨Y(jié)而言不同采樣器的特點(diǎn)大致如下:
- 如果想快速生成質(zhì)量不錯的圖片,建議選擇 DPM++ 2M Karras (20 -30步) 、UNIPC (15-25步)
- 如果想要高質(zhì)量的圖,不關(guān)心重現(xiàn)性,建議選擇 DPM++ SDE Karras (10-15步 較慢) ,DDIM(10-15步 較快)
- 如果想要簡單的圖,建議選擇 Euler, Heun(可以減少步驟以節(jié)省時間)
- 如果想要穩(wěn)定可重現(xiàn)的圖像,請避免選擇任何祖先采樣器(名字里面帶a或SDE)
- 相反,如果想要每次生成不一樣的圖像,可以選擇不收斂的祖先采樣器(名字里面帶a或SDE)
Hires.fix是Stable Diffusion中文網(wǎng)提供的一個功能,用于高清修復(fù)生成的圖片。 通過應(yīng)用Hires.fix,可以將圖像放大并提高分辨率,以獲得更清晰的結(jié)果。 這是一個非常實(shí)用的功能,可以提高圖片的質(zhì)量并滿足您的需求。 無論是在打印還是在網(wǎng)絡(luò)上展示,修復(fù)后的高清圖片都能夠給觀看者帶來更好的視覺體驗(yàn)。
Image2image功能
Image2Image的功能,顧名思義就是通過圖片生成另外的圖片,這里除了生成圖片外,還有Inpaint功能,即如果只想修改原圖中的某個部分,則使用Inpaint功能。如下圖所示:將原圖的人物頭像換成了根據(jù)prompt中新生成的頭像。
在Inpaint過程中,有兩個關(guān)鍵參數(shù)CFG scale和Masked Content,需要理解其含義。
CFG scale:與文生圖中的CFG類似,表示生成的圖片要follow prompt的程度
1:基本忽略prompt
3:帶些創(chuàng)造性
7:創(chuàng)造性與prompt之間的一個較好的平衡
15:緊跟prompt提示走
30:完全follow prompt
Masked content:控制覆蓋的區(qū)域如何初始化
Fill:使用原圖的高模糊圖作為初始化
Original:無修改
Latent noise:先使用fill的模式對masked區(qū)域做初始化,然后再加入隨機(jī)噪點(diǎn)到latent 空間
Latent nothing:與latent noise類似,但是不加入隨機(jī)噪點(diǎn)
Extras功能
附加功能的主要作用就是:把一張小圖、模糊的圖、有噪點(diǎn)的圖,放大、清晰化處理為更大的圖。如下圖所示,生成的圖片比原始圖片更大了。
? 除了上面的三個主功能外,在web ui上還可以安裝各種插件,在Extension界面上進(jìn)行安裝。如下圖所示:可以選擇需要安裝的插件,點(diǎn)擊install后,就會下載插件,并存放在web-ui的extensions目錄下。如果要讓插件生效,需要重啟應(yīng)用(即執(zhí)行python3?launch.py命令即可)。安裝某些插件后,webui上會出現(xiàn)新的tab頁,例如,EasyPhoto就是安裝對應(yīng)插件后才出現(xiàn)的新tab。
? 除了上面介紹的功能外,web-ui界面上還有Settings tab,主要用于設(shè)置各類參數(shù)。還有Checkpoint merger功能,主要用于合并多個模型成一個模型,并設(shè)置不同模型的權(quán)重。文章來源:http://www.zghlxwxcb.cn/news/detail-774670.html
? 以上就是對Stable-Diffusion-WebUI的主要功能的簡要介紹,對于某些功能,后面還會在專門的博客中做詳細(xì)介紹。文章來源地址http://www.zghlxwxcb.cn/news/detail-774670.html
到了這里,關(guān)于Stable-diffusion-webui本地部署和簡要介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!