說明
這里是AMD卡的stable diffusion搭建方式,使用N卡的話搭建更簡單,可以省去很多步驟,但是N卡只配F**K U,所以我選擇A卡。
特別感謝這篇文章,我是基于這篇文章來搭的,最后成功運(yùn)行。
環(huán)境需求
- 顯存大于8G的A卡,理論上6G+的卡就行,但是我沒試過。顯卡越好煉丹越快。
- 安裝好了python和git。
- 注冊(cè)好了Hugging Face賬號(hào),用于下載模型。
安裝python環(huán)境
建議先切換到清華源,否則下載速度很慢。要求python 3.7+。
pip install diffusers
pip install transformers
pip install onnxruntime
pip install accelerate
pip install onnx
pip install scipy
pip install torch
使用虛擬環(huán)境的自便,我比較懶不折騰。
還需要去下載directml的運(yùn)行時(shí),地址在這里,找最新的ort_nightly_directml版本,然后下載python版本一致的版本就行。我是python3.10,下載ort_nightly_directml-1.14.0.dev20221205004-cp310-cp310-win_amd64.whl即可。
然后pip install ort_nightly_directml-1.14.0.dev20221205004-cp310-cp310-win_amd64.whl。
處理模型
由于模型默認(rèn)是cude的,所以A卡想用得進(jìn)行處理。處理程序是這個(gè):
https://raw.githubusercontent.com/huggingface/diffusers/main/scripts/convert_stable_diffusion_checkpoint_to_onnx.py
另存為本地,改名為conver_to_onnx.py,待用。
登錄https://huggingface.co/,在個(gè)人中心、設(shè)置頁面,找到Access Tokens頁面,添加一個(gè)Access Tokens。
執(zhí)行huggingface-cli.exe login,把生成的token輸入進(jìn)去,看到登錄成功就代表ok了。
執(zhí)行python.exe .\conver_to_onnx.py --model_path="CompVis/stable-diffusion-v1-4" --output_path="./stable_diffusion_onnx",模型就處理完成了。國內(nèi)網(wǎng)絡(luò)不穩(wěn)定,有時(shí)候會(huì)timeout,只能自己多試試了
開始煉丹
寫個(gè)執(zhí)行腳本:
from diffusers import OnnxStableDiffusionPipeline
from PIL import Image
prompt = "A beautiful girl, sketch"
def t2i():
pipe = OnnxStableDiffusionPipeline.from_pretrained("./stable_diffusion_onnx", provider="DmlExecutionProvider",safety_checker=None)
for x in range(3):
result= pipe(prompt)
image =result.images[0]
image.save("output%s.png"%x)
t2i()
修改里面的prompt,執(zhí)行,然后等就行了,速度還是挺快的。