Stable Diffusion 是熱門的文本到圖像的生成擴(kuò)散模型灵奖,本文介紹了如何準(zhǔn)備其 WebUI 環(huán)境嚼沿。
環(huán)境基礎(chǔ)
- OS: Ubuntu 22.04.2 LTS
- Kernel: 5.19.0
- CPU: AMD Ryzen 7 3700X
- GPU: NVIDIA GeForce RTX 2080 Ti
- RAM: 16GB
環(huán)境安裝
Nvidia 驅(qū)動(dòng)
# 查看可用驅(qū)動(dòng)信息
ubuntu-drivers devices
# 安裝 Nvidia 驅(qū)動(dòng)(可選提示 recommended 的)
sudo apt install nvidia-driver-530
# 查看 Nvidia 驅(qū)動(dòng)(查看不了估盘,可重登錄或重啟)
nvidia-smi
Anaconda
- Anaconda: https://www.anaconda.com/download
# 安裝 Anaconda, 都 yes
bash Anaconda3-2023.03-1-Linux-x86_64.sh
PyTorch
- PyTorch: https://pytorch.org/
# 創(chuàng)建虛擬環(huán)境
conda create -n sdwebui python=3.10.6 -y
conda activate sdwebui
# 安裝 PyTorch with CUDA
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y
檢查 PyTorch 版本,
$ python - <<EOF
import torch
print(torch.__version__, torch.cuda.is_available())
EOF
2.0.1 True
Stable Diffusion WebUI
獲取代碼
sudo apt install git -y
git clone -b v1.3.2 --depth 1 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui/
export SDWEBUI=`pwd`
獲取模型
從 Civitai 或 HuggingFace 下載模型骡尽,
- 現(xiàn)實(shí)風(fēng)格
- 動(dòng)漫風(fēng)格
這里選了兩種不同風(fēng)格的模型遣妥,放進(jìn) models/Stable-diffusion/
目錄,
mv majicmixRealistic_v5.safetensors $SDWEBUI/models/Stable-diffusion/
mv dreamshaper_6BakedVae.safetensors $SDWEBUI/models/Stable-diffusion/
啟動(dòng)運(yùn)行
conda activate sdwebui
# 避免用 venv攀细,就用 conda 虛擬環(huán)境
export VIRTUAL_ENV=sdwebui
# 啟用局域網(wǎng)訪問
export COMMANDLINE_ARGS=" --listen"
# 以上可以直接在 webui-user.sh 配置好箫踩,如下
cd $SDWEBUI
vi webui-user.sh
# webui-user.sh
# eval "$(conda shell.bash hook)"
# conda activate sdwebui
# export VIRTUAL_ENV=sdwebui
# export COMMANDLINE_ARGS=" --listen"
# 啟動(dòng)運(yùn)行
cd $SDWEBUI
./webui.sh
-
webui-user.sh
可配置指定的 Stable Diffusion 版本等,默認(rèn)值見$SDWEBUI/modules/launch_utils.py
辨图。 -
webui.sh
啟動(dòng)運(yùn)行班套,默認(rèn)會(huì)用 python venv 準(zhǔn)備完整環(huán)境肢藐,不過這里讓用已準(zhǔn)備的 conda 虛擬環(huán)境了故河。
等啟動(dòng)后,瀏覽器打開 http://127.0.0.1:7860/
即可開始使用了吆豹。
初步使用
Stable Diffusion checkpoint
選擇模型鱼的,于 txt2img
標(biāo)簽頁寫好 Prompt
Negative Prompt
文本,再 Generate
即可生成圖像痘煤。
剛開始使用凑阶,可以借用別人的 Prompt
試試:如模型下載頁示例圖像的,或如 PromptHero 等站點(diǎn)分享圖像的衷快。試了下兩模型宙橱,效果如下:
majicMIX realistic:
# Prompt
best quality, masterpiece, ultra high res, photorealistic, 1girl, offshoulder, smile,
Portrait
# Negative prompt
ng_deepnegative_v1_75t, (badhandv4:1.2), (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)) watermark, moles
DreamShaper:
# Prompt
(masterpiece, top quality, best quality, official art, beautiful and aesthetic:1.2),(8k, best quality, masterpiece:1.2),CGDivineSwordsw, weapon, armor, solo, holding, horns, glowing, sword, 1boy, holding weapon, planted, male focus, glowing weapon, standing, helmet, gauntlets, holding sword, glowing sword, planted sword, shoulder armor, gradient, gradient background, greaves, pauldrons, (blue glow:1.3), <lora:CGDivineSwordsw_20230611172159:1>
# Negative prompt
(badhandv4:1.2),lowres, bad anatomy,bad arms,text, bad face, error, extra digit, fewer digits, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, {blurry:1.1}, missing arms, missing legs, more than two legs,cowboy,huge_breasts,gigantic_breasts,
后話
Prompt
需要自己多玩,慢慢探索和總結(jié)蘸拔∈χ#可以搜索別人分享的經(jīng)驗(yàn),也有不少生成或優(yōu)化工具调窍。去理解擴(kuò)散模型的大概原理宝冕,也可能有不少幫助。
GoCoding 個(gè)人實(shí)踐的經(jīng)驗(yàn)分享邓萨,可關(guān)注公眾號(hào)地梨!