Stable-diffusion-webui本地部署和简要介绍

  Stable Diffusion 是一款基于人工智能技术开发的绘画软件,它可以帮助艺术家和设计师快速创建高品质的数字艺术作品。是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,同时也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的翻译。 

  Stable Diffusion 项目本地化的部署,是纯代码界面,而Stable Diffusion WebUI,是基于 Stable Diffusion 项目的可视化操作项目。这里我们也是部署Stable Diffusion WebUI。

本地部署StableDiffusion UI

前置条件

  在部署StableDiffusion前,如果instance是GPU的instance,需要安装Nividia的driver,如果对安装dirver等不熟悉,可查看我之前的博客“AWS instance上部署大模型”

  按前置条件准备好instance环境后,就可以按照StableDiffusion官网的步骤快速安装StableDiffusion UI了。命令如下图所示,因为我自己的instance是ubuntu,属于Debian-based,所以,执行第一行的命令,安装相关的依赖。

# Debian-based:
sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
# Red Hat-based:
sudo dnf install wget git python3 gperftools-libs libglvnd-glx 
# openSUSE-based:
sudo zypper install wget git python3 libtcmalloc4 libglvnd
# Arch-based:
sudo pacman -S wget git python3

 一键安装stable-diffusion-webui

 安装了基础依赖包后,下载webui.sh文件,执行该文件,即可一键完成stable-diffusion-webui的安装。具体命令如下图所示:

#下载shell脚本
wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh#给文件分配执行权限
chmod -x webui.sh#执行shell文件
./webui.sh

 执行shell文件后,可以看到整个shell文件大致完成了三个任务。

第一:创建python虚拟环境并激活

第二:通过python执行launch.py文件,这也是stable-diffusion-webui的入口文件。

第三:执行launch.py文件时,会下载stable-diffusion的模型参数文件,即后缀是.safetensors的文件,最后启动整个webui应用。stable-diffusion-webui的前端是用gradio写的,默认启动在7860端口。

  如果是在本机上运行,执行完上面的命令,就可以在浏览器中输入“http://127.0.0.1:7860”访问应用了。我的实验是在aws的instance上进行,所以需要在security group的inbound 中开放7860端口。另外,执行了下面的命令,将aws上instance的端口与自己的本地电脑端口做了映射,如果不做映射,无法在外面本地电脑上直接访问127.0.0.1 或者localhost等地址。当然,还有第二个办法,就是修改gradio的默认地址,将127.0.0.1修改成0.0.0.0也可以。

# -L 7860:localhost:7860: 设置本地端口转发,将本地端口 7860 转发到远程主机的本地回环地址(localhost)的端口 7860。
# 这种端口转发允许你在本地访问远程主机上的服务ssh -i /Users/taoli/Downloads/taoli-tokyo.pem -N -f -L 7860:localhost:7860 ubuntu@aws public instance ip

   在本地浏览器上访问到的stable-diffusion-webui的界面如下图所示,这里的checkpoint list就是stablediffusion模型列表,在安装的时候默认下载了v1-5这个基础模型。

   stable-diffusion-webui代码目录如下图所示,extensions下面放下载的所有插件,models下面放下载的所有模型,models下面又分了Stable-diffusion,Lora,VAE等目录,因为除了主模型外,还有很多用于特定作用的模型,例如Lora就是用于模型微调的。安装时下载的主模型存放在Stable-diffusion目录下面。

一些主要的模型以及其作用汇总如下图所示:

Stable-Diffusion-WebUI提供的主要功能

txt2image功能

顾名思义,通过文本生成图片,在生成图片的时候分prompt和negative prompt。prompt很容易理解,期望生成怎样的图片,在prompt中描述即可。negative prompt的含义是:不期望图片中生成的东西,例如写black hair在negative prompt中,理想情况下生成的图片中,人物都不是黑头发。

 除了prompt,还有Sampling method,工具中提供了很多Sampling method。我们知道 sd webui 生成图像,大致会经过以下过程:
1、为了生成图像, Stable Diffusion 会在潜在空间中生成一个完全随机的图像
2、噪声预测器会估算图像的噪声
3、噪声预测器从图像中减去预测的噪声
4、这个过程反复重复 N 次以后,会得到一个干净准确的图像
这个去噪的过程,就被称为采样。采样中使用的方法被称为 Sampling method (采样方法或者是采样器)。总结而言不同采样器的特点大致如下:

  • 如果想快速生成质量不错的图片,建议选择 DPM++ 2M Karras (20 -30步) 、UNIPC (15-25步)
  • 如果想要高质量的图,不关心重现性,建议选择 DPM++ SDE Karras (10-15步 较慢) ,DDIM(10-15步 较快)
  • 如果想要简单的图,建议选择 Euler, Heun(可以减少步骤以节省时间)
  • 如果想要稳定可重现的图像,请避免选择任何祖先采样器(名字里面带a或SDE)
  • 相反,如果想要每次生成不一样的图像,可以选择不收敛的祖先采样器(名字里面带a或SDE)

Hires.fix是Stable Diffusion中文网提供的一个功能,用于高清修复生成的图片。 通过应用Hires.fix,可以将图像放大并提高分辨率,以获得更清晰的结果。 这是一个非常实用的功能,可以提高图片的质量并满足您的需求。 无论是在打印还是在网络上展示,修复后的高清图片都能够给观看者带来更好的视觉体验。

Image2image功能

Image2Image的功能,顾名思义就是通过图片生成另外的图片,这里除了生成图片外,还有Inpaint功能,即如果只想修改原图中的某个部分,则使用Inpaint功能。如下图所示:将原图的人物头像换成了根据prompt中新生成的头像。

在Inpaint过程中,有两个关键参数CFG scale和Masked Content,需要理解其含义。

CFG scale:与文生图中的CFG类似,表示生成的图片要follow prompt的程度
1:基本忽略prompt
3:带些创造性
7:创造性与prompt之间的一个较好的平衡
15:紧跟prompt提示走
30:完全follow prompt
Masked content:控制覆盖的区域如何初始化
Fill:使用原图的高模糊图作为初始化
Original:无修改
Latent noise:先使用fill的模式对masked区域做初始化,然后再加入随机噪点到latent 空间
Latent nothing:与latent noise类似,但是不加入随机噪点

Extras功能

附加功能的主要作用就是:把一张小图、模糊的图、有噪点的图,放大、清晰化处理为更大的图。如下图所示,生成的图片比原始图片更大了。

  除了上面的三个主功能外,在web ui上还可以安装各种插件,在Extension界面上进行安装。如下图所示:可以选择需要安装的插件,点击install后,就会下载插件,并存放在web-ui的extensions目录下。如果要让插件生效,需要重启应用(即执行python3 launch.py命令即可)。安装某些插件后,webui上会出现新的tab页,例如,EasyPhoto就是安装对应插件后才出现的新tab。

  除了上面介绍的功能外,web-ui界面上还有Settings tab,主要用于设置各类参数。还有Checkpoint merger功能,主要用于合并多个模型成一个模型,并设置不同模型的权重。

  以上就是对Stable-Diffusion-WebUI的主要功能的简要介绍,对于某些功能,后面还会在专门的博客中做详细介绍。

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

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

相关文章

JBoss JMXInvokerServlet 反序列化漏洞 CVE-2017-12149

JBoss JMXInvokerServlet 反序列化漏洞 CVE-2017-12149 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建漏洞利用 修复建议总结 漏洞名称 漏洞描述 2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的Http…

Peter算法小课堂—贪心与二分

太戈编程655题 题目描述: 有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元,只能买价格不超过其现金额的车子。你是大卖场总经理,希望将车和买家尽量多地进行一对一配对…

盘点2023年度安防监控行业发展:安防监控技术取得哪些进展?

随着科技的不断发展,安防监控行业也在迅速进步。在今年一年中,安防监控行业的发展也取得了长足的进步。随着2023年渐近尾声,本文将对2023年安防监控行业的发展进行一个盘点和简单的剖析。 1)高清监控设备的发展越来越受到重视 随…

Day16 二叉树的递归遍历,迭代遍历,层序遍历

递归遍历 每次写递归,都要考虑三要素: 1、确定递归函数的参数和返回值:哪些参数是递归的过程中要处理的,那么就在递归函数里加入这个参数,并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。 2、确定…

计算机软考有哪些科目?都考什么内容?

一、软考初级科目 1、程序员 考核内容:计算机相关基础知识;基本数据结构和常用算法;C程序设计语言以及C、JAVA中的一种程序设计语言。 岗位描述:从事软件开发和调试工作的初级技术人员。 2、网络管理员 考核内容:…

接口响应过慢怎样排查?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 服务变慢服务器全局慢包括cpu 慢,内存慢,io/磁盘慢,io/网络慢。 服务器局部慢指得是发现某一个或者多个服务很慢。 1.全局查询思…

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式,但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件,今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器,其实浏览器也可以用来打开PDF文件。 只需…

分享5款为你生活带来便捷的小工具

​ 生活需要一些小巧而贴心的工具,它们能够在细节处为我们带来便捷。这五款工具简洁而实用,看看它们是否适合融入你的生活。 1.图片压缩——TinyPNG ​ TinyPNG是一款图片压缩工具,可以智能地减少WebP、PNG和JPEG图片的文件大小。TinyPNG通…

代码随想录算法训练营第59天| 503.下一个更大元素II 42. 接雨水

java代码编写 503.下一个更大元素II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个…

怎么为pdf文件添加水印?

怎么为pdf文件添加水印?PDF是一种很好用的文件格式,这种格式能够很有效的保护我们的文件,但有时可能还会被破解,这种时候在PDF上添加水印就是比较好的方法。 综上所述,PDF是保密性很强的文件,但添加水印能够…

数字技术:引领未来的创新驱动力

数字技术,作为当代最具创新性和影响力的技术领域之一,已经在全球范围内引起了广泛的关注和研究。当前,数字技术正以惊人的速度改变着我们的世界,从日常生活到商业领域,无一不受到其影响。数字技术的发展不仅改变了人们…

Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)

0. 引言 咱们上节讲解了nginx的负载均衡配置,但是还有很多其他的转发情况,包括不同路径转发至不同的业务服务,通配符识别路径转发等。 今天一起来学习nginx的转发配置 1. location模块的匹配模式 首先我们要了解nginx进行转发代理的核心在…