当前位置: 首页 > news >正文

进行Stable Diffusion的ai训练怎么选择显卡?

Stable Diffusion主要用于从文本生成图像,是人工智能技术在内容创作行业中不断发展的应用。要在本地计算机上运行Stable Diffusion,您需要一个强大的 GPU 来满足其繁重的要求。强大的 GPU 可以让您更快地生成图像,而具有大量 VRAM 的更强大的 GPU 可以让您更快地创建更高分辨率的图像。那么,最适合Stable Diffusion的消费类 GPU 是什么?让我们看看NVIDIA和AMD的部分GPU上的Stable Diffusion性能来寻找答案。

关于Stable Diffusion

什么是Stable Diffusion?

Stable Diffusion是一种机器学习模型。由于它能够根据文本提示生成图像,因此它越来越多地用于内容创建。Stable Diffusion 的独特之处在于它缺乏商业开发的软件,而是依赖于各种开源应用程序。此外,与其他类似的文本到图像模型不同,它通常在本地系统上本地使用,而不是使用在线 Web 服务。

Stable Diffusion 可以在具有至少 8GB VRAM 的中档 GPU 上运行。然而,它极大地受益于具有更多 VRAM 的强大现代 GPU。

Stable Diffusion的组成框架

您可以直接使用Stability AI和Runway开发的Stable Diffusion版本。然而,大多数人使用第三方创建的基于网络的版本。最常用的Stable Diffusion是:

  • Automatic 1111:这主要用于 NVIDIA GPU,尽管 AMD 和 Apple Silicon 也有分支。它允许您使用xformers,它可以显着提高 NVIDIA GPU 的性能。
  • SHARK:SHARK 是Automatic 1111 的替代方案。它本身支持 NVIDIA 和 AMD GPU。然而,AMD GPU 的性能往往较高,而 NVIDIA GPU 的性能往往较低。
  • 自定义:有些人使用他们需要的功能创建自己的应用程序,因为Stable Diffusion是公开的,任何人都可以直接使用。

每个实现在功能和可用性方面都有独特的优点和缺点。从性能和基准测试的角度来看,推荐使用Automatic 1111和SHARK。根据您要测试的GPU,建议同时使用Automatic 1111和SHARK。使用 Automatic 1111 测试 NVIDIA GPU,使用 SHARK 测试 AMD GPU。

注意:Stable Diffusion 会不断更新,因此您使用的不同版本可能会导致性能变化。

什么影响Stable Diffusion的性能?

首先,Stable Diffusion设置和模型

最常调整的设置(例如提示、否定提示、cfg 比例种子)不会对性能产生显着影响。生成狗或山地景观的图像需要相同的时间。即使选择的模型也往往只会导致生成时间的微小差异。看下面的图像,尽管有不同的提示和 cfg 比例,但它们的生成时间几乎完全相同。

其他设置(例如步长、分辨率采样方法)将影响Stable Diffusion的性能。

  • 步骤:调整步骤会影响生成图像所需的时间,但不会改变每秒迭代的处理速度。尽管许多用户选择 20 到 50 步,但将步数增加到 200 左右往往会在每次运行中产生更一致的结果。
  • 分辨率:图像分辨率不仅对性能影响最大,还会影响生成图像所需的 VRAM 量。出于基准测试目的,您可以使用 512×512 分辨率来确保与各种 GPU 型号的兼容性。
  • 采样方法(Euler、DPM等)。它会显着影响生成时间,某些选项所需的时间大约是其他选项的两倍。“Euler”和“Euler a”使用最广泛,并且往往提供最佳性能。其他方法(例如 DPM2)往往需要大约两倍的时间。出于 GPU 基准测试的目的,建议坚持使用 Euler 的变体以保持一致性。

其次是硬件

  • GPU :GPU 对速度和图像质量影响最大。更强大的 GPU 具有更高的内存带宽和更多的 VRAM,可以更快地生成稳定的扩散图像,尤其是在更高分辨率的情况下。GPU 上的 VRAM 数量决定了可以生成的最高分辨率图像。建议至少 8GB,更高分辨率需要 12GB 或更多。
  • CPU :虽然 GPU 处理大部分繁重的工作,但快速的 CPU 仍可以在较小程度上提高性能。具有更高时钟速度和更多内核的 CPU 可以提供较小的提升。
  • RAM :系统内存有助于向 GPU 提供数据,因此至少拥有 16GB RAM 可以确保最佳性能。更多 RAM(高达 32GB 或 64GB)可以进一步提高速度。

实现Stable Diffusion的最佳 GPU

要了解最适合Stable Diffusion的消费类 GPU,我们将检查这些 GPU 在其两个最流行的实现(其最新公开版本)上的Stable Diffusion性能。

许多Stable Diffusion实现通过计算“每秒迭代次数”或“ it/s ”来显示它们的工作速度。因此,为了检查Stable Diffusion性能,该指标是常用且很好的衡量标准。每秒迭代次数是通过将迭代次数除以生成图像所需的秒数来计算的。例如,如果生成具有 200 次迭代的图像需要 15 秒,则每秒的迭代次数约为13.3(即 200 次迭代除以 15 秒)。

首先,让我们看一下 Puget Systems 在 4000 系列 GPU 以及最近三代 NVIDIA 和 AMD RX 7900 XTX 和 RX 6900 XT的顶级 GPU 上测试的基准测试结果。

Automatic 1111性能

Automatic 1111是Stable Diffusion最常用的表现形式,通常可以在 NVIDIA GPU 上提供最佳性能。

NVIDIA 在这方面的表现明显优于 AMD。在 NVIDIA 的 GPU 列表中,RTX 4090 是获胜者,在Automatic 1111上提供了最高的性能结果。 甚至 RTX 3060 Ti 的速度也是 Radeon GPU 的两倍。只有 GTX 1080 Ti 比 RX 7900 XTX 差。

较新的 4000 系列 GPU 在图像生成速度方面具有明显的优势,同时性能与价格呈线性增长。RTX 4070 Ti 比之前的 RTX 3090 Ti 快约 5%,RTX 4060 Ti 比 3060 Ti 快近 43%,这表明了这一点。如果您仍然拥有 2000 或 1000 系列 GPU,即使是中档 4000 系列 GPU 也能提供显着的性能提升。

Shark性能测试

 

尽管 SHARK 不如Automatic 1111 常用,但许多 AMD 用户更喜欢它。看看上面的基准测试结果,原因就很清楚了。

RX 7900 XTX 的性能在 SHARK 的帮助下翻了四倍,每秒的迭代次数与运行 1111 的 RTX 4090 类似。同样,RX 6900 XT 的性能提升幅度甚至更大,达到了 1100%,但这仅使其与低端产品具有竞争力。已测试 NVIDIA GPU。

使用 SHARK 时,NVIDIA GPU 的性能比自动1111差约 30% ,尽管相对性能保持相同。

重要提示:正确使用Stable Diffusion非常重要,因为它会极大地影响性能。它可以从减少 30% 到大幅增加 1100%!上述GTX 1080 Ti的结果证明了这一点。在 Puget Systems 的本次测试中,它无法运行 SHARK。

总结

最突出的是各种Stable Diffusion实现之间性能的巨大差异。NVIDIA GPU 在Automatic 1111上提供最高性能,而 AMD GPU 在 SHARK 上工作效果最佳。顶级 GPU 各自的实现具有相似的性能。

如果您尚未决定使用特定的实现,NVIDIA 和 AMD 的高端 GPU 都提供了出色的性能。GeForce RTX 4090 和Radeon RX 7900 XTX 在Stable Diffusion的首选实现中均提供约 21 it/s 的速度。

值得注意的是,Stable Diffusion是一个不断发展的模型,具有一组工具。今天的运作方式与几个月前或未来的运作方式截然不同。 它的性能将在未来几个月和几年内发生变化。因此,本文中的性能结果可能会随着时间的推移而发生变化。作为明智的读者,我们希望您理解这些基准测试结果仅供参考。

如果您有兴趣在 RTX 4090 等顶级 GPU 上测试当前使用的Stable Diffusion实现的性能,请查看我们下面的服务。

赞奇云工作站- Stable Diffusion的云服务平台

Stable Diffusion 主要是为单 GPU 使用而设计的;然而,通过一些额外的软件和配置,它可以利用多个 GPU。通过将工作分散到多个 GPU 上,可以提高整体迭代速度。虽然大多数Stable Diffusion实现默认设计为在单个 GPU 上运行,但一种常用的实现(Automatic1111)可以选择以最少的附加配置启用多 GPU 支持。

运行Stable Diffusion算力越强,出图越快。显存越大,所设置图片的分辨率越高,所以一般的配置电脑还是带不动stable diffusion的,所以还是推荐选择赞奇云工作站,相比传统电脑无需一次性投入大量金钱,还可以随开随用,按需使用,高效助力设计。

赞奇云工作站不需要复杂的安装和部署,就能随时随地享受到行业领先配置的机器,高画质稳定输出作品,减少本地配置时间和成本投入,完全不同担心电脑卡顿、运行不动等问题。

 

 

相关文章:

进行Stable Diffusion的ai训练怎么选择显卡?

Stable Diffusion主要用于从文本生成图像,是人工智能技术在内容创作行业中不断发展的应用。要在本地计算机上运行Stable Diffusion,您需要一个强大的 GPU 来满足其繁重的要求。强大的 GPU 可以让您更快地生成图像,而具有大量 VRAM 的更强大的…...

【Linux】【驱动】第一个相对完整的驱动编写

【Linux】【驱动】第一个相对完整的驱动编写 续1.驱动部分的代码2 app 代码3 操作相关的代码 续 这个章节会讲述去直接控制一个GPIO,高低电平。 因为linux不允许直接去操作寄存器,所以在操作寄存器的时候就需要使用到函数:ioremap 和iounma…...

PHP 高德地图,获取经纬度

function addresstolatlag($address){$abc "xxx学校(xx路店)";$key"24fb21b484f89f212dc3f4fd016e2b4d";//没有key$address $abc;$regeo_url"https://restapi.amap.com/v3/geocode/geo";$address_location$regeo_url."?outputJSON&a…...

Node基础--Node基础使用体验

在上一篇文章中提到我们按照好Node.js之后,就可以在控制台看到其版本。那么下面我们一起来看看如何使用node执行js文件代码。 (1).在本地创建一个名称为hello.js的文件,输入内容如下所示: console.log("helloworld");var a 1;var b 2;cons…...

22 从0到1:API测试怎么做?常用API测试工具简介

API 测试的基本步骤 准备测试数据(可选,不一定所有 API 测试都需要这一步);通过 API 测试工具,发起对被测 API 的 request;验证返回结果的 response。 Postman操作步骤 发起 API 调用;添加结…...

Skywalking Kafka Tracing实现

背景 Skywalking默认场景下,Tracing对于消息队列的发送场景,无法将TraceId传递到下游消费者,但对于微服务场景下,是有大量消息队列的业务场景的,这显然无法满足业务预期。 解决方案 Skywalking的官方社区中&#xf…...

Perl 解析字符串为日期对象并获取多天前的日期字符串

Perl 解析字符串 perl语言中的库 Time::Piece可以将字符串解析为日期对象。 use Time::Piece; my ($y, $m, $d) 20230823 ~ /^([0-9]{4})([0-9]{2})([0-9]{2})\z/ or die;my $dt Time::Piece->strptime("$y$m$d","%Y%m%d");Perl获取多天之前的日期 …...

C语言问题 - 关于一维数组和二维数组用*a+i形式表达

问题 今天在编写程序时被一个语句搞懵了&#xff1a; #include<stdio.h>int main() {int *pa[6];int a[2][3] {{1,2,3},{4,5,6}};int sum 0;int i,j,k 0;for (i0; i<2; i){for (j0; j<3; j){*(pa k) *(a i) j;k;}}for (i0; i<k; i){printf("%d &q…...

验证码识别DLL ,滑块识别SDK,OCR图片转文字,机器视觉找物品

验证码识别DLL ,滑块识别SDK 你们用过哪些OCR提取文字&#xff0c;识图DLL&#xff0c;比如Opencv,Labview机器视觉找物品之类&#xff1f;...

【图论】最小生成树的应用

一.题目 P1550 [USACO08OCT] Watering Hole G - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 二.分析 1.我们是要使所有的农场都要有水 2.可以从起点引水&#xff0c;也可以互相引水。 3.费用要最小 这时我们可以想到最小生成树&#xff0c;建立一个虚拟节点即可。思路一…...

C++类模板的特化(三)

本文主要介绍类模板的特化、局部特化和缺省模板实参&#xff1b; 1.类模板的特化 类模板的特化&#xff08;Class Template Specialization&#xff09;是指为特定的模板参数提供自定义实现的过程。通过特化&#xff0c;我们可以针对某些特定的类型或条件提供不同的行为或实现…...

基于YOLOV8模型的课堂场景下人脸目标检测系统(PyTorch+Pyside6+YOLOv8模型)

摘要&#xff1a;基于YOLOV8模型的课堂场景下人脸目标检测系统可用于日常生活中检测与定位课堂场景下人脸&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的目标检测&#xff0c;另外本系统还支持图片、视频等格式的结果可视化与结果导出。本系统采用YOLOv8目标检…...

java八股文面试[数据结构]——Map有哪些子类

知识来源&#xff1a; 【23版面试突击】 用过哪些Map类&#xff0c;都有什么区别&#xff0c;HashMap是线程安全的吗&#xff1f;_哔哩哔哩_bilibili https://www.cnblogs.com/bubbleboom/p/12694013.html...

司徒理财:8.23今日黄金原油走势分析附操作策略

黄金走势分析&#xff1a;      黄金下跌遇阻&#xff0c;短线开启震荡调整走势&#xff0c;但跌势依旧没有改变&#xff0c;没有突破1906压力前&#xff0c;还是偏空走势&#xff0c;反弹继续干空。趋势行情&#xff0c;不要轻言翻转&#xff01;即便下跌结束&#xff0c;…...

使用动态IP是否会影响网络

今天我们要谈论的话题是关于动态IP和网络的关系。也许有些小伙伴对这个概念还比较陌生&#xff0c;但别担心&#xff0c;我会简单明了的给你理清楚。让我们一起看看动态IP到底能否影响到网络。 首先&#xff0c;我们先来搞明白什么是动态IP。在互联网世界中&#xff0c;每一个连…...

Linux学习笔记-常用指令说明

本文目录 一、Linux指令笔记 二、"授人以鱼,不如授人以渔" 一、Linux指令笔记 0、cd 命令是 change dir 的简写&#xff0c;它可以把终端当前所在的路径切换至目标路径。 1、mkdir 建立文件夹。是 make directory 的简写&#xff0c;它可以在文件系统中创建一个新的目…...

MyBatisPlus进阶版

1.映射 1.1自动映射 【1】表名和实体类名映射 -> 表名user 实体类名User 【2】字段名和实体类属性名映射 -> 字段名name 实体类属性名name 【3】字段名下划线命名方式和实体类属性小驼峰命名方式映射 -> 字段名 user_email 实体类属性名 userEmail MybatisPlus…...

安防视频云平台EasyNVR视频汇聚平台硬件无法进入服务器的问题处理方法

EasyNVR是基于RTSP/Onvif协议的视频接入、处理及分发的安防视频云平台&#xff0c;可提供的视频能力包括&#xff1a;设备接入、实时视频直播、录像、云存储、录像回放与检索、告警、级联等&#xff0c;平台可支持将接入的视频流进行全平台、全终端的分发&#xff0c;分发的视频…...

流媒体内容分发终极解决方案:当融合CDN与P2P视频交付结合

前言 随着互联网的发展&#xff0c;流媒体视频内容日趋增多&#xff0c;已经成为互联网信息的主要承载方式。相对传统的文字&#xff0c;图片等传统WEB应用&#xff0c;流媒体具有高数据量&#xff0c;高带宽、高访问量和高服务质量要求的特点&#xff0c;而现阶段互联网“尽力…...

根据源码,模拟实现 RabbitMQ - 内存数据管理(4)

目录 一、内存数据管理 1.1、需求分析 1.2、实现 MemoryDataCenter 类 1.2.1、ConcurrentHashMap 数据管理 1.2.2、封装交换机操作 1.2.3、封装队列操作 1.2.4、封装绑定操作 1.2.5、封装消息操作 1.2.6、封装未确认消息操作 1.2.7、封装恢复数据操作 一、内存数据管理…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...