最近 AIGC、ChatGPT 等話題持續發酵,熱門程度不亞於之前的 “元宇宙”。抖音、小紅書到處都是機器對話、AI 繪圖的影片。我看見別人生成的漂亮小姐姐圖片眼饞得不行,終於按捺不住自己的好奇心,也嘗試一下搭建。本文只是簡單記錄一下搭建過程。
△ 別人生成的漂亮小姐姐
我使用的是 Stable Diffusion,官網:stablediffusionweb.com,可以輸入關鍵字生成超清影像,而且會出乎你的意料,等待結果的過程還是很期待的。不過生成的結果在於使用了什麼模型,生成之前需要輸入英文關鍵字。在官網可以直接測試:stablediffusionweb.com/#demo
為了方便嘗試,我自己購買了個雲主機,選用的是厚德雲主機(室友推薦的,價效比高)。雲主機配置如下:
CPU:8 核
記憶體:16 GB
系統: Ubuntu Server 22.04、Python 3.10(當然最推薦使用 GPU 主機了!)
選擇國外 IP,下載 github 的內容速度會快一點。
雲主機的配置要夠高,這裡我真心推薦厚德雲的雲主機,新人註冊有代金券可以用,可以按天按月購買,有各種配置可以選,價格也還好。我是直接先買了一天的,搭建試試。
厚德雲官網:www.houdeyun.cn
註冊賬號後登陸,點選右上角的 “控制檯”,點選 “基礎雲”,選擇自己要的配置和型號,選擇“地區” 和 “系統”,右面選擇 “時長” 和 “流量”,直接購買就好了。
另外厚德雲還上線了 GPU 雲主機,我對比了幾家雲廠商,發現厚德雲的 GPU 價格非常優惠,AI 繪畫必備,生成速度快。
購買之後會分配公網 IP,主機名和密碼會透過簡訊傳送到手機,透過 ssh 去登入就好了。
下面正式開始。
- 配置下載源
# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. Anaconda 安裝,下載連結:https://docs.conda.io/en/latest/miniconda.html#linux-installers
Anaconda 是一個環境管理器,可以用於在同一個機器上安裝不同版本的軟體包及其依賴,並能夠在不同的環境之間切換,很方便。
- 下載上傳到主機後執行安裝,按照提示輸入,安裝成功。# ./Miniconda3-py310_23.1.0-1-Linux-x86_64.sh
建立一個命令軟鏈,可以直接使用 conda 命令
# ln -s /root/miniconda3/bin/conda /usr/bin/conda
- 建立一個目錄放東西 /git/
# mkdir /git
cd 進到 /git/ 目錄下
# cd /git/ # git clone https://github.com/CompVis/stable-diffusion.git # git 上下載包
7. 建立並啟用一個 conda 的環境:ldm ,進入到 stable-diffusion 目錄安裝 Stable Diffusion 環境
# cd /git/stable-diffusion # conda env create -f environment.yaml # 要下載環境需要的依賴,需要很久
- 解決報錯:Command errored out with exit status 128: git fetch -q --tags Check the logs for full command output
# conda install -c anaconda git # 安裝 git
然後刪除重新執行:
# rm -rf /root/miniconda3/envs/ldm
# conda env create -f environment.yaml
下載很久很久,最後沒有報錯,撒花。
啟用環境:
# conda activate ldm
另:停用一個環境:# conda deactivate
- 這一步下載模型,可以下載 ckpt 字尾的模型匯入,模型可以去各網站上找。例如:huggingface.co/CompVis (需要登入,直接註冊即可)
https://cyberes.github.io/stable-diffusion-models/#stable-diffusion-1-5
civitai.com/(已和諧)
模型可以參考這個帖子:zhuanlan.zhihu.com/p/592347520
我這邊按照 huggingface 裡的使用了一個不需要下載原始檔的: https://huggingface.co/CompVis/stable-diffusion-v1-4,可以直接根據文件裡輸入命令
# pip install --upgrade diffusers transformers scipy
- 安裝 torch,因為我的雲主機是 CPU,所以必須安裝 CPU 版本的:https://pytorch.org/get-started/locally/
如果支援 GPU 就安裝 CUDA ,但是需要看一下自己機器的 CUDA 版本,使用命令 “nvcc -V” 可以檢視。
按照官網的命令安裝:
# pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
- 生成指令碼,建立一個 test.py
GPU 版:
import torch
from diffusers import StableDiffusionPipeline
model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
CPU 版:
import torch
from diffusers import StableDiffusionPipeline
model_id = "CompVis/stable-diffusion-v1-4"
#device = "cuda" #GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(device)
prompt = "a photo of an astronaut riding a horse on mars"#圖片描述關鍵詞
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")#生成圖片的儲存路徑
- 最期待的一步來啦!執行指令碼生成圖片
`# python3 test.py
`
不出意外的話,開始需要下載很多東西,好多好多 G。下載之後會開始生成圖片,一些 Warning 可以直接忽略。下面是我踩了好多坑,報了好多錯之後執行成功的,生成用了 10 分鐘。機器配置太弱了沒辦法,估計 GPU 主機會快很多。
看了下雲主機監控,生成的這段時間飆了這麼高,CPU 大概佔了 45%,記憶體也差不多。
最後來看下我隨手嘗試生成的幾個圖片,宇航員騎馬:
又測試生成一個,生成時間大約花了 10 分鐘。
關鍵字:a girl with lavender hair and black skirt, fairy tale style background, a beautiful half body illustration, top lighting, perfect shadow, soft painting, reduce saturation, leaning towards watercolor
生成的結果:
又執行了一次上面的關鍵字,生成如下,貌似有點醜,不知道是不是模型的問題。
實話說,生成的圖片看起來怪怪的,這次生成漂亮的小姐姐失敗,不過初次搭建,磕磕絆絆也算成功啦,後面會研究一下,下載其他模型和關鍵詞最佳化來做嘗試。
另外現在是程式碼生成的,後續我會再考慮弄一個頁面工具,操作更方便。
Ps. 這篇內容主要是搭建教程,後續我會購買一個 GPU 主機來用來生成漂亮小姐姐。等我文章更新,帶你一步一步手動生成漂亮小姐姐。