Stable Diffusion Web UI的原理与使用

Stable Diffusion是一套基于Diffusion扩散模型生成技术的图片生成方案,随着技术的不断发展以及工业界对这套工程细节的不断优化,使其终于能在个人电脑上运行,本文将从github下载开始讲一讲如何使用Stable Diffusion Web UI进行AI图像的生成。

1.聊聊Diffusion

1.1 概念简介

StableDiffusion是基于扩散模型的应用,那就先来讲一讲什么是扩散模型。

我们知道在扩散模型出现之前,比较火的是GAN(对抗生成网络),GAN由生成器和判别器组成,两者相互博弈训练,最终产生较理想的输出。

但是GAN也有缺点,首先生成器和判别器不断进化的中间N个步骤完全是黑盒,无法调试。其次还有难以训练、模式坍缩等许多问题。

Diffusion模型并非新技术,而是更像是在另一个技术方向上的不断前进,相比GAN,Diffusion会将生成的每一个步骤都拆解出来进行反复训练。

好比绘制一幅简笔画,GAN是生成器和判别器不断进化,最终绘制完成简笔画。而Diffusion是将绘画的每一步拆解出来不断训练,最后完整的将所有步骤绘制出来:
在这里插入图片描述

1.2 讲讲原理

Duffsion是一个在图像加噪去噪过程中进行生成的模型,假设一张完全没有噪点的图像到一张充满噪点无法辨认的图像会经过1000个步骤:
在这里插入图片描述

那么在训练阶段,Diffusion模型首先会在这1000个步骤中随机选一步,先加噪,再通过网络去噪,反向传播时用该阶段的原始图片作为Loss。而这个加噪去噪的具体步骤,也并非直接加减,需要通过网络求出噪声变化值再减回去等,这里不做过多讲解。

这个去噪声的操作通过的就是Unet网络,这是一个残差卷积网络,因为结构呈U形所以得名。而我们输入的提示词也会先通过CLIP模型再编码进噪声中。

再后来出现了Latent Diffusion Models,即通过VAE这样的压缩技术,将原图通过VAE网络编码成一张尺寸比较小、包含潜空间数据的图片,再进行扩散处理,最终图像再通过VAE网络解码成原始图片。这项技术大大降低了显存的占用,也为后来的Stable Diffusion打下了基础。

2.Stable Diffusion Web UI

接下来讲讲实用的,关于Stable Diffusion与第三方开源的Web UI仓库。

2.1 Web UI简介

在github上直接查找StableDiffusion可以看到排名最靠前的有3个仓库:
在这里插入图片描述
实际上Stable Diffusion 是由 CompVis、Stability AI 和 LAION一起开发的,因此CompVis和Stability-AI的仓库地址理论上都是官方仓库。
而stable diffusion web ui实际上是一个非官方开源项目,但这个才是我么一会要用的仓库,这个仓库真正做到了开箱即用,不需要配置Cuda、不会有奇怪的报错、连基础模型都会帮你自动下载好。

2.2下载与配置

2.2.1 启动Stable Diffusion

首先从AUTOMATIC1111仓库的Stable Diffusion Web UI进行下载,该仓库会自动下载StableDiffusion以及基础模型:
https://github.com/AUTOMATIC1111/stable-diffusion-webui

根据该仓库的教程说明,最后运行webui-user.bat即可。
在这里插入图片描述
安装好并且webui-user.bat内的内容下载好后,在ip:127.0.0.1:7860可以打开StableDiffusion界面:
在这里插入图片描述
左上角显示的是基础模型。

2.2.2 安装大模型

像SDXL这类算作大模型,像Lora、ControlNet算小模型,小模型需要依赖大模型的版本,大模型版本改变的话小模型就会失效报错。

下载大模型需要去另外2个github仓库查找。

不想折腾,也可以在这里下载大模型:
https://rentry.org/sdmodels
https://civitai.pro/

2.2.3 安装插件

使用Stable Diffusion web ui还可以进行插件的拓展,像较流行的Lora、Control Net这些最早都不是作为SD的插件开发的,而是有正经论文的学术内容,后来才拓展的StableDiffusion插件版本。

Control Net1.1全家桶可以在hugging face上下载:
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main

还有最近短视频平台比较火的小和尚,嘴型生成SadTalker插件:
https://github.com/OpenTalker/SadTalker

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

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

相关文章

水稻叶病害数据集(目标检测,yolo使用)

1.数据集文件夹 train文件夹(44229张),test文件夹(4741张),valid文件夹(6000张) 2.train文件夹展示 labels展示 标签txt展示 data.yaml文件展示 对数据集感兴趣的可以关注最后一行…

网络安全法+网络安全等级保护

网络安全法 2014年2月,中央网络安全和信息化领导小组成立,习主席当组长 2017年6月1日,网络安全法正式成立 网络安全是国家安全的重要组成部分没有网络安全就没有国家安全,没有信息化就没有现代化 网络安全法21条 网络安全法31条 …

[C/C++]天天酷跑游戏超详细教程-上篇

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

视频剪辑音效处理软件有哪些?视频剪辑软件那个好用

音效是视频剪辑的重要部分,能起到画龙点睛的作用。在短视频平台中,一段出彩的音效能将原本平平无奇的视频变得生动有趣。那么,视频剪辑音效处理软件有哪些?本文会给大家介绍好用的音效处理软件,同时也会介绍视频剪辑音…

危险的套娃:攻击者在 PDF 文件中隐藏恶意Word 文档

据BleepingComputer消息,日本计算机紧急响应小组 (JPCERT) 日前分享了在2023 年 7 月检测到的利用PDF文档的新型攻击——PDF MalDoc攻击,能将恶意 Word 文件嵌入 PDF 来绕过安全检测。 JPCERT采样了一种多格式文件,能被大多数扫描引擎和工具识…

如何使用CSS实现一个带有动画效果的进度条?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTML 结构:⭐ CSS 样式:⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那…

BT8918D---按键模块

1 Preface/Foreword 中科蓝讯BT8918D模块支持:IO按键、AD按键 2 数据结构 2.1 按键事件映射表 typedef struct { u8 adc_val; u8 usage_id; } adkey_tbl_t; 按键功能配置表:adkey_table const adkey_tbl_t adkey_table[] { {0x0A, KEY_P…

使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表

使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表 package flink;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.TableResult; import org.apache.flink.table.api.bridge.java.…

adb 查找应用包名,应用 Activity 等信息

列出设备上的包 不使用参数:adb shell pm list packages,打印设备/模拟器上的所有软件包 根据包名查看应用的activity 命令: dumpsys package 包名 adb shell dumpsys package 包名 petrel-cv96d:/data/app # dumpsys package com.instal…

自然语言处理2-NLP

目录 自然语言处理2-NLP 如何把词转换为向量 如何让向量具有语义信息 在CBOW中 在Skip-gram中 skip-gram比CBOW效果更好 CBOW和Skip-gram的算法实现 Skip-gram的理想实现 Skip-gram的实际实现 自然语言处理2-NLP 在自然语言处理任务中,词向量(…

运维Shell脚本小试牛刀(一)

运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 一: Shell中循环剖析 for 循环....... #!/bin/bash - # # # # FILE: countloop.sh # USAGE: ./countloop.sh # DESCRIPTION: # OPTIONS: ------- # …

c++ boost::json

Boost社区12月11日发布了1.75版本,在之前,​​Boost使用Boost.PropertyTree解析​​JSON​​​,​​XML​​​,​​INI​​​和​​INFO​​​格式的文件。但是由于成文较早及需要兼容其他的数据格式,相比较于其他的​…

秒懂算法2

视频链接 : 希望下次秒懂的是算法题_哔哩哔哩_bilibili P1094 [NOIP2007 普及组] 纪念品分组 原题链接 : [NOIP2007 普及组] 纪念品分组 - 洛谷 思路 : 排序 贪心 双指针首先先对输入进来的数组进行排序(由小到大)运用贪心的思想 : 前后结合,令l1,rn,若a[l]a[r]<w…

讲解人工智能在现代科技中的应用和未来发展趋势

人工智能是现代科技中的一个重要分支&#xff0c;其应用涵盖了各个领域&#xff0c;如医疗、金融、制造业、交通运输、安防、教育、游戏等。在医疗领域&#xff0c;人工智能可以通过分析医学图像、实时监控病人状况、制定诊疗方案等方面为医生提供支持与帮助。在金融领域&#…

git 的常用命令

git是一个版本管理器&#xff0c;是程序员必备工具之一&#xff0c;其主分为三个区&#xff1a; 工作区&#xff1a; 暂存区&#xff1a; 仓库&#xff1a; 通过保持软件版本&#xff0c;分支&#xff0c;合并&#xff0c;等多种版本操作&#xff0c;使软件能在自己想要的版本…

arm版Linux下安装es集群

背景&#xff1a;由于生产上网络没通&#xff0c;没办法&#xff0c;只能自己安装一个es集群的测试环境了&#xff0c;我的电脑是Mac M2&#xff0c;安装的Linux是centos7&#xff0c;也是arm版的。 第一步&#xff1a;查看自己Linux系统的版本 命令&#xff1a;uname -a 例如…

分布式 - 服务器Nginx:一小时入门系列之 rewrite 指令

文章目录 1. rewrite 指令语法2. rewrite 指令示例3. 不使用 last 和 break 重写规则4. 使用 break 重写规则5. 使用 last 重写规则 1. rewrite 指令语法 nginx的rewrite指令用于重写URL&#xff0c;可以将一个URL重写为另一个URL。它的语法如下&#xff1a; rewrite regex r…

设置微软Edge浏览器主页和新标签页,摆脱扰人和分散注意力的主页

默认情况下&#xff0c;Microsoft Edge会向您显示世界上最令人分心和讨厌的主页&#xff08;也称为主屏幕&#xff09;。微软不想只向你展示一个搜索框&#xff0c;也许还有一个漂亮的背景或一些你喜欢的网站的快捷方式&#xff0c;而是想在你面前扔一堆新闻标题和广告。 你可…

Linux 终端命令行 产品介绍

Linux命令手册内置570多个Linux 命令&#xff0c;内容包含 Linux 命令手册。 【软件功能】&#xff1a; 文件传输 bye、ftp、ftpcount、ftpshut、ftpwho、ncftp、tftp、uucico、uucp、uupick、uuto、scp备份压缩 ar、bunzip2、bzip2、bzip2recover、compress、cpio、dump、gun…

全新抖音快手小红书去水印系统网站源码 | 支持几十种平台

全新抖音快手小红书去水印系统网站源码 | 支持几十种平台