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.mzph.cn/news/239307.shtml

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

相关文章

提示“由于找不到mfc140u.dll,无法继续执行代码”如何解决?

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是找不到某个动态链接库文件,比如mfc140u.dll。这个问题可能会导致某些应用程序无法正常运行或打开。 一、关于找不到mfc140u.dll文件造成会的问题 mfc140u.dll是Visual C中的一个…

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中,攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散,因此难以简单防范。 本实验联合使用有多种AWS服务:Cloudfront、 Lambdaedge…

VPN理论入门及GRE、L2TP、IPsec(HCIP)

一、VPN概述 IPsec-VPN: 1、应用范围:用于分公司和总部之间。 2、作用:机密性、证书(身份认证) VPN概述 VPN概述:VPN(Virtual Private Network)是指依靠Internet服务提供商ISP&a…

一文读懂Java中的设计模式——代理模式,以翻译场景举例,特别通俗易懂!

代理模式概念 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。目的:为其他对象提供一种代…

01-基于粤嵌GEC6818实现屏幕的显示固定颜色进行自动切换

基于GEC6818实现屏幕颜色的切换 本文使用开发板GEC6818,实现屏幕显示特定颜色并且进行自动切换的功能。 文章目录 基于GEC6818实现屏幕颜色的切换一、 初始化开发板--(开发板是新的则可以省略很多步骤)1.1 **删除文件和文件夹**1.2 **查看磁盘…

【送书福利-第三十一期】《区块链安全理论与实践(安全技术经典译丛)》

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。 🎈 本文专栏:本文…

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好,我是潇潇雨声。我发现在使用 GPT 时,尽管它能够生成一些小红书文案和日志,但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法,那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…

Python---搭建Python自带静态Web服务器

1. 静态Web服务器是什么? 可以为发出请求的浏览器提供静态文档的程序。 平时我们浏览百度新闻数据的时候,每天的新闻数据都会发生变化,那访问的这个页面就是动态的,而我们开发的是静态的,页面的数据不会发生变化。 …

Floyd求最短路(Floyd算法)

参考:约会怎么走到目的地最近呢?一文讲清所有最短路算法问题-CSDN博客 有4个城市8条路,公路上的数字表示这条公路的长短,并且路是单向的,现在要求我们求出任意两个城市之间的最短路程,也就是求任意两个点之…

蓝桥杯2019年10月青少组Python程序设计省赛真题

1:有n个人围成一个圈,按顺序排好号然后从第一个人开始报数(从1到3报数),报到3的人退出圈子,然后继续从1到3报数,直到最后留下一个人游戏结束,问最后留下的是原来第几号输人描迹:输人一个正整数n 输出描迹:输出最后留下的是原来的第几号 [样例输人] [样例输出] 2: 3、 […

ACM32G1x3有那些优势?适用于那些产品上?

ACM32G1x3优势 • 320KB 程序Flash64KB SRAM,跑RTOS程序开发更加方便 • 从外挂Flash通过DMA搬运图片数据到PSRAM,无需打断程序运行 • 120MHz M33内核,处理性能佳 • 集成2路CAN接口,适合工控等需要CAN接口的场景 • QS…

[JS设计模式]Flyweight Pattern

Flyweight pattern 享元模式是一种结构化的设计模式,主要用于产生大量类似对象而内存又有限的场景。享元模式能节省内存。 假设一个国际化特大城市SZ;它有5个区,分别为nanshan、futian、luohu、baoan、longgang;每个区都有多个图…

代码随想录刷题题Day20

刷题的第二十天,希望自己能够不断坚持下去,迎来蜕变。😀😀😀 刷题语言:C Day20 任务 ● 理论基础 ● 77. 组合 1 回溯算法理论基础 1.1 回溯法 回溯法是一种搜索的方式,是递归的副产品&#x…

海外媒体发稿:雅虎全球发稿推广脱颖而出的10种方法-华媒舍

雅虎全球发稿是一项重要的推广手段,能够帮助企业和个人提升品牌知名度和曝光率。在众多的发稿中脱颖而出并不容易。本文将为您介绍10种让您的雅虎全球发稿在众多文章中脱颖而出的方法,帮助您取得更好的效果。 1. 深入研究目标受众 在撰写雅虎全球发稿前…

Python to_numeric函数参数解读与最佳实践!

更多资料获取 📚 个人网站:ipengtao.com Python中的to_numeric函数是pandas库提供的一个强大而灵活的工具,用于将数据转换为数字类型。本文将深入探讨to_numeric函数的各种参数和用法,通过丰富的示例代码帮助大家更全面地理解和运…

基于thinkphp+vue的大学生校园生活服务平台sb00r

大学生一体化服务平台可以提高大学生综合服务信息管理问题的解决效率,优化大学生综合服务信息处理流程,保证大学生综合服务信息数据的安全,它是一个非常可靠,非常安全的应用程序。 运行环境:phpstudy/wamp/xammp等 开发语言&#…

CAS机制

Java中提供了很多原子操作类来保证共享变量操作的原子性。这些原子操作的底层原理都是使用了CAS机制。在使用一门技术之前,了解这个技术的底层原理是非常重要的,所以本篇文章就先来讲讲什么是CAS机制,CAS机制存在的一些问题以及在Java中怎么使…

鸿蒙应用开发初体验 HelloWorld

9 月 25 日,华为常务董事、终端 BG CEO、智能汽车解决方案 BU 董事长余承东华为秋季全场景新品发布会上介绍了鸿蒙系统的最新进展:HarmonyOS 4 发布后,短短一个多月升级用户已经超过 6000 万,成为史上升级速度最快的 HarmonyOS 版…

WebGL开发三维解剖学应用

开发基于 WebGL 的三维解剖学应用通常涉及以下步骤。这些步骤包括创建三维模型、整合交互性、优化性能等,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.三维模型创建: 首先&#xff0…

智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白冠鸡算法4.实验参数设定5.算法结果6.参考文…