stable diffusion的从安装到使用

stable-diffusion,一个免费开源的文生图软件,文章主要讲怎么从源码开始安装,以及使用的方式

git地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui

本人电脑环境win10,软件pycharm,需要提前安装好python环境,推荐使用Anaconda3。公共号发送 “ 软件安装包 ”可以获得相关文件下载

安装

可以直接去github上下载压缩包,或者使用pycharm直接打开,这里我用的是pycharm

在这里插入图片描述

进入后pycharm后会自动创建环境,建议在当前项目下创建,然后等待依赖下载完成即可

除了下载源码外,也可以直接下载官网上搞好的安装包,

https://github.com/AUTOMATIC1111/stable-diffusion-webui/releases/tag/v1.0.0-pre

解压后首先双击执行update.bat,然后执行run.bat,等待下载完成即可

在这里插入图片描述

运行

所有依赖完成后,在terminal面板下执行webui-user.bat即可运行,当然后面不进入pycharm,直接在黑窗口执行命令也是可以的,执行完成后进入网页http://127.0.0.1:7860/就可以看到软件界面了

图画的生成需要对应模型,相关模型可以去https://www.liblib.art/网站上下载,下载下来后放入models/Stable-diffusion文件夹即可

在这里插入图片描述

然后页面点击刷新按钮,就可以选择相关模型

如果遇到异常可以根据下面异常内容进行解决

常见异常

1、AssertionError: Torch not compiled with CUDA enabled

CUDA和Torch版本不兼容,可以选择修改CUDA的或者Torch的版本

使用命令nvcc -V,查看CUDA版本

进入Terminal板块,卸载PyTorch

pip uninstall torch

进入https://pytorch.org/get-started/locally/官网,下载所需要的版本,这里注意需要先查询下当前电脑CUDA所对应的版本

在这里插入图片描述

如果是没有CUDA,则安装CUDA。

2、AssertionError: Couldn’t find Stable Diffusion in any of: [‘E:\pythonWordspace\open\stable-diffusion-webui\repositories/stable-diffusion-stability-ai’, ‘.’, ‘E:\pythonWordspace\open’]

没有repositories/stable-diffusion-stability-ai文件夹,启动webui-user.bat命令自动就会创建,这个错一般是在第一次直接启动webui.py时报的错

3、Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check

这个错误信息是由于Torch无法使用GPU而导致的,修改webui-user.bat文件中参数即可

set COMMANDLINE_ARGS=--lowvram --precision full --no-half --skip-torch-cuda-test

4、torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacity of 6.00 GiB of which 0 bytes is free. Of the allocated memory 5.16 GiB is allocated by PyTorch, and 148.39 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)

这里主要是CUDA 超内存,我并没有解决到该BUG,可能因为本身电脑GPU比较小,这里只提供几种解决方案

1、控制台执行set PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True 【我当前环境win所以用set命令,Linux下用export】

2、修改batch_size大小

3、修改高级系统设置,性能中的虚拟内存大小

4、增加清除代码

import torch, gcgc.collect()
torch.cuda.empty_cache()

5、Can’t load tokenizer for ‘openai/clip-vit-large-patch14’. If you were trying to load it from ‘https://huggingface.co/models’, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘openai/clip-vit-large-patch14’ is the correc

运行时它需要访问huggingface.co去下载一些模型需要的文件

界面以及字段说明

在这里插入图片描述

**Prompt,**正向提示词,用于描述图像中应该包含的元素或内容的指令

**Negative prompt,**用于描述在生成图像时应该避免或排除的元素、内容或特征

**Sampling method,**用于生成图像时所采用的抽样方法,决定了模型如何根据输入的文本描述来逐步生成图像

**Sampling steps, **采样步数,指模型从初始的随机噪声状态逐渐优化到最终生成清晰图像所需的迭代次数,每次迭代进行细微的调整和优化,生成更加清晰和逼真的图像,耗时也会增长

Hires.fix,用于提高成图质量。原理是以较低分辨率呈现图像,然后将其放大,最后在高分辨率下添加细节。这样,即使是在底模通常使用512512或768768的图片进行训练的情况下,也能显著提高成图质量。在显存足够的情况下,推荐尽可能开启此功能。

需要注意的是,Hires.fix会消耗大量的时间。需要根据情况选择。同时,Denoising strength(重绘强度)也需要合理设置,通常在0.30.5的范围内比较安全,如果想要赋予AI更多的发挥空间,可以设置为0.50.7。

关于Upscaler(放大算法)一般照片生成使用推荐:ESRGAN_4x, R-ESRGAN 4x+, SwinIR_4x 算法。
针对二次元相关图片推荐: R-ESRGAN 4x+ Anime6B

**CFG Scale,**用于控制文本提示对生成图像的影响程度,它决定了生成的图像与给定的文本提示之间的相关性。值可以从0到30进行调整。数值越大,生成的图像与文本提示的相关性越高,但可能会失真。相反,数值越小,相关性则越低,图像可能越偏离提示或输入图像,但质量可能更好。在实际应用中,将CFG Scale设置在7到11之间通常可以获得最佳的低噪效果。

然而,当CFG Scale的数值过高(例如高于20)时,生成效果可能会出现反向变化,导致图像质量变差,可能出现粗犷的线条或过度锐化的图像。因此,在使用CFG Scale时,需要根据实际需求进行适当调整,以获得满意的图像生成效果。

**Seed,**用于控制生成图片随机性的重要工具。具体来说,Seed参数决定了生成图片的外观,不同的Seed值会产生不同的随机性,从而导致生成的图片呈现出不同的特征和风格。通过调整Seed的数值,我们可以获得各种不同的效果和样式。

同时,Seed参数还确保了结果的可重现性。当使用相同的Seed来运行程序时,生成的图片将是完全一样的。这对于实验、复现和比较不同模型的性能非常重要。

Prompt提示词如何写

Prompt提示词简单点讲就是模型的指令,stable-diffusion根据指令生成图片

正向提示词和反向提示词,提示词要用英文书写,词之间用逗号隔开

提示词分多种不同类型【主要是一些例子,用的时候最好翻译成英文,可以用百度翻译或者有道词典】

内容提示词

人物及主体特征:例如服饰穿搭,发型发色,面部表情
场景特征:例如室内、室外
环境光照:例如白天黑夜,时段
画幅视角:例如距离,人物比例

画质提示词

画质以及具体分辨率:例如8k,unreal engine rendered
画风:例如插画风,二次元,写实

权重与负面提示词

括号加数字:(提示词:1.5)表示该提示词权重增强1.5倍
套括号:((提示词))每个圆括号*1.1倍,{{提示词}}大括号权重*1.4,[[]]方括号*0.9
混合:描述提示词1 / 描述提示词2 表示混合两种描述的词
迁移:[ 描述提示词1 / 描述提示词2 ] 先执行1,然后再执行2

常用参数

采样迭代步数默认20
采样方法:Euler a,Euler(适合插画风格),DPM 2M,2M Karras(速度快),SDE Karras(细节丰富)

编写提示词方式

1、用翻译软件翻译

2、使用些在线提示词工具,http://www.atoolbox.net/Tool.php?Id=1101

3、复制别人写好的提示词,然后修改

行2


常用参数

采样迭代步数默认20
采样方法:Euler a,Euler(适合插画风格),DPM 2M,2M Karras(速度快),SDE Karras(细节丰富)


编写提示词方式1、用翻译软件翻译2、使用些在线提示词工具,http://www.atoolbox.net/Tool.php?Id=11013、复制别人写好的提示词,然后修改例如https://www.liblib.art/中作品灵感模块可以用于选择

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

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

相关文章

酷开系统表现强劲,酷开科技视频化运营为大内容布局提供更好交互

最近几年,电视屏幕尺寸是越做越大,越做越薄,在追求电视“颜值”的同时,电视内置系统也成了人们选购电视的很重要的原因。酷开科技深耕电视大屏领域多年,酷开系统表现强劲,好评如潮。 有人一度认为多媒体的…

spring Cache的基本使用

一、spring Cache基本介绍(其实是通过代理对象来进行操作的) Spring Cache 是 Spring 框架提供的一个缓存抽象,它能够轻松地集成到 Spring 应用程序中,为方法调用的结果提供缓存支持,从而提高应用程序的性能和响应速度…

关于Ansible模块 ④

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后,继续学习ansible常用模块之…

REST API实战演练之JavaScript使用Rest API

咱们前面讲了一下如何创建REST API 假期别闲着:REST API实战演练之创建Rest API-CSDN博客 又讲了java客户端如何使用REST API 假期别闲着:REST API实战演练之客户端使用Rest API-CSDN博客 接下来咱们看看JavaScript怎么使用REST API。 一、新建一个…

软件杯 深度学习人体跌倒检测 -yolo 机器视觉 opencv python

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的人体跌倒检测算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满…

(源码+部署+讲解)基于Spring Boot + Vue的车位租赁系统设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 🌟…

Angular 使用DomSanitizer

跨站脚本Cross-site scripting 简称XSS,是代码注入的一种,是一种网站应用程序的安全漏洞攻击。它允许恶意用户将代码注入到网页上,其他用户在使用网页时就会收到影响,这类攻击通常包含了HTML和用户端脚本语言(JS&…

PaddleVideo:PP-TSM 视频分类

本文记录:使用Paddle框架训练TSM(Temporal Shift Module) 前提条件:已经安装Paddle和PadleVideo,具体可参考前一篇文章。 1-数据准备: 以UCF101为例:内含13320 个短视频,视频类别&…

ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?

前言 ASP.NET Core 内置的标识(identity)框架,采用的是 RBAC(role-based access control,基于角色的访问控制)策略,是一个用于管理用户身份验证、授权和安全性的框架。 它提供了一套工具和库&…

AI实时换天解决方案:重塑汽车与旅行拍摄新视界

在汽车拍摄与旅行摄影领域,天空作为画面中的重要元素,往往决定着整体视觉效果的成败。美摄科技作为业界领先的AI视觉技术提供商,近日推出了全新的AI实时换天解决方案,为用户带来了前所未有的创意空间与效率提升。 传统的换天技术…

hive-3.1.2分布式搭建与hive的三种交互方式

hive-3.1.2分布式搭建: 一、上传解压配置环境变量 在官网或者镜像站下载驱动包 华为云镜像站地址: hive:Index of apache-local/hive/hive-3.1.2 mysql驱动包:Index of mysql-local/Downloads/Connector-J # 1、解压 tar -zx…

03 Php学习:echo 、 print 、EOF

echo 和 print 在 PHP 中有两个基本的输出方式: echo 和 print。 echo 和 print 区别: echo - 可以输出一个或多个字符串print - 只允许输出一个字符串,返回值总为 1 注意:echo 输出的速度比 print 快, echo 没有返回值&…

【已完成】把Win10右键改回Win7的模样

win11右键设置成原来模样的方法如下: 1、winr打开运行窗口,输入regedit,按下回车键确认即可打开注册表。 2、在路径中输入:HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID,或者是依次定位点开到CLSID。 3、右键点击CLSID&…

Nginx反向代理与Tomcat实现ssm项目前后端分离部署

Nginx nginx是一款http和支持反向代理的web服务器,以其优越的性能被广泛使用。以下是百度百科的介绍。 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.…

基础入门-操作系统名词文件下载反弹shell防火墙绕过

目录 基础入门-操作系统&名词&文件下载&反弹shell&防火墙绕过 知识点 参考: 演示案例 基础案例 1:操作系统-用途&命令&权限&用户&防火墙 实用案例 1:文件上传下载-->解决无图形化&解决数据传输 实用案例 …

Redis中的集群(二)

节点 集群数据结构 redisClient结构和clusterLink结构的相同和不同之处 redisClient结构和clusterLink结构都有自己的套接字描述符和输入、输出缓冲区,这两个结构的区别在于,redisClient结构中的套接字和缓冲区是用于连接客户端的,而clust…

Visual Studio Code 终端为管理员权限

第一部 1、 Visual Studio Code 快捷方式启动选项加上管理员启动 第二步 管理员方式运行 powershell Windows 10的任务栏自带了搜索。或者开始菜单选搜索只需在搜索框中输入powershell。 在出来的搜索结果中右击Windows PowerShell,然后选择以管理员方式运行。 执…

网络安全:重要性与应对措施

1. 网络安全的重要性 随着互联网的普及和信息技术的快速发展,网络安全问题已经变得日益突出。网络攻击者可以通过各种手段窃取个人信息、破坏系统、传播病毒等,给个人和社会带来巨大的损失。因此,网络安全已经成为信息化时代的重要问题之一。…

numpy,matplotilib学习(菜鸟教程)

所有内容均来自于: NumPy 教程 | 菜鸟教程 Matplotlib 教程 | 菜鸟教程 numpy模块 numpy.nditer NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式。 for x in np.nditer(a, orderF):Fortran order,即是列序优先&#x…

UML2.0在系统设计中的实际使用情况

目前我在系统分析设计过程中主要使用UML2.0来表达,使用StarUML软件做实际设计,操作起来基本很顺手,下面整理一下自己的使用情况。 1. UML2.0之十三张图 UML2.0一共13张图,可以分为两大类:结构图-静态图,行…