小時(shí)候比較喜歡畫畫爪膊,如今AI盛行权悟,各種繪畫工具層出不窮,網(wǎng)上也看了很多推盛,stable diffusion(sd)和midjunery(mj)算是主流峦阁,國(guó)內(nèi)的文心、天工耘成、甚至抖音什么的榔昔,我也嘗試過驹闰,但是總的來(lái)說,跟sd和mj相比真的不好用撒会。后來(lái)我找了網(wǎng)上一些運(yùn)營(yíng)號(hào)問嘹朗,大多采用的是mj,不過我個(gè)人還是想試試茧彤,親自對(duì)比一下骡显,鑒于mj的付費(fèi),我先試了sd曾掂,下面是我安裝使用過程中的一些經(jīng)歷惫谤。
我的是Mac,所以就按照這個(gè)系統(tǒng)來(lái)了
一珠洗、安裝homebrew
$ /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
// 等待即可溜歪,檢查是否安裝成功
brew -V
// 打印出 homebrew 4.0.11 表示安裝成功
二、安裝python
brew install cmake protobuf rust python@3.10 git wget
也可以去官網(wǎng)下載安裝包3.10.9 或者3.10.10许蓖,手動(dòng)安裝
三蝴猪、下載SD包
1、下載資料包膊爪,解壓安裝自阱。鏈接: https://pan.baidu.com/s/1_a2dnt8ABG1txxmUSG9QOg?pwd=v1yz 提取碼: v1yz
2、從git倉(cāng)庫(kù)直接下載
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
四米酬、下載模型
可以使用上面資料包里的模型沛豌,也可以自己從官網(wǎng)下載https://huggingface.co/runwayml/stable-diffusion-v1-5/blob/main/v1-5-pruned-emaonly.ckpt
等模型。
這里需要注意的是赃额,下載后放置目錄stable-diffusion-webui/models/Stable-diffusion/下加派。模型有ckpt文件,也有safetensors文件跳芳,統(tǒng)統(tǒng)放進(jìn)去就行芍锦。
五、運(yùn)行
在終端中進(jìn)入你安裝的“stable-diffusion-webui”目錄飞盆,運(yùn)行 ./webui.sh
第一次運(yùn)行會(huì)安裝一些依賴娄琉,這個(gè)過程會(huì)遇到諸多問題,下面我列舉幾個(gè)桨啃。
六障涯、運(yùn)行問題解決
1俺祠、python版本問題 ??
sd運(yùn)行python是3,但是默認(rèn)是2,一般來(lái)說是不進(jìn)行覆蓋的坝咐,覆蓋它可能會(huì)導(dǎo)致系統(tǒng)腳本和其他依賴默認(rèn) Python 的軟件出現(xiàn)問題输玷。一般我們采用軟連的方式,如:sudo ln -s /usr/local/bin/python3 /usr/bin/python
,但是你會(huì)發(fā)現(xiàn)報(bào)錯(cuò)了ln: /usr/bin/python: Operation not permitted
逃默,也查過其他各種刪除方式都不得行。
首先安裝高版本的python后簇搅,按照下面的步驟來(lái):
(1完域、查看版本
which python
// /usr/bin/python
which python3
// /usr/local/bin/python3
(2、編輯profile文件
vi ~/.bash_profile
// 末尾追加內(nèi)容
alias python="/usr/local/bin/python3"
alias python2="/usr/bin/python"
(3瘩将、生效啟用
source ~/.bash_profile
這里還有個(gè)問題吟税,如果新開一個(gè)終端界面,需要重啟這個(gè)命令才能生效姿现。
2肠仪、No SDP backend available ??
Launching Web UI with arguments: --skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate
no module 'xformers'. Processing without...
No SDP backend available, likely because you are running in pytorch versions < 2.0. In fact, you are using PyTorch 1.12.1. You might want to consider upgrading.
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Style database not found: /Users/villen/stable-diffusion-webui/styles.csv
Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled
==============================================================================
You are running torch 1.12.1.
The program is tested to work with torch 2.0.0.
To reinstall the desired version, run with commandline flag --reinstall-torch.
Beware that this will cause a lot of large files to be downloaded, as well as
there are reports of issues with training tab on the latest version.
Use --skip-version-check commandline argument to disable this check.
==============================================================================
Downloading: "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors" to /Users/villen/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensors
WARNING:modules.mac_specific:MPS garbage collection failed
Traceback (most recent call last):
File "/Users/villen/stable-diffusion-webui/modules/mac_specific.py", line 38, in torch_mps_gc
from torch.mps import empty_cache
ModuleNotFoundError: No module named 'torch.mps'
原因:torch 的版本不對(duì)
解決方案:在安裝目錄stable-diffusion-webui 下,編輯webui-macos-env.sh文件
我的原來(lái)的配置文件如下备典;
export install_dir="$HOME"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate"
export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1"
export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git"
export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71"
export PYTORCH_ENABLE_MPS_FALLBACK=1
修改好的配置文件如下:
(1异旧、在COMMANDLINE_ARGS 參數(shù)的后面添加了–reinstall-torch
(2、export TORCH_COMMAND=“pip install torch2.0.1 torchvision0.15.2”提佣,將torch的版本修改成2.0的
export install_dir="$HOME"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --reinstall-torch"
export TORCH_COMMAND="pip install torch==2.0.1 torchvision==0.15.2"
#export TORCH_COMMAND="pip install torch==1.12.1 torchvision==0.13.1"
export K_DIFFUSION_REPO="https://github.com/brkirch/k-diffusion.git"
export K_DIFFUSION_COMMIT_HASH="51c9778f269cedb55a4d88c79c0246d35bdadb71"
export PYTORCH_ENABLE_MPS_FALLBACK=1
3吮蛹、Symbol not found: _VTRegisterSupplementalVideoDecoderIfAvailable??
這個(gè)提示其實(shí)還是跟依賴版本有關(guān),opencv版本太老拌屏,可以這樣手工更新一下:
cd venv/bin
source activate
./python3.10 -m pip install --upgrade pip
pip3 install opencv-python==4.6.0.66 deactivate
4潮针、"LayerNormKernelImpl" not implemented for 'Half’??
或者也會(huì)有這樣的提示Failed to create model quickly; will retry using slow method.
其實(shí)都是顯卡的問題,一般我們工作自用的電腦的顯存都不太能夠的倚喂,所以這里需要修改一下運(yùn)行方式:
編輯webui-user.sh
然低,添加:
export COMMANDLINE_ARGS="--precision full --no-half --skip-torch-cuda-test
或者我個(gè)人采用以下運(yùn)行方式:
./webui.sh --precision full --no-half
大家注意這里的half
,如果你有足夠的計(jì)算資源和內(nèi)存务唐,最簡(jiǎn)單的解決方案是將數(shù)據(jù)類型更改為全精度(float32),我們這里強(qiáng)調(diào)一半带兜,其實(shí)就是半精度替代實(shí)現(xiàn)方案枫笛。有興趣可以去了解一下精度問題。
七刚照、總結(jié)
本地跑起來(lái)了刑巧,確實(shí)比較慢,風(fēng)扇都要轉(zhuǎn)費(fèi)了无畔。SD跑圖除了需要通常所說的描述要到位啊楚,還要選合適的模型或者插件,才能做出理想的圖片浑彰。
以上是本地SD安裝過程中遇到的問題恭理,畢竟免費(fèi),隨后會(huì)跟大家聊一下它和midjunery的區(qū)別以及我個(gè)人的取舍郭变。