**Stable Diffusion無疑是最近最火的AI繪畫工具之一,所以本期給大家?guī)砹巳耂table Diffusion 保姆級教程資料包(文末可獲?。?/strong>
2022年絕對是人工智能爆發(fā)的元年,前有 stability.ai 開源 Stable Diffusion 模型,后有 Open AI 發(fā)布 ChatGPT,二者都是里程碑式的節(jié)點事件,其重要性不亞于當年蘋果發(fā)布iPhone,Google推出Android。它們讓AI不再是一個遙不可及的技術名詞,而是觸手可及、實實在在的智能應用工具。
不同于ChatGPT可以直接體驗,Stable Diffusion需要自己部署后才能使用,所以國內了解的人還不多。但Stable Diffusion絕對是AI圖像生成領域的ChatGPT級的殺手產品——它使用超級簡單、完全開源免費,生成的圖片以假亂真、震驚四座。今天,我將用萬字保姆級教程教你如何一步一步在本地運行起Stable Diffusion,并手把手教你如何生成以假亂真的AI生成圖片。
什么是Stable Diffusion
Stable Diffusion是一種潛在擴散模型(Latent Diffusion Model),能夠從文本描述中生成詳細的圖像。它還可以用于圖像修復、圖像繪制、文本到圖像和圖像到圖像等任務。簡單地說,我們只要給出想要的圖片的文字描述在提Stable Diffusion就能生成符合你要求的逼真的圖像!
Stable Diffusion將“圖像生成”過程轉換為逐漸去除噪聲的“擴散”過程,整個過程從隨機高斯噪聲開始,經過訓練逐步去除噪聲,直到不再有噪聲,最終輸出更貼近文本描述的圖像。這個過程的缺點是去噪過程的時間和內存消耗都非常大,尤其是在生成高分辨率圖像時。Stable Diffusion引入潛在擴散來解決這個問題。潛在擴散通過在較低維度的潛在空間上應用擴散過程而不是使用實際像素空間來減少內存和計算成本。
與DALL·E和Midjourney相比,Stable Diffusion最大的優(yōu)勢是開源,這就意味著Stable Diffusion的潛力巨大、發(fā)展飛快。Stable Diffusion已經跟很多工具和平臺進行了集成,且可用預訓練模型數(shù)量眾多(參見Stable Diffusion資源列表)。正是由于社區(qū)的活躍,使得Stable Diffusion在各種風格的圖像生成上都有著出色的表現(xiàn),隨便給大家看幾張我生成的圖片:
ChilloutMix生成的寫實韓風小姐姐
SynthwavePunk生成的國風小姐姐
InkPunk Diffusion生成的潑墨油彩風格的布偶貓
核心概念
為了方便大家更好地理解后面的內容,下面對Stable Diffusion中的幾個核心概念做簡單的說明。Stable Diffusion的詳細原理請參考《Stable Diffusion原理詳解》。
自動編碼器
自動編碼器 (VAE) 由兩個主要部分組成:編碼器和解碼器。編碼器會將圖像轉換為低維潛在表示(像素空間–>潛在空間),該表示將作為輸入傳遞給U_Net。解碼器做的事情剛好相反,將潛在表示轉換回圖像(潛在空間–>像素空間)。
U-Net
U-Net 也由編碼器和解碼器組成,兩者都由 ResNet 塊組成。編碼器將圖像表示壓縮為較低分辨率的圖像,解碼器將較低分辨率解碼回較高分辨率的圖像。
為了防止 U-Net 在下采樣時丟失重要信息,通常在編碼器的下采樣 ResNet 和解碼器的上采樣 ResNet 之間添加快捷連接。
此外,Stable Diffusion 中的 U-Net 能夠通過交叉注意力層調節(jié)其在文本嵌入上的輸出。 交叉注意力層被添加到 U-Net 的編碼器和解碼器部分,通常在 ResNet 塊之間。
文本編碼器
文本編碼器會將輸入提示轉換為 U-Net 可以理解的嵌入空間。一般是一個簡單的基于Transformer的編碼器,它將標記序列映射到潛在文本嵌入序列。
好的提示(prompt)對輸出質量直觀重要,這就是為什么現(xiàn)在大家這么強調提示設計(prompt design)。提示設計就是要找到某些關鍵詞或表達方式,讓提示可以觸發(fā)模型產生具有預期屬性或效果的輸出。
推理過程
Stable Diffusion的大致工作流程如下:
首先,Stable Diffusion模型將潛在種子和文本提示作為輸入。 然后使用潛在種子生成大小為 64×64 的隨機潛在圖像表示,而文本提示通過 CLIP 文本編碼器轉換為 77×768 的文本嵌入。
接下來,U-Net 以文本嵌入為條件迭代地對隨機潛在圖像表示進行去噪。 U-Net 的輸出是噪聲殘差,用于通過調度算法計算去噪的潛在圖像表示。 調度算法根據(jù)先前的噪聲表示和預測的噪聲殘差計算預測的去噪圖像表示。這里可選用的調度算法很多,每個算法各有優(yōu)劣,對Stable Diffusion來說建議用以下幾個:
PNDM scheduler(默認)
DDIM scheduler
K-LMS scheduler
去噪過程重復大約 50 次以逐步檢索更好的潛在圖像表示。 完成后,潛在圖像表示由變分自動編碼器的解碼器部分解碼。
整體流程可以用下面的流程圖表示:
快速體驗Stable Diffusion
如果你不想自己搭建Stable Diffusion環(huán)境,或者你想在自己動手部署Statble Diffusion之前,先體驗一下Stable Diffusion的威力,可以嘗試如下5個免費的工具:
1. Dream Studio
DreamStudio 是Stable Diffusion的創(chuàng)造者Stability AI的官方網絡應用程序。
最大的優(yōu)勢是官方出品,支持stability.ai旗下的所有模型,包括最新發(fā)布的Stable Diffusion v2.1。
用Dream Studio生成圖片需要消耗積分,注冊是會免費贈送積分,用來體驗基本夠用。如果想生成更多圖片可以花10美元購買積分,大約可以生成1000張圖片。
2. Replicate
Replicate是一個機器學習模型共享平臺,你可以通過API來分享或使用上面的模型。
大神cjwbw在Replicate上共享了Stable Diffusion v2.0模型,你可以免費測試。
3. Playground AI
Playground AI是一個專注AI圖像生成的網站,功能豐富、模型眾多。最近也上線了最新的Stable Diffusion v2.1,可以免費使用,但限制每個用戶每天最多生成1000張圖片。
4. Google Colab
如果你是數(shù)據(jù)工程師或算法工程師,可能你更希望在Jupyter Notebook中使用Stable Diffusion。Anzor Qunash在Google Colab上共享了Stable Diffusion 2.0 Colab(已更新到2.1),你可以直接復制過來使用。
該Notebook用gradio搭建了界面,只需點擊運行按鈕,就會顯示Gradio UI界面。然后,您就可以在上面生成任意數(shù)量的圖像,并且可以調節(jié)參數(shù),控制生成效果。
5. BaseTen
Baseten是一個MLOps平臺,用于創(chuàng)業(yè)公司在生產階段快速開發(fā)、部署和測試模型。BaseTen最近發(fā)布了對Stable Diffusion的API支持,并提供了一個演示頁面。
這個工具非常簡單,只有一個文本框和一個生成按鈕,沒有其他參數(shù)可以調節(jié),也沒有生成數(shù)量的限制。
本地部署Stable Diffusion
本地部署Stable Diffusion最簡單的方法是使用Stable Diffusion Web Ui。
Stable Diffusion Web Ui是一套無代碼、可視化的Stable Diffusion集成運行環(huán)境。它將Stable Diffusion的安裝部署集成打包,提供一鍵安裝腳本,并提供Web界面操作界面,極大簡化了Stable Diffusion的操作和使用,讓沒有不懂代碼的小白也能輕松上手使用Stable Diffusion模型。
系統(tǒng)配置需求
Stable Diffusion還是比較吃資源的,因此對基礎硬件有一定要求。
- NVIDIA GPU 至少 4GB 顯存
- 至少 10GB 可用硬盤空間
上面的配置是Stable Diffusion運行起來的基礎要求,如果想要生成速度快,顯卡配置自然是越高越好,顯存最好也上到8G。推薦配置最好不低于:
- NVIDIA RTX GPU 至少 8GB 顯存
- 至少 25GB 可用硬盤空間
如果本地機器配置達不到,可以考慮用云虛擬主機。目前最經濟的是AWS的g4dn.xlarge,¥3.711元/小時。
環(huán)境準備
Stable Diffusion Web Ui用Python開發(fā),完全開源,因此在運行Stable Diffusion Web Ui前,我們需要安裝Git來拉取Stable Diffusion Web Ui源代碼,并安裝Python。
安裝Git
Git是一個開源的分布式版本控制系統(tǒng)。這里安裝Git是為了獲取Stable Diffusion Web Ui的代碼。當然,如果不安裝Git,我們也可以通過代碼打包下載鏈接直接下載Stable Diffusion Web Ui的代碼,但是這樣獲取的代碼無法后續(xù)更新,每次Stable Diffusion Web Ui升級都要重新下載代碼覆蓋老版本代碼。用Git就很方便,可以通過clone命令從代碼庫獲取代碼,通過git pull更新到最新版代碼。
Git安裝很簡單,只需到Git下載頁面下載對應平臺安裝包安裝即可(Linux發(fā)行版一般自帶Git可以不用安裝)。
Windows用戶請注意,安裝時在安裝配置界面勾選上“Add a Git Bash Profile to Windows Terminal”選項。
安裝Python
Python的安裝方法有很多,這里推薦大家通過Miniconda來安裝。用Miniconda有幾個好處:
- 方便創(chuàng)建和管理多個Python虛擬環(huán)境。我建議每個Python項目都創(chuàng)建一套自己獨立的Python虛擬環(huán)境,防止python環(huán)境或庫版本不對導致代碼運行出錯。
- Miniconda體積很小,只有conda+python+pip+zlib和一些其他常用的包,小巧靈活。
- 大家只要到Miniconda下載頁面下載對應平臺的安裝包即可,最新的Miniconda包含Python 3.10.9。
下載完安裝包直接雙擊安裝即可(Linux版本在Shell中運行下載下來的shell腳本)。Windows用戶請注意,當看到下面界面時,請務必勾選第一個選項,將Miniconda添加到環(huán)境變量PATH中。
配置國內源
由于 Python 第三方庫的來源是國外源,使用國內網絡安裝庫時會出現(xiàn)下載緩慢、卡頓等現(xiàn)象,不僅耽誤時間,而且很容易安裝失敗。因此我們需要將 conda 的安裝源替換成國內鏡像,這樣可以大幅提升下載速度,提高安裝成功率。這里推薦清華源,執(zhí)行下方命令即可添加:
conda config --add channels
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加成功后可以通過conda config --show-sources查看當前源
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults show_channel_urls: True
除了清華源,還可以添加中科大源或阿里云源
中科大的源 conda config –add channels
https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
阿里云的源 conda config
–add channels http://mirrors.aliyun.com/pypi/simple/
最后,運行conda clean -i清除索引緩存,保證用的是鏡像站提供的索引。
安裝Stable Diffusion Web Ui
環(huán)境配置好后,我們就可以開始安裝Stable Diffusion Web Ui了。
首先從GitHub上下載Stable Diffusion Web Ui的源代碼:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
下載完成后,cd stable-diffusion-webui進入Stable Diffusion Web Ui的項目目錄,在項目目錄里會看到webui.bat和webui.sh這兩個文件,這兩個文件就是Stable Diffusion Web Ui的安裝腳本。
- 如果你是Windows系統(tǒng),直接雙擊運行webui.bat文件
- 如果你是Linux系統(tǒng),在控制臺運行./webui.sh
- 如果你是Mac系統(tǒng),使用方法跟Linux相同
安裝腳本會自動創(chuàng)建Python虛擬環(huán)境,并開始下載安裝缺失的依賴庫。這個過程可能會有點久,請耐心等待。如果中途安裝失敗,多半是網絡連接超時,此時可以重新執(zhí)行安裝腳本,腳本會接著上次的下載安裝位置繼續(xù)安裝。直到看到
Running on local URL: http://127.0.0.1:7860
說明Stable Diffusion Web Ui安裝成功。
用瀏覽器打開http://127.0.0.1:7860就會看到Stable Diffusion Web Ui的界面。
模型安裝
Stable Diffusion Web Ui安裝過程中會默認下載Stable Diffusion v1.5模型,名稱為v1-5-pruned-emaonly。如果想用最新的Stable Diffusion v2.1,可以從Hugging Face上下載官方版本stabilityai/stable-diffusion-2-1。下載后將模型復制到models目錄下的Stable-diffusion目錄即可。完成后點擊頁面左上角的刷新按鈕,即可在模型下拉列表中看到新加入的模型。
除了標準模型外,Stable Diffusion還有其他幾種類型的模型,models目錄下每一個子目錄就是一種類型的模型,其中用的最多的是LoRA模型。
LoRA(Low-Rank Adaptation)模型是小型穩(wěn)定擴散模型,可對標準模型進行微調。它通常比標準模型小10-100倍,這使得LoRA模型在文件大小和訓練效果之間取得了很好平衡。LoRA無法單獨使用,需要跟標準模型配合使用,這種組合使用方式也為Stable Diffusion帶來了強大的靈活性。
LoRA模型下載后需要放到Lora目錄中,使用時在提示中加入LoRA語法,語法格式如下:
lora:filename:multiplier
filename是LoRA模型的文件名(不帶文件后綴)
multiplier 是LoRA 模型的權重,默認值為1,將其設置為 0 將禁用該模型。
關于Stable Diffusion提示的使用規(guī)則請參考這里。
使用Stable Diffusion Web Ui
界面介紹
Stable Diffusion Web Ui整體上分為2個部分,最上面是模型選擇,可以從下拉列表中選擇已下載的預訓練模型
模型選擇區(qū)
模型選擇下面是一個Tab欄,這里是Stable Diffusion Web Ui提供的所有功能。
- txt2img — 根據(jù)文本提示生成圖像;
- img2img — 根據(jù)提供的圖像作為范本、結合文本提示生成圖像;
- Extras — 優(yōu)化(清晰、擴展)圖像;
- PNG Info — 顯示圖像基本信息
- Checkpoint Merger — 模型合并
- Train — 根據(jù)提供的圖片訓練具有某種圖像風格的模型
- Settings — 系統(tǒng)設置
平時使用最多的是txt2img 和 img2img,下面針對這2大塊功能詳細講解。
txt2img
txt2img有三個區(qū)域:
- 提示區(qū)
- 參數(shù)調節(jié)區(qū)
- 輸出瀏覽區(qū)
提示區(qū)主要是2個文本框,可以輸入提示文本。其中:
prompt: 主要是對于圖像進行描述。prompt對Stable Diffusion圖像生成質量至關重要,因此如果想生成高質量圖片,一定要在提示設計上下功夫。一個好的提示需要詳細和具體,后面會專門講解如何設計一個好的提示。
Negative prompt:主要是告訴模型我不想要什么樣的風格或元素;
參數(shù)調節(jié)區(qū)提供了大量參數(shù)用于控制和優(yōu)化生成過程:
Sampling method:擴散去噪算法的采樣模式,不同采樣模式會帶來不一樣的效果,具體需要在實際使用中測試;
**Sampling steps:**模型生成圖片的迭代步數(shù),每多一次迭代都會給 AI 更多的機會去對比 prompt 和 當前結果,從而進一步調整圖片。更高的步數(shù)需要花費更多的計算時間,但卻不一定意味著會有更好的結果。當然迭代步數(shù)不足肯定會降低輸出的圖像質量;
**Width、Height:**輸出圖像寬高,圖片尺寸越大越消耗資源,顯存小的要特別注意。一般不建議設置的太大,因為生成后可以通過 Extras 進行放大;
**Batch count、 Batch size:**控制生成幾張圖,前者計算時間長,后者需要顯存大;
**CFG Scale:**分類器自由引導尺度,用于控制圖像與提示的一致程度,值越低產生的內容越有創(chuàng)意;
**Seed:**隨機種子,只要種子一樣,參數(shù)和模型不變,生成的圖像主體就不會劇烈變化,適用于對生成圖像進行微調;
**Restore faces:**優(yōu)化面部,當對生成的面部不滿意時可以勾選該選項;
**Tiling:**生成一張可以平鋪的圖像;
**Highres. fix:**使用兩個步驟的過程進行生成,以較小的分辨率創(chuàng)建圖像,然后在不改變構圖的情況下改進其中的細節(jié),選中該選項會有一系列新的參數(shù),其中重要的是:
**? Upscaler:**縮放算法;
**? Upscale by:**放大倍數(shù);
**? Denoising strength:**決定算法對圖像內容的保留程度。0什么都不會改變,1會得到一個完全不同的圖像;
img2img
img2img跟txt2img界面類似,不同的是沒有了txt2img中的參數(shù)調節(jié)區(qū),取而代之的是圖像范本區(qū)。
我們可以上傳范本圖片讓Stable Diffusion模仿,其他地方跟txt2img相同
界面漢化
通過這里下載簡體中文語言文件,下載完成后將其復制到項目文件夾的“l(fā)ocalizations”目錄中。之后在Settings -> User interface -> Localization (requires restart),在下拉菜單中選擇zh_CN。如果下拉列表中看不到zh_CN,請先點擊右側的刷新按鈕,然后就能在下拉列表中看到了。設置完成后記得點擊頁面上方的“Apply settings”按鈕保存設置。
語言設置需要重啟才能生效。Ctrl + C先終止Stable Diffusion Web Ui服務,然后再運行webui.bat或webui.sh,重啟后刷新瀏覽器頁面就能看到語言變成了簡體中文了。
?注意:該漢化可能不完美,個別地方會漏漢化或漢化表達不準確,歡迎大家反饋錯誤和優(yōu)化建議。有能力的朋友建議用英文界面。
prompt語法
為了產生具有特定風格的圖像,必須以特定格式提供文本提示。 這通常需要添加提示修飾符或添加更多關鍵字或關鍵短語來實現(xiàn)。下面為大家介紹一下Stable Diffusion的prompt語法規(guī)則。
Stable Diffusion提示文本中的關鍵字或關鍵短語通過半角逗號分割,一般越靠前權重越高。我們可以通過提示修飾符來認為修改權重。
- (tag):增加權重5%
- [tag]:降低權重5%
- (tag: weight):設置具體權重值
括號可以嵌套使用,
- [tag1 | tag2]:將tag1和tag2混合;
- {tag1 | tag2 | tag3}:從標簽集合中隨機選擇一個標簽;
- [tag1 : tag2 : 0.5]:表示先用tag1生成,當生成進程到50%時,改用tab2生成;如果輸入整數(shù)的話表示步長,比如10,意思是生成10步后改用tag2;
- lora:filename:multiplier:LoRA模型引用語法
示例
模型
這里我將使用chilloutmix + KoreanDollLikeness生成寫實風韓系偶像小姐姐。
首先需要下載chilloutmix模型(我用的是chilloutmix_NiPrunedFp32Fix.safetensors),將其拷貝到Stable-diffusion目錄,還需要下載KoreanDollLikeness這個LoRA模型,將其拷貝到Lora目錄。
然后在Stable Diffusion Web Ui主界面的模型選擇中下拉選擇chilloutmix_NiPrunedFp32Fix.safetensors。如果找不到該模型,可以點擊右側刷新按鈕刷新一下。
Prompt
選擇好模型后,我們開始設計prompt。首先我們引入LoRA
lora:koreanDollLikeness_v10:0.66
然后定義生成圖片的風格,我們希望超寫實風,可以用如下關鍵詞:
best quality, ultra high res, (photorealistic:1.4)
其中photorealistic我們賦予較高的權重1.4。
接著來定義圖片的主體內容,這里我將希望圖片中出現(xiàn)的元素都做個權重增強:
1girl, thighhighs, ((school uniform)),((pleated skirt)), ((black
stockings)), (full body), (Kpop idol), (platinum blonde hair:1),
((puffy eyes))
最后,修飾一些表情、姿勢的細節(jié):
- smiling, solo focus, looking at viewer, facing front
這樣我們完整的promt是:
lora:koreanDollLikeness_v10:0.66, best quality, ultra high res,
(photorealistic:1.4), 1girl, thighhighs, ((school uniform)),((pleated
skirt)), ((black stockings)), (full body), (Kpop idol), (platinum
blonde hair:1), ((puffy eyes)), smiling, solo focus, looking at
viewer, facing front
Negative prompt
我們還需要提供Negative prompt去除我們不想要的風格和元素:
paintings, sketches, (worst quality:2), (low quality:2), (normal
quality:2), lowres, normal quality, ((monochrome)), ((grayscale)),
skin spots, acnes, skin blemishes, age spot, glan
這里主要剔除了繪畫風、簡筆畫、低質量、灰度圖,同時去除雀斑、痤瘡等皮膚瑕疵。
參數(shù)設置
為了讓圖片生成得更加真實自然,我們需要對參數(shù)做一些調整,需要調整的參數(shù)如下:
- Sampler: DPM++ SDE Karras
- Sample Steps: 28
- CFG scale: 8
- Size: 512x768
這里鼓勵大家多嘗試其他取值,上面只是我認為效果最好的一組參數(shù)。
生成
完成上面所有設置后,就可以點擊Generate按鈕生成圖片了。生成速度由你的設備性能決定,在我的電腦上大約30s生成一張圖片。
Stable Diffusion Web Ui生成結果
Stable Diffusion資源列表
好的生成質量離不開好的模型,這里為大家列出了Stable Diffusion預訓練模型資源的獲取來源。
1. Hugging Face
Hugging Face是一個專注于構建、訓練和部署先進開源機器學習模型的網站。
HuggingFace是Stable Diffusion模型創(chuàng)作的首選平臺,目前平臺上有270多個與Stable Diffusion相關的模型,用"Stable Diffusion"作為關鍵字就能搜到。
推薦Dreamlike Photoreal 2.0這個模型,這是一個由Dreamlike.art制作的基于Stable Diffusion v1.5的真實感模型,生成效果非常接近真實照片。
另一個熱門模型是Waifu Diffusion,推薦嘗試。
2. Civitai
Civitai是一個專為Stable Diffusion AI藝術模型設計的網站。該平臺目前有來自250+創(chuàng)作者上傳的1700個模型。這是迄今為止我所知的最大的AI模型庫。你可以在上面分享自己的模型或生成作品。
3. Discord
在Stable Diffusion的Discord頁面中有一個名為“Models-Embeddings”的專屬頻道,里面提供了很多可以免費下載的各種模型。
4. Rentry for SD
Rentry網站上有一個保存Stable Diffusion模型的頁面sdmodels,上面由70多個模型可以免費下載。
使用這些模型資源的時候要注意:下載自定義AI模型會帶來危險。例如,某些可能包含NSFW(不安全)內容。
另一個風險是,這些自定義AI模型可能包含惡意代碼或惡意腳本,特別是CKPT文件。如果想要更安全地使用AI模型,請盡量選擇safetensor文件類型。
AI繪畫所有方向的學習路線思維導圖
這里為大家提供了總的路線圖。它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。如果下面這個學習路線能幫助大家將AI利用到自身工作上去,那么我的使命也就完成了:
??stable diffusion新手0基礎入門PDF??
??AI繪畫必備工具??
溫馨提示:篇幅有限,已打包文件夾,獲取方式在:文末
??AI繪畫基礎+速成+進階使用教程??
觀看零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
??12000+AI關鍵詞大合集??文章來源:http://www.zghlxwxcb.cn/news/detail-774383.html
**這份完整版的AI繪畫資料我已經打包好,戳下方藍色字體,即可免費領??!**戳下方藍色字體
CSDN大禮包:《全套AI繪畫基礎學習資源包》免費分享
文章來源地址http://www.zghlxwxcb.cn/news/detail-774383.html
到了這里,關于Stable Diffusion 保姆級教程!全網最新最全!小白必備!的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!