stable diffusion for AMD

说明

这里是AMD卡的stable diffusion搭建方式,使用N卡的话搭建更简单,可以省去很多步骤,但是N卡只配F**K U,所以我选择A卡。
特别感谢这篇文章,我是基于这篇文章来搭的,最后成功运行。

环境需求

  1. 显存大于8G的A卡,理论上6G+的卡就行,但是我没试过。显卡越好炼丹越快。
  2. 安装好了python和git。
  3. 注册好了Hugging Face账号,用于下载模型。

安装python环境

建议先切换到清华源,否则下载速度很慢。要求python 3.7+。

pip install diffusers
pip install transformers
pip install onnxruntime
pip install accelerate
pip install onnx
pip install scipy
pip install torch

使用虚拟环境的自便,我比较懒不折腾。
还需要去下载directml的运行时,地址在这里,找最新的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

处理模型

由于模型默认是cude的,所以A卡想用得进行处理。处理程序是这个:
https://raw.githubusercontent.com/huggingface/diffusers/main/scripts/convert_stable_diffusion_checkpoint_to_onnx.py
另存为本地,改名为conver_to_onnx.py,待用。
登录https://huggingface.co/,在个人中心、设置页面,找到Access Tokens页面,添加一个Access Tokens。
执行huggingface-cli.exe login,把生成的token输入进去,看到登录成功就代表ok了。
执行python.exe .\conver_to_onnx.py --model_path="CompVis/stable-diffusion-v1-4" --output_path="./stable_diffusion_onnx",模型就处理完成了。国内网络不稳定,有时候会timeout,只能自己多试试了

开始炼丹

写个执行脚本:

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,执行,然后等就行了,速度还是挺快的。

你可能感兴趣的:(stable diffusion for AMD)