平時寫文章有需要圖片的需求,所以來學習記錄一下 Stable Diffusion 這個開源的 AI 繪畫工具
Stable Diffusion 是什麼#
透過 Prompts (提示 / 描述)由文字信息轉換為圖像信息
Stable Diffusion (SD)是一個開源的 AIGC 繪畫大模型,特點是開源、速度快、更新迭代快。
怎麼使用#
安裝 GUI#
為了方便使用,需要先安裝 SD 的一個 WebGUI
安裝鏈接:https://github.com/AUTOMATIC1111/stable-diffusion-webui
安裝分為 2 種,一種是部署到谷歌的 google.colab 上(一個線上的運行環境)、另一種是自己本地部署運行
本地安裝步驟#
由於我的電腦是 Mac 的,而且還是 Apple Silicon 芯片的,所以以下步驟僅供這種類型的機器參考
全新安裝
如果之前沒有安裝過可以透過 Homebrew 的方式進行安裝。
如果沒有 Homebrew 可以透過終端輸入這個命令進行安裝
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安裝 WebUI 之前首先需要把運行環境準備好,打開終端
1. 安裝 python 3.10 以上版本
2. 拉取 WebUI 在 Github 倉庫上的代碼
拉取代碼可以使 SD 更方便的實時更新,使用最新的功能
隨便在一個目錄下,運行以下命令
拉取完之後目錄是這樣的
3. 下載 Stable Diffusion 模型
我下載的是目前比較新的模型,2.1 版本的,模型常見格式:ckpt
、safetensors
格式的,下載地址: https://huggingface.co/stabilityai/stable-diffusion-2-1
將下載好的模型放在剛才拉取的 WebUI 的stable-diffusion-webui/models/Stable-diffusion
目錄下
由於 v2.1 版本還需要下載配置文件,配置文件的下載方法為:
下載地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon#downloading-stable-diffusion-models
按住鍵盤上的 option 鍵,鼠標點擊 here
進行下載
下載好的文件名為: v2-inference-v.yaml
然後我們需要將這個文件進行重命名,把這個配置文件的名字與下載的模型名稱保持一致,我下的模型名是 v2-1_768-ema-pruned.ckpt
,所以配置文件名需要改為 v2-1_768-ema-pruned.yaml
4. 執行腳本運行 web UI
腳本執行過程中會自動下載運行所需的依賴文件,時間比較久,耐心等待即可,大概需要半小時到 2 小時不等
直到出現訪問地址就成功了:http://127.0.0.1:7860/
成功之後不要關閉或者停止終端,直接在瀏覽器中訪問這個地址:http://127.0.0.1:7860/
以後每次打開就是執行 webui.sh
腳本,如果想更新就在根目錄下執行 git pull
即可
特殊情況處理#
執行生成圖片的時候可能會出現以下的錯誤:
如果你也和一樣發生了同樣的錯誤,可以這樣解決:
打開根目錄下的 webui-user.sh 文件
將這個COMMANDLINE_ARGS
參數修改一下:
- 重新執行一下
./webui.sh
- 最後將設置中的 Stable Deffusion -> Upcast cross attention layer to float32 勾選上即可正常運行
畫出第一副畫#
以文本生成圖#
畫圖之前首先先認識一下這個界面各個地方分別是什麼
界面中比較重要的幾個參數
- 步長 (Sampling steps): 這個參數影響時間和效果,通常設置 30 左右,主要控制的是去噪的程度
- 隨機因子 (Seed) :決定畫面內容,主要影響的是畫迭代時的隨機噪聲
- CFG Scale :決定畫家自由度
- 2 ~ 6: 隨機生成,基本不按照提示操作
- 7 ~ 10 :最常見的設置,會有一個不錯的平衡
- 10 ~ 15 : 需要提示詞很好、很具體,而且 10 以上飽和度會變高
以圖片生成圖片#
根據提示詞 + 圖片生成圖片
同樣的,我們也看看這個界面的一些設置,滾動到頁面下面會有設置區域
圖生圖最常見的用途是:轉換圖片的風格
圖擴展圖#
根據提示詞 + MASK(蒙版) + 圖片生成圖片
常見場景:去水印,換裝、擴展畫邊界
提示詞 Prompts 怎麼寫#
關鍵詞#
不同特性用逗號,分隔#
類似特性用 | 分隔#
調整權重#
如果想調整某個特性占畫面的比例或權重可以透過這樣調整
(提示詞:權重數值)
- 數值 < 1 :減弱權重
- 數值 > 1 :加強權重
漸變效果#
如果想要畫面存在漸變,可以這樣:
[關鍵詞 1: 關鍵詞 2: 百分比]
交替融合#
如果想要畫中一半有這個風格,另一半是另一種風格,可以這樣
[關鍵詞 | 關鍵詞]
強化效果#
添加高質量的關鍵詞,如:best quality、masterpiece
添加反向詞#
常用反向詞:
nsfw
: 色情暴力的bad face
: 不好的臉
強化形態#
控制強調畫面的整體形態:如是否是 **full body shot (全身照)** 之類的
- 光線
- cinematic lighting (電影光)
- dynamic lighting(動感光)
- 視線
- looking at viewer
- looking at another
- looking away
- looking back
- looking up
- 畫風
- skatch
- 視角
- dynamic angle
- from above
- from below
- wide shot
與 ChatGPT 結合#
進階玩法#
不同模型#
- 常用模型搜索下載網站:
市面上人們常用的模型:
- 二次元風格模型
- 國風風格模型
- 國風 3 GuoFeng3 : 中國華麗古風風格模型,具有 2.5 D 的質感
- Midjourney 風格
- Dreamlike Diffusion 1.0 : 顏色特別艷麗,畫風特別炫
- 真人風格
可以將這些模型下載下來放到stable-diffusion-webui/models/Stable-diffusion
目錄下,點擊頁面的模型選擇旁邊的刷新按鈕即可使用這些模型啦