用通俗易懂的方式讲解:Stable Diffusion WebUI 从零基础到入门

本文主要介绍 Stable Diffusion WebUI 的实际操作方法,涵盖prompt推导、lora模型、vae模型和controlNet应用等内容,并给出了可操作的文生图、图生图实战示例。适合对Stable Diffusion感兴趣,但又对Stable Diffusion WebUI使用感到困惑的同学。

前面分享了两篇文章:十分钟读懂 Stable Diffusion 运行原理 和 一文教会你学会 AI 绘画利器 Stable Diffusion,喜欢的可以阅读一下

本文希望能够降低大家对 Stable Diffusion WebUI 的学习成本,更快速的体验到AIGC图像生成的魅力。喜欢记得收藏、关注、点赞。

文章目录

    • 用通俗易懂的方式讲解系列
    • 引言
        • 安装
        • 模型
    • 操作流程
        • prompt推导
        • lora模型
        • ControlNet
        • 图生图示例
        • 文生图示例
        • 示例1
        • 示例2
        • 提示词解析
        • VAE
        • 模型的安装
        • 效果
    • 结束语

用通俗易懂的方式讲解系列

  • 用通俗易懂的方式讲解:不用再找了,这是大模型最全的面试题库
  • 用通俗易懂的方式讲解:这是我见过的最适合大模型小白的 PyTorch 中文课程
  • 用通俗易懂的方式讲解:一文讲透最热的大模型开发框架 LangChain
  • 用通俗易懂的方式讲解:基于 LangChain + ChatGLM搭建知识本地库
  • 用通俗易懂的方式讲解:基于大模型的知识问答系统全面总结
  • 用通俗易懂的方式讲解:ChatGLM3 基础模型多轮对话微调)
  • 用通俗易懂的方式讲解:最火的大模型训练框架 DeepSpeed 详解来了
  • 用通俗易懂的方式讲解:这应该是最全的大模型训练与微调关键技术梳理
  • 用通俗易懂的方式讲解:Stable Diffusion 微调及推理优化实践指南
  • 用通俗易懂的方式讲解:大模型训练过程概述
  • 用通俗易懂的方式讲解:专补大模型短板的RAG
  • 用通俗易懂的方式讲解:大模型LLM Agent在 Text2SQL 应用上的实践
  • 用通俗易懂的方式讲解:大模型 LLM RAG在 Text2SQL 上的应用实践
  • 用通俗易懂的方式讲解:大模型微调方法总结
  • 用通俗易懂的方式讲解:涨知识了,这篇大模型 LangChain 框架与使用示例太棒了

引言

Stable Diffusion (简称sd)是一个深度学习的文本到图像生成模型, Stable Diffusion WebUI是对Stable Diffusion模型进行封装,提供可操作界面的工具软件。Stable Diffusion WebUI上加载的模型,是在Stable Diffusion 基座模型基础上,为了获得在某种风格上的更高质量的生成效果,而进行再次训练后产生的模型。目前 Stable Diffusion 1.5版本是社区内最盛行的基座模型。

安装

sd web-ui的安装请参考:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs

sd web-ui使用了gradio组件包,gradio在配置share=True时,会创建frpc隧道并链接到aws,详情可参考(https://www.gradio.app/guides/sharing-your-app),因此在sd web-ui应用启动时,请根据自身安全生产或隐私保护要求,考虑是否禁止开启share=True配置,或删除frpc客户端。

模型

https://civitai.com/是一个开源的sd模型社区,提供了丰富的模型免费下载和使用。在此简述一下模型的分类,有助于提高对sd web-ui的使用。sd模型训练方法主要分为四类:Dreambooth, LoRA,Textual Inversion,Hypernetwork。

  1. Dreambooth:在sd基座模型的基础上,通过 Dreambooth 训练方式得到的大模型, 是一个完整的新模型,训练速度较慢,生成模型文件较大,一般几个G,模型文件格式为 safetensors 或 ckpt。特点是出图效果好,在某些艺术风格上有明显的提升。如下图所示,sd web-ui中该类模型可以在这里进行选择。

    图片

  2. LoRA: 一种轻量化的模型微调训练方法,在原有大模型的基础上对该模型进行微调,用于输出固定特征的人或事物。特点是对于特定风格的图产出效果好,训练速度快,模型文件小,一般几十到一百多 MB,不能独立使用,需要搭配原有大模型一起使用。sd web-ui提供了lora模型插件,以及使用lora模型的方式,具体操作可见本文的 “操作流程->lora模型” 。

  3. Textual Inversion:一种使用文本提示和对应的风格图片来微调训练模型的方法,文本提示一般为特殊的单词,模型训练完成后,可以在text prompts中使用这些单词,来实现对模型生成图片风格和细节的控制,需要搭配原有的大模型一起使用。

  4. Hypernetwork:与LoRA类似的微调训练大模型的方法,需要搭配原有的大模型一起使用。

操作流程

prompt推导
  1. 在sd中上传一张图片

  2. 反向推导关键词,有两个模型CLIP和DeepBooru,以图1为例:

图片

图1: iphone 14 pro max 原相机拍摄的高清照片

使用CLIP进行prompt反推的结果:

a baby is laying on a blanket surrounded by balloons and balls in the air and a cake with a name on it, Bian Jingzhao, phuoc quan, a colorized photo, dada

使用DeepBooru进行prompt反推的结果:

1boy, ball, balloon, bubble_blowing, chewing_gum, hat, holding_balloon, male_focus, military, military_uniform, open_mouth, orb, solo, uniform, yin_yang

CLIP反推结果是一个句子,DeepBooru的反推结果是关键词。

可以修改正向prompt,也可以添加反向prompt,反向prompt用于限制模型在生产图片时不添加反向prompt中出现的元素。反向prompt不是必须的,可以不填。

lora模型

lora模型对大模型生成图的风格和质量有很强的干预或增强作用,但是lora模型需要与配套的大模型一起使用,不能单独使用。在sd-webui中使用lora模型的方式主要有两种:

  • 方法一

安装additional-network插件,插件的github地址:https://github.com/kohya-ss/sd-webui-additional-networks,在sd-webui上可以在扩展中直接下载安装。该插件仅支持使用sd-script脚本训练的lora模型,目前https://civitai.com/上绝大多数的开源lora模型都是基于此脚本训练的,因此该插件支持绝大多数的lora模型。下载的lora模型需要放到

*/stable-diffusion-webui/extensions/sd-webui-additional-networks/models/lora

路径下, 新增模型需要重启sd-webui,插件和模型正确加载后,会在webui操作界面的左下角中出现“可选附加网络(LoRA插件)” 。在生成图片时触发lora,需要在插件中选中lora模型,并在正向提示词中加入Trigger Words。下图中选中的lora模型为blinndbox_v1_mix, trigger words为full body,chibi, 每个lora模型有自己独有的Trigger Words,在模型的简介中会注明。

图片

如果插件在点击安装后没有反应,或者提示因为Flag引起的错误,是因为webui启动时允许扩展插件的设置配置为禁止,需要在webui启动时添加启动参数:–enable-insecure-extension-access

./webui.sh --xformers --enable-insecure-extension-access
  • 方法二

不使用additional-network插件,使用sd-webui默认支持的lora模型使用方式,需要将lora模型放到

*/stable-diffusion-webui/models/Lora

目录下,重新启动sd-webui即可自动载入模型。

在正向提示词中加入lora模型启用语句,生产图片时即可触发lora模型:

图片

web-ui提供了自动填充lora提示语句的功能,点击如图所示的图标,可以打开lora模型列表,然后点击模型区域,语句会自动填充到正向提示词区域:

图片

以上两种方式,选用其中任意一种均能使lora模型在内容生产中生效,两种方式同时使用也不会引起问题。

ControlNet

controlNet通过支持额外的输入条件,试图控制预训练的大模型,如Stable Diffusion。单纯的文本控制方式令内容的生产就像碰运气抽卡,结果无法控制且不容易达到预期效果,controlNet的出现使stable diffusion大模型的内容生成进入可控时期,让创作变得可控使得AIGC在工业应用上更进一步。

  • 安装controlNet

在sd-webui上,点击扩展,进入插件安装页面,找到controlNet插件,点击install即可完成插件安装。

图片

下载开源的controlnet模型

下载地址:https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

一个模型由两个文件组成: .pth 和 .yaml,需要同时下载。文件名中"V11"后面的字母,p:表示可以使用,e:表示还在试验中,u:表示未完成。下载好的模型放在如下目录,重启sd-webui 即可完成controlnet模型加载。

*\stable-diffusion-webui\extensions\sd-webui-controlnet\models
图生图示例
  • 模型选择

1、stable diffusion大模型选用:revAnimated_v11 (https://civitai.com/models/7371?modelVersionId=46846)

2、lora模型选用blind_box_v1_mix (https://civitai.com/models/25995?modelVersionId=32988)

3、采样方法Euler a

4、源图片使用 图1,使用DeepBooru模型进行正向prompts生成, 添加revAnimated_v11的特定prompts, 删除一些正向prompts,添加反向prompts,最后使用的prompt如下所示。

正向:

(masterpiece),(best quality), (full body:1.2), (beautiful detailed eyes), 1boy, hat, male, open_mouth, smile, cloud, solo, full body, chibi, military_uniform, lora:blindbox\_v1\_mix:1

反向:

(low quality:1.3), (worst quality:1.3)

生成的图片为:

图片

图1:原图片

图片

图2:sd生成图片

5、保持生成图片的条件不变,添加ControlNet模型,选择Openpose,control mode选择 balance ,生成的图片如下所示,生成的人物动作因为Openpose的作用被约束了,与原图像保持的更为相似。

图片

图3:sd生成图片(添加openpose)

图片

图4: openpose生成的图片

文生图示例
  • 模型选择
  1. stable diffusion大模型选用:revAnimated_v11 (https://civitai.com/models/7371?modelVersionId=46846)

  2. lora模型选用blind_box_v1_mix (https://civitai.com/models/25995?modelVersionId=32988)

  3. 采样方法Euler a

示例1

提示词

正向:

(masterpiece),(best quality),(ultra-detailed), (full body:1.2), 1girl, youth, dynamic, smile, palace,tang dynasty, shirt, long hair, blurry, black hair, blush stickers, black hair, (beautiful detailed face), (beautiful detailed eyes), lora:blindbox\_v1\_mix:1, full body, chibi

反向:

(low quality:1.3), (worst quality:1.3)

生成的图片为:

图片

图5: 文生图实例1

示例2

提示词

正向:

(masterpiece),(best quality),(ultra-detailed), (full body:1.2), 1girl,chibi,sex, smile, open mouth, flower, outdoors, beret, jk, blush, tree, :3, shirt, short hair, cherry blossoms, blurry, brown hair, blush stickers, long sleeves, bangs, black hair, pink flower, (beautiful detailed face), (beautiful detailed eyes), lora:blindbox\_v1\_mix:1,

反向:

(low quality:1.3), (worst quality:1.3)

生成图片为:

图片

图6: 文生图实例2

提示词解析
  1. (masterpiece),(best quality),(ultra-detailed), (full body:1.2), (beautiful detailed face), (beautiful detailed eyes) 这些带()的词为revAnimated_v11 模型配套prompts,用于提高图片的生成质量。

  2. lora:blindbox\_v1\_mix:1 是触发 blind_box_v1_mix 模型的 prompt。

  3. full body, chibi 为 blind_box_v1_mix 模型的 trigger words。

  4. 剩下的prompts为图片内容的描述。

  5. revAnimated_v11 模型对prompt的顺序是敏感的,排在前面的提示词比排在后面的prompt对结果的影响更大。

VAE

在sd的实际使用中,vae模型起到滤镜和微调的作用,有些sd模型是自带vae的,并不需要单独挂载vae。与模型配套的vae的模型,通常会在模型的发布页面会附带vae的下载链接。

  • 模型的安装

下载vae模型到sd web-ui的如下目录,重启sd web-ui,即可自动完成vae模型加载。

/stable-diffusion-webui/models/VAE

如下图所示,在sd web-ui上可以切换vae模型。

图片

如果we-ui上看不到此选择框,则到设置-> 用户界面-> 快捷设置列表 添加配置 “sd_vae”,如下所示:

图片

  • 效果

在保持图6生成条件不变的基础上,附加Blessed2(https://huggingface.co/NoCrypt/blessed_vae/blob/main/blessed2.vae.pt)模型,图片的颜色和对比度有了明显的变化。

图片

图7: 添加vae模型前

图片

图8:添加vae模型后图片的饱和度和对比度都有提升

结束语

  1. sd web-ui的学习曲线比较陡峭,具有一定的图像处理领域知识能够帮助用户更好的选择和组合模型。

  2. 零基础小白用户容易出现随便选择模型,胡乱组合,对着sd web-ui界面进行一系列操作后,出图效果和预期完全不符的情况,建议先了解每个模型的特点后再根据实际目标进行选择。

  3. sd是开源的,sd web-ui是一个工具箱,不是一个商业产品,社区中有很多效果很棒的模型,出图的上限很高,但下限也很低,开源不代表没有成本,因为sd we-ui部署要求较高的硬件配置。要节省学习成本,较为稳定的出图效果,简单便捷的用户体验,没有硬件配置要求,midjourney 是当前的首选,但需要支付订阅费。

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

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

相关文章

GPUMD分子动力学模拟-学习与实践

GPUMD分子动力学模拟-学习与实践 【20220813-樊哲勇 |基于GPUMD程序包的机器学习势和分子动力学模拟】 https://www.bilibili.com/video/BV1cd4y1Z7zi?share_sourcecopy_web 纯GPU下的MD分子模型系统软件 https://github.com/brucefan1983/GPUMD 跟GPUMD对接的一些python程…

【b站咸虾米】新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

课程地址:【新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p12&share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 三、vue语法 继续回到官…

秒懂百科,C++如此简单丨第十二天:ASCLL码

目录 必看信息 Everyday English 📝ASCLL码是什么? 📝ASCLL码表 📝利用ASCLL码实现大写转小写 📝小试牛刀 总结 必看信息 ▶本篇文章由爱编程的小芒果原创,未经许可,严禁转载。 ▶本篇文…

SECS/GEM的变量SVID是什么?JAVA SECS通信 JAVA与SECS集成资料大全JAVA开发SECS快速入门资料

Java与SECS基础通信 Java实现SECS指令S2F17获取时间 Java实现SECS指令 S10F3 终端单个显示例子 工艺配方管理S7FX Java实现SECS指令 S5F1报警/取消报警上传 实例源码及DEMO请查阅 变量可以是设备的状态信息 定义: 此功能允许主机查询设备数据变量&#x…

手写netty通信框架以及常见问题

目录 通信框架设计 实现功能点 通信模型 消息定义 可靠性设计 代码 服务端代码 常见netty问题 如何让netty支持百万长连接? 1. 操作系统层面优化 2. netty层面优化 2.1 设置合理线程 2.2 心跳优化 2.3 合理使用内存池 2.4 IO线程与业务线程剥离 3. JVM层面优化 …

AWS EC2的SSM配置(AWS云中的跳板机)

问题 开发人员需要访问AWS云中私有子网的数据库服务等,都需要通过EC2进行SSH隧道代理。这里假设本地已经有一款稳定优秀的SSH客户端工具,并且假设已经会熟练使用SSH的隧道代理。 1.创建EC2 搜索找到EC2服务,如下图: 点击“启动…

Qt QSQlite数据库插入字符串中存在单个双引号或单个单引号解决方案

1. 前言 当进行数据库写入或更新时,有时会遇到存在字符串中包含单个双引号或者单引号。 2. 单引号和双引号""作用 在数据库中,字符串常量时需要用一对英文单引号或英文双引号""将字符串常量括起来。 比如: select * …

2024年 13款 Linux 最强视频播放器

Linux视频播放器选择多样,如榛名、MPlayer、VLC等,功能强大、支持多格式,满足各类用户需求 Linux有许多非常强大的播放器,与windows最强视频播放器相比,几乎丝毫不逊色! 一、榛名视频播放器 榛名视频播放…

分布式事务:构建无障碍的云原生应用的完美解决方案

目录 一、前言 二、分布式事务概述 2.1 什么是分布式事务 2.2 分布式事务的挑战 2.3 分布式事务的分类 三、传统解决方案分析 3.1 两阶段提交协议(2PC) 3.2 三阶段提交协议(3PC) 3.3 补偿事务 3.4 其他传统解决方案 四…

深入分析 Spring 中 Bean 名称的加载机制

目录 前言 通过前文:《深入分析-Spring BeanDefinition构造元信息》一文我们可以了解到:Spring Framework共有三种方式可以定义Bean,分别为:XML配置文件、注解、Java配置类, 从Spring Framework 3.0(2019年…

快速了解——逻辑回归及模型评估方法

一、逻辑回归 应用场景:解决二分类问题 1、sigmoid函数 1. 公式: 2. 作用:把 (-∞,∞) 映射到 (0, 1) 3. 数学性质:单调递增函数,拐点在x0,y0.5的位置 4. 导函数公式:f…

让java程序就像脚本一样去写工具

背景: 接触了各种语言之后发现,java还是比go,.netcore之类的简单,成熟,我最终选择了jenkinsshelljava去部署我们的代码,此时很多人可能去使用js或者python之类的去写部署逻辑,毕竟java每次打包…

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时序预测对比

时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现EEMD-SSA-BiLSTM、…

计算机缺失msvcr100.dll如何修复?分享五种实测靠谱的方法

在计算机系统的日常运行与维护过程中,我们可能会遇到一种特定的故障场景,即系统中关键性动态链接库文件msvcr100.dll的丢失。msvcr100.dll是Microsoft Visual C Redistributable Package的一部分,对于许多基于Windows的应用程序来说&#xff…

Open3D 获取点云坐标最值(17)

Open3D 获取点云坐标最值(17) 一、算法介绍二、算法实现1.代码2.结果人生天地间,忽如远行客 一、算法介绍 快速获取点云块,沿着 x y z 各方向的坐标最值,这些在点云处理中的应用范围是如此广泛,这也是点云最常被用到的关键信息,后续的很多算法都会设置到这一处理方法。…

云端绘影,让青玉案跃然眼前

编辑:阿冒 设计:沐由 “东风夜放花千树,更吹落,星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。” 每每诵读这首《青玉案》,那种花灯耀眼、乐声盈耳的元夕盛况就会立刻浮现在脑海中&am…

【开源】基于JAVA+Vue+SpringBoot的校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

java..类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。

第一步先打开pom.xml配置文件&#xff0c;找到版本号那几行&#xff0c;这里需要更改版本号。 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/X…

一文读懂ERP、OMS、WMS、TMS(1/2)

目录 一、ERP、OMS、WMS、TMS的定义 1.1 ERP&#xff08;Enterprise Resource Planning&#xff09; 1.2 OMS&#xff08;Order Management System&#xff09; 1.3 WMS&#xff08;Warehouse Management System&#xff09; 1.4 TMS &#xff08;Transportation Manageme…

【SpringCloud】之网关应用(进阶使用)

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《SpringCloud开发之网关应用》。&#x1f3af;&a…