这两天玩了个大的"在linux中使用amd显卡搭建本地ai绘图项目"

五级用户 panndora 2022-11-27 5772

上周开始在公司用办公电脑的CPU来玩这个,但是速度太慢了,快就20分钟一张图,慢就40分钟一张图.实在没办法,我又是一个穷逼,家里面现在只有一张RX580,还是几年前买的.现在n卡在windows下面部署这个东西容易的多,甚至能在B站下载到绿色压缩包,解压即用,amd只能自己想办法解决了.

更新APT与软件

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install wget gnupg2 git python3 python3-venv python3-pip

安装显卡驱动

amd官方驱动

sudo amdgpu-install --uninstall卸载驱动(如果有需要的话先卸载老驱动)

访问amd官网下载amdgpu-install_xxxxxx.xxxxxx_all.deb

进入安装包所在的目录 接着在终端输入:sudo apt install ./amdgpu-install_xxxxxxx-xxxxxx_all.deb(注:amdgpu-install_xxxxxxx-xxxxxx_all.deb指的是你下载的amdgpu版本

然后sudo apt updatesudo apt upgrade -y

之前因为没有添加 --no-dkms 老是报错,不过现在无所谓了,这个dkms不用安装也没关系,毕竟我使用的是UBUNTU22.10

sudo amdgpu-install --no-dkms
sudo apt install rocm-dev
//安装完后重启,这个驱动安装时间很久,但是又必须使用官方源.
sudo reboot

重启后设置环境变量参数

ls -l /dev/dri/render*
sudo usermod -a -G render $LOGNAME
sudo usermod -a -G video $LOGNAME
echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf
echo 'EXTRA_GROUPS=render' | sudo tee -a /etc/adduser.conf
sudo reboot

重启后检查驱动与rocm转换信息.

# 显示gpu性能监控
rocm-smi
#查看显卡信息的两条命令(直接在终端输入)
/opt/rocm/bin/rocminfo
/opt/rocm/opencl/bin/clinfo
#有一条报错可能是没安装好

添加环境变量

echo ‘export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64’ | sudo tee -a /etc/profile.d/rocm.sh

MIopen

这个东西我本来想安装的,但是系统提示已经安装过了,而且我的显卡并不是5000和6000的,而是RX580

#安装hip
sudo apt-get install miopen-hip
#下载miopenkernels,适用与gfx1030的a卡,如果你不是可以试一下
链接:https://www.123pan.com/s/xW39-oyMmH
sudo dpkg -i miopenkernels-gfx1030-36kdb_1.1.0.50200-65_amd64.deb

安装pytorch

这个可以自行决定是安装在python沙盘中还是安装在python的默认地址,如果是安装在环境中的话,要先安装stable-diffusion,然后在其中建立沙盘目录.建立在沙盘中的好处是可以把git和python的目录都弄到 stable-diffusion里面,方便迁移,你甚至可以把他们放到沙盘里面,方便在其他机器上面部署.

注意: pytorch库的安装很看脸,我昨天用了一整天,每次都是安装到一半报错网络问题,结果今天早上一下就安装好了. 需要用git clone安装的那些子项目也是这样的,网速好的时候啪一下就行了,网速不好的时候能折腾一整天.

如果将whl安装在沙盘目录中的过程

先克隆stable-diffusion-webui 看下面

建立python的沙盘环境目录

如果不想做移动环境,或者说想把依赖库直接安装到python的主目录中,这一步可以不用做.但是如果要做的话,后面执行启动脚本的时候也记得先要进入venv环境再执行.

python3 -m venv venv
# 进入环境
source venv/bin/activate

更新pip并设置国内源

#如果没有安装过pip,先安装
sudo apt install python3-pip
# windows下在用户目录建立.pip目录,linux操作如下
mkdir ~/.pip
echo -e "[global]\nindex-url = https://mirrors.aliyun.com/pypi/simple/\n[install]\ntrusted-host = mirrors.aliyun.com" > ~/.pip/pip.conf
#然后更新版本
python -m pip install --upgrade pip wheel

RDNA2架构

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/rocm5.1.1

RX580架构

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/rocm3.7

安装stable-diffusion-webui

# 先克隆下来
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
# 然后进入该目录
cd stable-diffusion-webui

根据目录中的库列表,安装依赖库

这里使用清华大学的源,虽然上面我们已经设置pip用阿里源,不过我发现清华的我这边快一点.

pip install -r requirements.txt' -i https://pypi.tuna.tsinghua.edu.cn/simple

启动命令

在你启动之前,你需要有模型,模型就是别人的AI训练集,虽然目前noval很流行,但是经过我的测试,生成我需要的无限制图,当时anything-v3更好.

下载模型

下载地址

根据你的需求,下载

4g版本,据说不怎么吃配置

Anything-V3.0-pruned.ckpt

建议下面两个,vae是必须要下载的,无论你下载4G的还是7G的模型都需要 vae.pt. NOVAL也是如此.

Anything-V3.0.ckptAnything-V3.0.vae.pt

这个网站上还有其他不少流行的模型,当然你有耐心你显卡好你素材多,也可以自己训练模型.

放置模型

下载到的模型,放在stable-diffusion-webui中的子目录中,路径是

stable-diffusion-webui/models/Stable-diffusion/

RDNA2 环境变量

如果你的AMD显卡是 5000 6000 系的,就是RDNA2架构的话,不但上面的pytorch要安装对应版本,这里的环境变量设置也要注意一下.

export HSA_OVERRIDE_GFX_VERSION=10.3.0

RX580 环境变量

export HSA_OVERRIDE_GFX_VERSION=8.0.3

正式运行

决定了环境变量,就直径进入python环境(如果之前是直接将库安装到主目录就不用source这一行)

source venv/bin/activate
export HSA_OVERRIDE_GFX_VERSION=8.0.3
python launch.py --precision full --no-half

另外的参数

我发现我的显卡还是太差了, launch.py 的其他参数很有帮助

--lowvram --always-batch-cond-uncond --skip-torch-cuda-test

所以我的完整运行命令是

python launch.py --lowvram --always-batch-cond-uncond --skip-torch-cuda-test --precision full --no-half

最后

我考虑还是过段时间我们这边快递解封了的时候,买个N卡矿卡算了,AMD的显卡是真的要啥没啥.



上一篇:恶搞趣味竞猜。
下一篇:昨晚看球没事上闲鱼看看,现在人们都是富裕了原来养猫养狗,现在都是养貂,养耗子,养猪越来越多元化哈哈哈!水一贴啊。
最新回复 (17)
  • 五级用户 panndora 2022-11-27
    0 2



    Masterpiece, head close-up, eye focus, virtual background.
    There is a faint shadow on the white background.
    The man with ponytail argument wore a pair of glasses with a metal frame. The lens on the right reflected white light and smiled. The bangs were no longer behind their ears, blocking their forehead.
    Wearing a white shirt with a badge on the neckline

    杰作,头部特写,眼部焦点,背景虚化
    白色的背景上有着淡淡的影子,
    留着马尾辩的男子带着一副金属边框的眼镜,右边的镜片折射白色反光,面带笑容,刘海别再耳朵后面,挡住了额头,
    穿着白色的衬衫,领口别着一枚徽章


  • 五级用户 panndora 2022-11-27
    0 3

    另外用相似的描述语句,去掉镜片反光后演算出来的图





  • 五级用户 adieu 2022-11-27
    0 4
    不明觉厉,大佬牛逼?
  • 四级用户 kjaboshopainmw 2022-11-27
    0 5
    那个discoart docker容器试过吗
  • 五级用户 panndora 2022-11-27
    0 6
    kjaboshopainmw 那个discoart docker容器试过吗
    哎? 还能用容器调用显卡的吗? 我完全没意识到这一点啊!
  • 五级用户 panndora 2022-11-27
    0 7


    杰作,上半身特写,眼部焦点,背景虚化,
    稀疏的松树林中有着雪花飘落,阳光从树荫间穿过,
    头发花白的中年男子微笑着仰头,泪水从眼角滑落,身穿黑白花纹的毛衣,伸出一只手拿着DS4控制器,

    Masterpiece, upper body close-up, eye focus, background blurring.
    Snowflakes fell in the sparse pine forest, and the sun passed through the shade.
    The gray-haired middle-aged man smiled and looked up, tears fell from the corners of his eyes, dressed in a black-and-white sweater, holding the DS4 controller in one hand.



    ----------- 看来翻译软件还是不行啊,还得自己英语好才行.

    我也是理解为什么网上都是用单词来拼凑了,通过对单词加权重,确实比我这种用机翻的生成的准确.

  • 四级用户 topgamer 2022-11-27
    1 8

    尝试了一下,领章和右边镜片白色反光搞不出来……

    one man with ponytail, smile, wearing a metal frame glasses, the right lens is reflecting light, white shirt , one collar badge, bangs covering forehead, blurring background,



  • 五级用户 像风一样自由 2022-11-27
    0 9
    蹲一只胖哆啦
  • 五级用户 Leviathan 2022-11-27
    0 10
    我有天玩dota2,打一半队友掉了,另一个人说,他的AMD显卡掉驱动了,玩游戏还买AMD……..
  • 五级用户 panndora 2022-11-27
    0 11
    topgamer 尝试了一下,领章和右边镜片白色反光搞不出来……one man with ponytail, smile, wearing a metal frame glasses, the right lens i ...
    我也尝试了几次,无论如何提高权重都出不来,看来这种配饰应该在模型里面没有.
  • 五级用户 panndora 2022-11-27
    0 12
    像风一样自由 蹲一只胖哆啦

    我放弃了,这个AI无法理解哆啦a梦跟奔跑. 它只能理解,胖........



    masterpiece,The fat Doraemon is running




  • 五级用户 panndora 2022-11-27
    0 13

    A fat Doraemon is trying to run.

    00019-957033571-A fat Doraemon is trying to run.png

  • 五级用户 像风一样自由 2022-11-27
    0 14
    panndora 我放弃了,这个AI无法理解哆啦a梦跟奔跑. 它只能理解,胖........masterpiece,The fat Doraemon is running

    啊这………………为什么这个女生肚肥脸瘦啊?!!

  • 五级用户 夏风 2022-11-27
    0 15

    听说这个a卡效率比n卡低非常非常多
    是吗?

    n卡在游戏之外的领域还是爆杀amd啊

  • 五级用户 像风一样自由 2022-11-27
    0 16
    panndora A fat Doraemon is trying to run.
    这像是哆啦A梦与胖虎的结合…………
  • 五级用户 panndora 2022-11-27
    0 17
    夏风 听说这个a卡效率比n卡低非常非常多是吗?n卡在游戏之外的领域还是爆杀amd啊
    是的,其实这个就是苏妈想办法写了个翻译层,效率自然是比不上N卡的.... 所以也没有windows支持.
    现在像AV1编码这些,机器学习这些,A卡都是半残废状态...
  • 五级用户 chaoslaw 2022-12-7
    0 18
    夏风 听说这个a卡效率比n卡低非常非常多是吗?n卡在游戏之外的领域还是爆杀amd啊
    因为会用到CUDA
    • 老男人游戏网配套论坛
      19
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。