Stable Diffusion部署教程,开启你的AI绘图之路

本文环境

系统:Ubuntu 20.04 64位

内存:32G

环境安装

2.1 安装GPU驱动

在英伟达官网根据显卡型号、操作系统、CUDA等查询驱动版本。官网查询链接https://www.nvidia.com/Download/index.aspx?lang=en-us
注意这里的CUDA版本,如未安装CUDA可以先选择一个版本,稍后再安装CUDA.

image.png

点击Search

image.png


如上图,查询到合适的版本为510. 然后可以使用apt安装对应驱动版本,使用apt安装更方便一些。

# 安装510版本驱动
sudo apt install nvidia-driver-510
# 查看驱动信息
nvidia-smi

 当然你也可以使用官网下载的run文件进行安装

sudo chmod +x NVIDIA-Linux-x86_64-510.108.03.run

安装

sudo ./NVIDIA-Linux-x86_64-510.108.03.run

安装步骤操作之后就可以完成安装了

输入nvidia-smi查看显卡

chen@chen:~$ nvidia-smi 
Sat Jun 22 08:50:27 2024       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.39.01    Driver Version: 510.39.01    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla M40           On   | 00000000:01:00.0 Off |                    0 |
| N/A   53C    P8    17W / 250W |      3MiB / 11520MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------++-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

安装CUDA

访问英伟达开发者网站先选择CUDA版本(版本要对应2.1中GPU驱动支持的CUDA版本),再根据操作系统选择对应CUDA安装命令,访问链接https://developer.nvidia.com/cuda-toolkit-archive

image.png

如上面安装确定所选择驱动对应的CUDA版本为11.6,根据安装命令安装, 以下命令适用Ubuntu 20.04 x86_64, GPU驱动510版本

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-6-local_11.6.2-510.47.03-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

2.3 安装Python 3.10

Stable Diffusion WebUI目前最低支持Python 3.10,所以直接安装3.10版本,安装命令:

	apt install software-properties-commonadd-apt-repository ppa:deadsnakes/ppaapt updateapt install python3.10python3.10 --verison

PIP设置国内源,由于默认源在国外,所以安装可能经常会出现timeout等问题,使用国内源可以很大程度避免下载包timeout的情况。将如下内容复制到文件~/.pip/pip.conf当中,如没有该文件,先创建touch ~/.pip/pip.conf

	[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-host = https://pypi.tuna.tsinghua.edu.cn  

但是有一种比较推荐的方法就是使用 Anaconda

 安装Anaconda

非常推荐使用Anaconda。Anaconda可以便捷获取包且对包能够进行管理,同时对Python环境可以统一管理的发行版本。安装命令也很简单:

	wget https://repo.anaconda.com/archive/Anaconda3-5.3.1-Linux-x86_64.shbash ./Anaconda3-5.3.1-Linux-x86_64.sh

安装步骤安装Anaconda,最后一部选择是否要安装vscode可以选N

建Python3.10.9环境,并使用该环境

	conda create -n python3.10.9 python==3.10.9conda activate python3.10.9

2.5 安装PyTorch

首先在PyTorch官网查询对应CUDA版本的Torch,如上述章节2.2中CUDA 11.6需要安装pytorch1.13.1

# 使用conda安装,两种安装方式二选一
conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia# 使用pip安装,两种安装方式二选一
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

我是使用pip安装的

三、部署Stable Diffusion WebUI

3.1 下载stable-diffusion-webui

注意首先激活Python3.10环境:

conda activate python3.10.9

然后下载stable-diffusion-webui

sudo git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

如果遇到项目clone不下来可以使用我下面的加速地址

sudo git clone https://github.moeyy.xyz/https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

安装依赖

cd到stable-diffusion-webui目录安装相应的依赖,如有访问网络超时、失败等,注意按照章节2.3中设置国内源,如果再次失败,重试几次一般都可完成安装。

cd stable-diffusion-webui
pip install -r requirements_versions.txt
pip install -r requirements.txt

启动stable-diffusion-webui

安装完成后,执行如下启动命令:

python launch.py --listen --enable-insecure-extension-access

这一步骤会下载一些常用模型,如果遇到下载失败,根据报错提示在huggingface.co下载模型放到对应目录,如下载stable-diffusion-v1-5模型,搜索找到https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

每次启动都需要输入一长串命令,比较麻烦,可以写一个shell

sudo vim start.sh

里面输入

sudo /home/chen/anaconda3/envs/python3.10.9/bin/python launch.py --listen --enable-insecure-extension-access

/home/chen是当前我的用户目录,anaconda3创建的虚拟环境是python3.10.9 就写这个python路径anaconda3/envs/python3.10.9

sudo chmod +x start.sh

启动项目

chen@chen:/data/stable-diffusion-webui$ ./start.sh 
[sudo] password for chen: 
Sorry, try again.
[sudo] password for chen: 
Python 3.10.9 (main, Mar  8 2023, 10:47:38) [GCC 11.2.0]
Version: v1.9.4
Commit hash: feee37d75f1b168768014e4634dcb156ee649c05
Launching Web UI with arguments: --listen --enable-insecure-extension-access
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.13.1+cu116. You might want to consider upgrading.
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
==============================================================================
You are running torch 1.13.1+cu116.
The program is tested to work with torch 2.1.2.
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.
==============================================================================
Loading weights [63d370e256] from /data/stable-diffusion-webui/models/Stable-diffusion/a31_style.safetensors
Running on local URL:  http://0.0.0.0:7860To create a public link, set `share=True` in `launch()`.
Startup time: 14.5s (prepare environment: 2.3s, import torch: 4.9s, import gradio: 1.3s, setup paths: 1.3s, initialize shared: 0.3s, other imports: 1.3s, list SD models: 0.2s, load scripts: 1.5s, create ui: 0.8s, gradio launch: 0.6s).
Creating model from config: /data/stable-diffusion-webui/configs/v1-inference.yaml
/home/chen/anaconda3/envs/python3.10.9/lib/python3.10/site-packages/huggingface_hub/file_download.py:1132: FutureWarning: `resume_download` is deprecated and will be removed in version 1.0.0. Downloads always resume when possible. If you want to force a new download, use `force_download=True`.warnings.warn(

访问服务器ip:7860

随便画一张图试试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS动画(动态导航栏)

1.项目简介 一个具有创意的导航菜单不仅能为你的大作业增色&#xff0c;还能展示你的技术实力。本文将分享一系列常用于期末大作业的CSS动画导航效果&#xff0c;这些效果不仅外观酷炫&#xff0c;而且易于实现。我们提供了一键复制的代码&#xff0c;让你能够快速集成到自己的…

掌握ChatGPT:提示工程入门详解

随着人工智能的发展&#xff0c;提示工程成为了使用ChatGPT等语言模型的核心技术。对于初学者&#xff0c;理解和运用提示工程是提高与ChatGPT互动效果的关键。 什么是提示工程&#xff1f; 提示工程是通过设计和优化输入文本&#xff08;提示&#xff09;来引导AI生成特定输出…

破碎的像素地牢探险:游戏分享

软件介绍 《破碎的像素地牢》是开源一款地牢冒险探索类的游戏&#xff0c;融合了日系RPG经典风格&#xff0c;玩家将控制主角进行未知场景的探索。除了经典地牢玩法外&#xff0c;游戏还添加了更多创意内容&#xff0c;如黑屏状态前的挑战性等&#xff0c;使得游戏更加富有挑战…

Vue78-缓存路由组件

一、需求 路由切走的时候&#xff0c;组件会被销毁&#xff0c;路由切回来&#xff0c;组件被挂载&#xff01; 需要&#xff1a;路由切走的时候&#xff0c;组件不会被销毁。 二、代码实现 若是不加include属性&#xff0c;则在<router-view>里面展示的路由&#xff0c…

ubuntu20.04安装配置openMVG+openMVS

安装 主要跟着官方教程逐步安装 openMVG https://github.com/openMVG/openMVG/blob/master/BUILD.md openMVS https://github.com/cdcseacave/openMVS/wiki/Building 注意事项 1. 库版本要求 使用版本&#xff1a; openMVS 2.2.0 openMVG Eigen 3.4.0 OpenCV 4.6.0 Ce…

华为开发者大会:全场景智能操作系统HarmonyOS NEXT

文章目录 一、全场景智能操作系统 - HarmonyOS NEXT1.1 系统特性1.2 关于架构、体验和生态 二、应用案例2.1 蚂蚁mpaas平台的性能表现 三、新版本应用框架发布3.1 新语言发布3.2 新数据库发布3.3 新版本编译器的发布 四、CodeArts和DataArts4.1 CodeArts4.2 DataArts 五、总结 …

高通安卓12-Input子系统

1.Input输入子系统架构 Input Driver(Input设备驱动层)->Input core(输入子系统核心层)->Event handler(事件处理层)->User space(用户空间) 2.getevent获取Input事件的用法 getevent 指令用于获取android系统中 input 输入事件&#xff0c;比如获取按键上报信息、获…

C++实现简单的哈希表

使用除留余数法计算哈希地址&#xff0c;使用拉链法解决哈希冲突&#xff0c;使用模板编程实现value为任意类型&#xff0c;但是key值只能是整型。链表使用CSTL库中的list&#xff0c;实现了一个简单的哈希表。 #include <iostream> #include <vector> #include &l…

Cloudflare 常用操作

一、域名托管到cloudflare 登录cloudflare->添加站点->填写域名(例如阿里云)->继续选择free套餐->继续->保存cloudflare分配的DNS地址->进入阿里云域名管理->进入DNS管理/DNS修改把DNS地址修改为cloudflare分配的两个DNS->保存->回到cloudflare->…

返利系统中的用户行为分析与推荐算法

返利系统中的用户行为分析与推荐算法 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在现代电子商务平台中&#xff0c;返利系统是一种重要的用户激励手段&am…

深入理解Python中的并发与异步的结合使用

​ 在上一篇文章中&#xff0c;我们讨论了异步编程中的性能优化技巧&#xff0c;并简单介绍了trio和curio库。今天&#xff0c;我们将深入探讨如何将并发编程与异步编程结合使用&#xff0c;并详细讲解如何利用trio和curio库优化异步编程中的性能。 文章目录 并发与异步编程的区…

【数据结构与算法】二叉树的性质 详解

在二叉树的第i层上至多有多少个结点。 在二叉树的第 i 层上至多有 2 i − 1 2^{i-1} 2i−1 个结点(i≥1)。 深度为 K的二叉树至多有多少个结点。 深度为 k 的二叉树上至多含 2 k − 1 2^k - 1 2k−1 个结点(k≥1)。 在一颗二叉树中, 其叶子结点数n0和度为二的结点数n2之间…

安装CDH时报错:Parcel 不可用于操作系统分配 RHEL7,原因与解决办法~

报错信息&#xff1a; 解决办法与思路&#xff1a; 1、检查CDH包的后缀名称&#xff0c;Redhat与Centos安装时不需要修改后缀名称&#xff0c;麒麟系统安装时才需要修改。 2、目录里面需要有xxx.parcel xxx.parcel.sha manifest.json 三个文件 缺一不可&#xff08;注&#x…

Transformer预测 | 基于Transformer的锂电池寿命预测(Pytorch,CALCE数据集)

文章目录 文章概述模型描述程序设计参考资料文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t)=CtC0100%, 其中,…

JQuery 概念、历史、发展、优势-JQuery开发教程

一、JQuery 框架简介 jQuery 是一个 轻量级 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 jQuery 很容易学习。 jQuery是一个快速、简洁的JavaScript框架&#xff0c;是继Prototype之后又一个优秀的JavaScript代码库&#xff08;框架&#xff09;于2006年1月由Joh…

@NotBlank、@NotNull、@NotEmpty、@NonNull四者之间的区别

文章目录 NotNullNotEmptyNotBlankNonNull NotNull 1.NotNull&#xff1a;用在基本类型上&#xff0c;不能为null&#xff0c;但可以为空字符串 NotEmpty 2.NotEmpty&#xff1a;用在集合类上&#xff0c;不能为null&#xff0c;并且长度必须大于0 NotBlank 3.NotBlank&am…

HarmonyOS Next 系列之可移动悬浮按钮实现(六)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

ios swift5 播放视频失败 本地的可以 网页链接播放失败

Main thread blocked by synchronous property query on not-yet-loaded property (PreferredTransform) for HTTP(S) asset. This could have been a problem if this asset were being read from a slow network. Asset is not playable

基数排序!

大鸡排&#xff5e; 算法描述定义常量和全局变量初始化PowOfBase数组输入函数和输出函数获取某一位的基数值基数排序函数主函数 完整代码 https://articles.zsxq.com/id_flaketn5n3uo.html 算法描述 定义常量和全局变量 const int MAXN 100005; // 1 const int MAXT …

MQ~消息队列能力、AMQP协议、现有选择(Kafka、RabbitMQ、RocketMQ 、Pulsar)

消息队列 消息队列看作是一个存放消息的容器&#xff0c;当我们需要使用消息的时候&#xff0c;直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构&#xff0c;所以消费消息时也是按照顺序来消费的。 常⽤的消息队列主要这 五 种&#xff0c;分别…