AI专业教您保姆级在暗影精灵8Windows11上本地部署实现AI绘画:Stable Diffusion(万字教程,多图预警)
目錄
一、Stable Diffusion介紹???
二、Stable Diffusion環(huán)境搭建
1.Anaconda下載與安裝
2.Pycharm(IDE)下載與安裝
3.CUDA、CuDNN下載與安裝
三、Stable Diffusion的本地部署
1.克隆項(xiàng)目到本地
2.初始化打開項(xiàng)目
3.安裝環(huán)境所需庫
4.運(yùn)行代碼以及效果展示
????????至此,AI繪畫 Stable Diffusion本地部署以及初步功能實(shí)現(xiàn)完成!制作不易,望喜歡!
一、Stable Diffusion介紹???
????????最近火熱的AI繪畫技術(shù)吸引了很多人的目光,AI繪畫今年取得如此廣泛關(guān)注的原因,有很大的功勞得益于Stable Diffusion的開源。它是由德國慕尼黑大學(xué)機(jī)器視覺與學(xué)習(xí)研究小組和Runway的研究人員基于CVPR2022的一篇論文:《High-Resolution Image Synthesis with Latent Diffusion Models》,并與其他社區(qū)團(tuán)隊(duì)合作開發(fā)的一款開源模型。
?
?
? ? ? ? 以上是Stable Diffusion的效果圖。有經(jīng)驗(yàn)、有條件的小伙伴可以去翻閱大佬們的Paper,剛接觸AI繪畫的零基礎(chǔ)小白也可以隨我去一步步部署、搭建、復(fù)現(xiàn)這篇論文的功能哦!此項(xiàng)目有顯卡門檻,建議顯存越大越好。
????????Stable Diffusion是一個(gè)基于Latent Diffusion Models(潛在擴(kuò)散模型,LDMs)的文圖生成(text-to-image)模型。具體來說,得益于Stability AI的計(jì)算資源支持和LAION的數(shù)據(jù)資源支持,Stable Diffusion在LAION-5B的數(shù)據(jù)庫子集上訓(xùn)練了一個(gè)Latent Diffusion Models,該模型專門用于文圖生成。Latent Diffusion Models通過在一個(gè)潛在表示空間中迭代“去噪”數(shù)據(jù)來生成圖像,然后將表示結(jié)果解碼為完整的圖像,讓文本轉(zhuǎn)圖片生成能夠在10G顯存的GPU下運(yùn)行,并在幾秒鐘內(nèi)生成圖像,無需預(yù)處理和后處理,這確實(shí)是速度和質(zhì)量上的突破。
二、Stable Diffusion環(huán)境搭建
1.Anaconda下載與安裝
? ? ? ? 1.Anaconda介紹:Anaconda是開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng)。conda是一個(gè)開源的包、環(huán)境管理器,可以用于在同一個(gè)機(jī)器上安裝不同版本的軟件包及其依賴,并能夠在不同的環(huán)境之間切換。總之,它是放實(shí)現(xiàn)代碼條件的容器!
? ? ? ? 2.Anaconda下載:Anaconda | The World's Most Popular Data Science Platform
進(jìn)入官網(wǎng)后如下圖所示,點(diǎn)擊Download即可開始下載:
?
下載完成后在文件夾中有一個(gè)exe程序文件,雙擊打開:
?
? ? ? ? 3.Anaconda安裝:依次點(diǎn)擊Next-I agree-All Usrs-Next,然后到如下圖片所示:
?
把兩個(gè)選項(xiàng)都勾選上,這樣省去自己去添加環(huán)境變量,之后點(diǎn)擊Install-Next-Next-Finish就完成安裝了。
? ? ? ? 4.測(cè)試Anaconda:按下win+R,輸入cmd,打開終端,輸入conda有輸出即可,輸入conda -V可查看Anaconda版本。
????????至此Anaconda安裝完成!底下是一些配置。
? ? ? ? 5.添加Anaconda鏡像:添加鏡像源之后底下的安裝各種庫速度會(huì)快很多
打開Anaconda PowerShell Prompt(建議添加桌面快捷方式以后要經(jīng)常打開):
?
輸入如下代碼即可:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes? ? ? ? 6.繼續(xù)輸入以下代碼創(chuàng)建本項(xiàng)目AI繪畫的基礎(chǔ)環(huán)境(其中包含了python,名字可自定):
conda create -n ai-painting python=3.102.Pycharm(IDE)下載與安裝
????????1.Pycharm介紹:PyCharm是一種Python?IDE(Integrated?Development?Environment,集成開發(fā)環(huán)境),帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。總之它是運(yùn)行代碼的地方啦!
? ? ? ? 2.Pycharm下載:PyCharm: the Python IDE for Professional Developers by JetBrains
?進(jìn)入官網(wǎng)后如下圖所示,點(diǎn)擊Download即可開始下載:?
?選擇Community日常學(xué)習(xí)就已足夠:
?
下載完成后在文件夾中有一個(gè)exe程序文件,雙擊打開:?
點(diǎn)擊Next-選擇路徑再點(diǎn)Next-勾選所有選項(xiàng)再點(diǎn)Next-Install-Finish,至此Pycharm安裝完成。
3.CUDA、CuDNN下載與安裝
? ? ? ??1.CUDA、CuDNN介紹:
????????CUDA 是 NVIDIA 發(fā)明的一種并行計(jì)算平臺(tái)和編程模型。它通過利用GPU的處理能力,可大幅提升計(jì)算性能;
????????CuDNN?(NVIDIA?CUDA?深度神經(jīng)網(wǎng)絡(luò)庫)?是一個(gè)?GPU?加速的深度神經(jīng)網(wǎng)絡(luò)基元庫,能夠以高度優(yōu)化的方式實(shí)現(xiàn)標(biāo)準(zhǔn)例程(如前向和反向卷積、池化層、歸一化和激活層)。
????????全球的深度學(xué)習(xí)研究人員和框架開發(fā)者都依賴CuDNN?來實(shí)現(xiàn)高性能?GPU?加速。借助?CuDNN,研究人員和開發(fā)者可以專注于訓(xùn)練神經(jīng)網(wǎng)絡(luò)及開發(fā)軟件應(yīng)用,而不必花時(shí)間進(jìn)行低層級(jí)的?GPU?性能調(diào)整。
????????CuDNN?可加速廣泛應(yīng)用的深度學(xué)習(xí)框架,包括?Caffe2、Chainer、Keras、MATLAB、MxNet、PaddlePaddle、PyTorch?和?TensorFlow。我們接下來就需要用到Pytorch深度學(xué)習(xí)框架。
? ? ? ? 2.CUDA下載與安裝:
首先需要查看自己的筆記本最高支持CUDA多少,方法是:win+R,輸入cmd,在命令行輸入
nvidia-smi?
可以看到中間的Driver Version驅(qū)動(dòng)版本以及右上角的CUDA VersionCUDA版本,我最高支持到12.0,而底下的Pytorch官網(wǎng)推薦只支持最新的11.6和11.7,所以我們只需下載其中之一就可,此處我下載的是11.7(前提是你的算力得達(dá)到11.7,所以電腦配置不高的小伙伴就不好做了哦),下面可查看驅(qū)動(dòng)版本和CUDA版本匹配情況,各位根據(jù)實(shí)際情況來。如果達(dá)不到最新的CUDA版本,可以去官網(wǎng)搜索下載低等級(jí)的,但是能做這個(gè)項(xiàng)目的顯卡門檻都得3060以上,一般都往最新的去下載就行。
?
?下面我們打開如下網(wǎng)址來下載CUDA11.7:CUDA Toolkit Archive | NVIDIA Developer
?
此處我選擇了第二個(gè)CUDA11.7.1版本,點(diǎn)擊Windows=>x86-64=>11=>exe(local)(本地離線下載),最后點(diǎn)擊Download,這里大家根據(jù)自己電腦實(shí)際情況來操作,此處我只在win11上完成。
?
?
下載完安裝CUDA時(shí),首先設(shè)置臨時(shí)解壓目錄,默認(rèn)就好,繼續(xù)往下。
?
選擇自定義安裝,自己設(shè)置安裝目錄,可放C盤可放D盤,放D盤的話可以新建一個(gè)跟預(yù)設(shè)一樣的路徑,看著舒服。
?
?自定義安裝選項(xiàng)如下:如需要CUDA的部分就行,然后把VS取消。?
?自定義安裝位置,我在D盤相同位置新建了個(gè)文件夾存放。?
?繼續(xù)往下,到最后CUDA安裝完成!
至于環(huán)境變量問題,一般是都設(shè)置好了,但如果你有之前版本的CUDA環(huán)境變量最好刪掉,把新安裝的優(yōu)先級(jí)往前放。
如何打開并查看系統(tǒng)環(huán)境變量:此電腦右擊,選擇屬性,點(diǎn)擊中間的高級(jí)系統(tǒng)設(shè)置,
?
點(diǎn)擊環(huán)境變量,
?
?點(diǎn)擊系統(tǒng)環(huán)境變量,可查看到CUDA_PATH是否為自己新安裝的版本。?
?下面驗(yàn)證是否安裝成功:win+R,輸入cmd,打開終端,輸入:
nvcc -V??
?至此,CUDA安裝完畢,下面介紹CuDNN的下載與安裝。
? ? ? ? ?3.CuDNN下載與配置
下載CuDNN的網(wǎng)址如下:cuDNN Archive | NVIDIA Developer
要想下載CuDNN,首先得注冊(cè)一下NVIDIA的賬號(hào),建議用網(wǎng)易163或者有條件的Gmail郵箱都可,QQ郵箱勸退,可能收不到驗(yàn)證郵件。
?
?驗(yàn)證完郵件會(huì)填寫相關(guān)信息,其中NVIDIA的Organization URL,隨便找個(gè)URL就可。
注冊(cè)完畢,出現(xiàn)CuDNN下載界面,根據(jù)提示,選擇for CUDA 11.x的版本就可,點(diǎn)擊選擇Windows版本即可下載,這是一個(gè)zip文件。
?
下載解壓到D盤,打開可以發(fā)現(xiàn)CuDNN并不是一個(gè)exe,而是三個(gè)配置文件夾,是給CUDA錦上添花的,能更強(qiáng)悍地通過GPU進(jìn)行高性能加速。
?
?于是,把這三個(gè)文件夾復(fù)制到CUDA的安裝路徑的文件夾下:D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7,即可完成CUDA與CuDNN的合體。
?
?檢查是否合體成功,需要驗(yàn)證功能,打開如下文件夾:D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\extras\demo_suite,在文件夾空白處右擊,選擇在終端打開,輸入ba然后迅速TAB(鍵盤左邊),意思就是打開bandwidthTest.exe文件,開始驗(yàn)證。
?
驗(yàn)證如下,如看見Result = PASS,即成功安裝。
?
還需驗(yàn)證下deviceQuery.exe文件,運(yùn)行下PASS即可。
?
至此,CUDA與CuDNN的安裝配置全部完成!
三、Stable Diffusion的本地部署
1.克隆項(xiàng)目到本地
Stable Diffusion項(xiàng)目地址:GitHub - CompVis/stable-diffusion: A latent text-to-image diffusion model
?
可以選擇直接在終端git,但需要下載git相關(guān)工具,我選擇直接點(diǎn)擊如上圖的綠色圖標(biāo),選擇Download ZIP即可下載項(xiàng)目壓縮包,下載完解壓到你的D盤,D盤是我的學(xué)術(shù)盤,我所有的代碼以及配置都存放在D盤里。
?
2.初始化打開項(xiàng)目
解壓后的文件夾可以直接拖到Pycharm圖標(biāo)上打開:
?
?
打開之后的第一件事就是配置解釋器,因?yàn)槲覀冎耙呀?jīng)創(chuàng)建過Anaconda的環(huán)境,直接選擇先前配置的解釋器,選中自己創(chuàng)建的環(huán)境即可。
?
3.安裝環(huán)境所需庫
此時(shí)我們新創(chuàng)建的解釋器里只有于Python相關(guān)的最基礎(chǔ)的幾個(gè)庫,如下圖所示:
?
我們還要根據(jù)項(xiàng)目所需,安裝相應(yīng)的庫。可以發(fā)現(xiàn),項(xiàng)目里有一個(gè)environment.yaml文件,里面保存著項(xiàng)目作者實(shí)現(xiàn)項(xiàng)目所需要的庫以及版本,我們可以根據(jù)它的版本來一鍵安裝。但是,一鍵安裝有時(shí)候會(huì)因?yàn)榫W(wǎng)速等問題出現(xiàn)一系列報(bào)錯(cuò)失敗,所以因?yàn)閹斓臄?shù)量不多,本人選擇單獨(dú)一個(gè)個(gè)安裝庫,并記錄版本。
?
?1.numpy庫安裝:
打開如下Anaconda終端,激活創(chuàng)建的環(huán)境:
conda activate ai-painting?
?底下要安裝的庫都會(huì)安裝在這個(gè)環(huán)境(容器)里,這樣一個(gè)項(xiàng)目一個(gè)環(huán)境,很舒服。
執(zhí)行如下代碼安裝numpy庫:
pip install numpy?
?再次介紹一下pip工具,是下載python庫的工具,但是有的時(shí)候會(huì)遇到網(wǎng)速問題,可以參考我以前的博客pip配置鏡像源。國內(nèi)常用pip鏡像源地址及使用+永久修改_YIBO0408的博客-CSDN博客_pip 資源
2.Pytorch下載與安裝:
????????Pytorch下載踩坑特別多,比如根據(jù)官網(wǎng)指令下載沒有反應(yīng)、網(wǎng)速慢等問題,在此本人選擇如下方法可避坑。
? ? ? ? 首先去官方版本匹配網(wǎng)址查看版本https://github.com/pytorch/vision/blob/main/README.rst
下圖是torch與torchvision以及python版本的對(duì)應(yīng)關(guān)系:
?
https://github.com/pytorch/audio
下圖是torch與torchaudio的對(duì)應(yīng)關(guān)系:
?
????????從上圖可總結(jié)出我們要下載的torch、torchvision、torchaudio版本分別為:torch 1.13.0, torchaudio 0.13.0, torchvison 0.14.0。torchvision是pytorch的一個(gè)圖形庫,它服務(wù)于PyTorch深度學(xué)習(xí)框架的,主要用來構(gòu)建計(jì)算機(jī)視覺模型;torchaudio 支持以 wav 和 mp3 格式加載聲音文件,有加載聲音、數(shù)據(jù)增強(qiáng)、特征提取等功能。此項(xiàng)目對(duì)于torchaudio可下載可不下載,但總體完整的pytorch是需要的。
? ? ? ? 由于在線下載的不確定性,我們選擇離線下載,速度快而且下載安裝簡單。以下是torch離線安裝包下載地址:
https://download.pytorch.org/whl/torch_stable.html??????
我們找到以下三個(gè)whl文件,文件名cu117代表CUDA11.7版本,cp310代表python3.10版本,win_amd86_64代表Windows版本。
?
????????下載完需要安裝,同樣需要在環(huán)境ai-painting里的終端指令行輸入指令,打開Anaconda Powershell Prompt,激活ai-painting環(huán)境,此時(shí)需要cd(切換)到下載的目錄下,我是默認(rèn)下載到Downloads里的,于是直接cd Downloads即可。
?
?此處教一下怎么切盤,切到D盤:
?
?返回上一級(jí):(中間有空格)
?
?于是,安裝三個(gè)torch的whl文件指令為:
pip install .\torch-1.13.0+cu117-cp310-cp310-win_amd64.whl?
pip install .\torchvision-0.14.0+cu117-cp310-cp310-win_amd64.whl??
pip install .\torchaudio-0.13.0+cu117-cp310-cp310-win_amd64.whl?
? ? ? ? ?至此Pytorch框架全部安裝完畢!
最后來驗(yàn)證一下Pytorch是否成功安裝:
pythonimport torchtorch.cuda.is_available()?
????????如果結(jié)果是True,代表安裝完畢啦!?
3.其他庫的安裝:
????????大部分庫只需要如下一鍵pip?install就好了,前提是配置好pip源,這樣底下下載就不會(huì)卡住了,方法是提前在指令行輸入如下:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple????????之后可以輸入以下指令一鍵安裝。?
pip install albumentations diffusers opencv-python pudb invisible-watermark imageio imageio-ffmpeg pytorch-lightning omegaconf test-tube streamlit einops torch-fidelity transformers torchmetrics kornia????????我自己一個(gè)個(gè)試完發(fā)現(xiàn)無阻礙無錯(cuò)誤,所以大家也可以直接根據(jù)environment.yaml文件來一鍵配置環(huán)境。要cd到項(xiàng)目目錄下(因?yàn)橄旅孢€要把另外兩個(gè)項(xiàng)目克隆配置到本項(xiàng)目目錄下):
????????一鍵配置指令如下:
conda env create -f environment.yaml????????最后還需把另外兩個(gè)項(xiàng)目克隆到本地項(xiàng)目新建的src工作目錄中,運(yùn)行指令如下:
pip install -e git+https://github.com/CompVis/taming-transformers.git@master#egg=taming-transformers pip install -e git+https://github.com/openai/CLIP.git@main#egg=clip????????此處兩個(gè)指令需要kexue上網(wǎng)才能成功,想了解可私信我。全部配置完項(xiàng)目目錄如下:
? ? ? ? 可以發(fā)現(xiàn)新建了src目錄,目錄下有clip和taming-transformers兩個(gè)文件夾。
4.模型的下載:
? ? ? ? 模型下載地址:CompVis (CompVis)
這里我們下載的版本是stable-diffusion-v-1-4-original(也可下載其他版本),點(diǎn)擊下載權(quán)重:sd-v1-4.ckpt,此處同樣需要kexue上網(wǎng)才可下載,如需要模型下載ckpt文件,本人已存百度網(wǎng)盤,可私信自取。
????????接下來,在項(xiàng)目目錄models/ldm下手動(dòng)創(chuàng)建stable-diffusion-v1文件夾,用來存放下載好的權(quán)重文件,即需要把下載文件夾里的sd-v1-4.ckpt文件改名為model.ckpt,然后粘貼到手動(dòng)創(chuàng)建的stable-diffusion-v1文件夾下即可。(注意文件名遵照原作者的名稱來,否則下面運(yùn)行代碼會(huì)找不到文件)操作完項(xiàng)目目錄如下圖所示。
? ? ? ? 權(quán)重文件介紹:Stable-Diffusion-v-1-4 checkpoint使用 Stable-Diffusion-v-1-2 checkpoint的權(quán)重進(jìn)行初始化,隨后在“l(fā)aion-aesthetics v25+”分辨率為 512x512 的 225k steps上進(jìn)行微調(diào),下降 10% 改進(jìn)無分類器指導(dǎo)抽樣的文本調(diào)節(jié)。
????????至此,調(diào)試代碼前的所有準(zhǔn)備工作完成!
4.運(yùn)行代碼以及效果展示
?1.文本轉(zhuǎn)圖片(Txt To Image(Txt2Img)):
????????打開終端,激活環(huán)境,cd到項(xiàng)目目錄,運(yùn)行如下官方基礎(chǔ)代碼:
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms?
BUG解決:
(1)ModuleNotFoundError: No module named 'ldm'
解決方式:在txt2img.py第二行添加如下代碼,旨在獲取當(dāng)前工作目錄加入路徑。
sys.path.append(os.getcwd())(2)在huggingface_hub下載文件時(shí)出現(xiàn)使用警告如下:
UserWarning: `huggingface_hub` cache-system uses symlinks by default to efficiently store duplicated files but your machine does not support them in C:\Users\XX\.cache\huggingface\hub. Caching files will still work but in a degraded version that might require more space on your disk. This warning can be disabled by setting the `HF_HUB_DISABLE_SYMLINKS_WARNING` environment variable. For more details, see https://huggingface.co/docs/huggingface_hub/how-to-cache#limitations.
解決方式:如果想從Windows11的基于符號(hào)鏈接的緩存系統(tǒng)中受益,需要激活開發(fā)者模式或以管理員身份運(yùn)行Python。
激活開發(fā)者模式:打開設(shè)置-->點(diǎn)擊隱私與安全性-->點(diǎn)擊開發(fā)者選項(xiàng)-->開發(fā)人員模式-開
以管理員身份運(yùn)行Python:右擊Anaconda Powershell Prompt (Anaconda3)終端-->點(diǎn)擊以管理員身份運(yùn)行
(3)torch.cuda.OutOfMemoryError: CUDA out of memory.
解決方式:換大顯存的顯卡,我的是6G顯存的3060筆記本GPU,按照官方基礎(chǔ)代碼運(yùn)行會(huì)出現(xiàn)如上情況,我們需要調(diào)整batch size,也就是后綴說明里的--n_samples,設(shè)置其值為1;還需要把生成圖片的尺寸大小(默認(rèn)512*512)改為256*256。以上是我在github問題里搜集到的,親測(cè)無效。
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --n_samples 1 --H 256 --W 256
?????????以上對(duì)于我的顯存依舊不夠,大家有比我更好的條件的可以試試以上代碼。適當(dāng)?shù)卦黾觔atch size(1,2,4,8,16,32...)以及圖片尺寸大小(512*512...)
????????經(jīng)過各種資料調(diào)研,只為降低顯存占用,
????????一種有效的解決方式(對(duì)于我的6G筆記本GPU顯存):打開pycharm,打開txt2img.py文件,找到如下代碼,添加一行:
model.half()????????它的原理是:保存模型時(shí),調(diào)用model.half(),將算子存儲(chǔ)為fp16(半精度)格式,低精度帶來了性能和功耗的優(yōu)勢(shì),但需要解決量化誤差問題。這是Pytorch框架提供的一個(gè)方便好用的trick:開啟半精度。直接可以加快運(yùn)行速度、減少GPU占用,并且只有不明顯的accuracy損失。對(duì)于本項(xiàng)目誤差圖片差別屬實(shí)不大,本人認(rèn)為可忽略。
????????添加完一行代碼,后輸入如下指令可實(shí)現(xiàn)跑圖:
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --n_samples 1 --H 512 --W 512 --n_iter 50
以上是顯存使用情況,可以看出剛好快占滿顯存。?
????????prompt可以自定義一段英文或者關(guān)鍵單詞以英文逗號(hào)分開,尺寸可根據(jù)顯卡自行設(shè)置512*512,生成圖片50張。下圖可以看出效果還是很不錯(cuò)的。
????????以下是txt2img.py的使用后綴說明:
usage: txt2img.pyoptional arguments:-h, --help show this help message and exit 顯示此幫助信息并退出--prompt [PROMPT] the prompt to render 要渲染的提示信息--outdir [OUTDIR] dir to write results to 渲染結(jié)果路徑--skip_grid do not save a grid, only individual samples. Helpful when evaluating lots of samples 不保存網(wǎng)格,僅保存單個(gè)樣本,在評(píng)估大量樣品時(shí)很有用--skip_save do not save individual samples. For speed measurements. 不保存單個(gè)樣本,用于速度測(cè)量。--ddim_steps DDIM_STEPSnumber of ddim sampling steps ddim采樣的steps數(shù)量--plms use plms sampling 使用plms采樣 --laion400m uses the LAION400M model 使用LAION400M模型--fixed_code if enabled, uses the same starting code across samples 如果支持,跨樣本使用相同的起始代碼--ddim_eta DDIM_ETA ddim eta (eta=0.0 corresponds to deterministic sampling--n_iter N_ITER sample this often--H H image height, in pixel space 圖片高度--W W image width, in pixel space 圖片寬度--C C latent channels 潛在通道--f F downsampling factor 下采樣因子--n_samples N_SAMPLEShow many samples to produce for each given prompt. A.k.a. batch size 每個(gè)給定prompt要生成多少樣本。又名batch size(批大小)--n_rows N_ROWS rows in the grid (default: n_samples) 網(wǎng)格中的行(默認(rèn)值:n_samples)--scale SCALE unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))--from-file FROM_FILEif specified, load prompts from this file 如果指定,從該文件加載提示--config CONFIG path to config which constructs model 構(gòu)造模型的配置路徑--ckpt CKPT path to checkpoint of model 模型checkpoint的路徑--seed SEED the seed (for reproducible sampling) 種子(用于可重復(fù)采樣)--precision {full,autocast}evaluate at this precision 以此精度進(jìn)行評(píng)估2.圖片轉(zhuǎn)圖片(Image To Image(Img2Img)):
????????以下是官方基礎(chǔ)代碼,同樣我的顯卡跑不動(dòng):
python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8
????????strength是一個(gè)介于 0.0 和 1.0 之間的值,它控制添加到輸入圖像的噪聲量。 接近 1.0 的值允許很多變化,但也會(huì)產(chǎn)生與輸入在語義上不一致的圖像。
????????以下是img2img.py的使用后綴說明:
usage:img2img.pyoptions:-h, --help show this help message and exit--prompt [PROMPT] the prompt to render--init-img [INIT_IMG]path to the input image--outdir [OUTDIR] dir to write results to--skip_grid do not save a grid, only individual samples. Helpful when evaluating lots of samples--skip_save do not save indiviual samples. For speed measurements.--ddim_steps DDIM_STEPSnumber of ddim sampling steps--plms use plms sampling--fixed_code if enabled, uses the same starting code across all samples--ddim_eta DDIM_ETA ddim eta (eta=0.0 corresponds to deterministic sampling--n_iter N_ITER sample this often--C C latent channels--f F downsampling factor, most often 8 or 16--n_samples N_SAMPLEShow many samples to produce for each given prompt. A.k.a batch size--n_rows N_ROWS rows in the grid (default: n_samples)--scale SCALE unconditional guidance scale: eps = eps(x, empty) + scale * (eps(x, cond) - eps(x, empty))--strength STRENGTH strength for noising/unnoising. 1.0 corresponds to full destruction of information in init image--from-file FROM_FILEif specified, load prompts from this file--config CONFIG path to config which constructs model--ckpt CKPT path to checkpoint of model--seed SEED the seed (for reproducible sampling)--precision {full,autocast}evaluate at this precision????????目前原作者的開源代碼并沒有對(duì)GPU顯存消耗量大的問題進(jìn)行優(yōu)化,經(jīng)搜索有另外的分支,另一個(gè)作者對(duì)項(xiàng)目進(jìn)行了優(yōu)化,具體地址如下:https://github.com/basujindal/stable-diffusion
????????大家可去自行下載,復(fù)制粘貼相關(guān)模型去model文件夾就行,出現(xiàn)bug,上述已經(jīng)提及并解決,其他都一樣。他把顯存消耗降到了一半,經(jīng)檢測(cè)我的降到3GB,而效果可以說是同樣的好。這個(gè)項(xiàng)目你可以用docker也提供了GUI圖形界面,如果你不想在交互式終端執(zhí)行,可以用GUI方便操作。
? ? ? ? 要想使用GUI,需要下載一個(gè)庫:
pip install gradio? ? ? ? 要想運(yùn)行Txt2Img:
python optimizedSD/txt2img_gradio.py????????要想運(yùn)行Img2Img:
python optimizedSD/img2img_gradio.py????????出現(xiàn)一個(gè)地址,點(diǎn)擊地址即可進(jìn)入GUI:
????????以下是GUI界面,各種參數(shù)可以方便在上面調(diào)節(jié):
????????以下是我根據(jù)我的證件照跑出來的圖,可以看到效果不錯(cuò),與現(xiàn)在市場上的AI繪畫程序效果相當(dāng)。
????????至此,AI繪畫 Stable Diffusion本地部署以及初步功能實(shí)現(xiàn)完成!制作不易,望喜歡!
????????最后放一張俺女朋友的初中證件照,咱就是說妥妥的二次元美少女哇!!!
總結(jié)
以上是生活随笔為你收集整理的AI专业教您保姆级在暗影精灵8Windows11上本地部署实现AI绘画:Stable Diffusion(万字教程,多图预警)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: createjs初学-关于Ticker
- 下一篇: 一学就会 | 3步搞定弥散海报