深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快!

朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上记了一些学习笔记,后面看有时间我再回来补齐吧!
在这里插入图片描述

基本概念

开始前我们先熟悉几个概念,这些内容在之前的文章里面也有专门介绍过:

  • 关于AIGC文生图:一文读懂AIGC文生图系列发展近况
  • 关于扩散模型: 一文读懂「Diffusion Model,DM」扩散模型
  • 关于Midjourney:深入浅出剖析典型文生图产品Midjourney

在这里插入图片描述

SD介绍

Stable Diffusion是一种基于深度学习的图像扩散生成模型,利用文本描述生成图像。该模型由CompVis、Stability AI和LAION合作开发,具有高稳定性和生成质量。

产品介绍

Stable Diffusion直译为稳定扩散,理解稳定扩散之前先通过两张图片介绍一下什么是前向扩散和逆向扩散。所谓前向扩散(forward diffusion)过程就是向训练图像中不断地添加噪声,从而使其逐渐变为一张毫无意义的纯噪声图。经过前向扩散猫的图像变成了随机噪声。反过来,逆向扩散(Reverse Diffusion)过程是从一个随机噪声图像开始恢复出猫图像的过程。
在这里插入图片描述
因此,Stable Diffusion可以理解为从一张完全高斯噪音开始,根据用户输入的要求,逐步剔除噪音,直到产生出用户所要图片的过程。

它的核心是如何降噪(降噪模型),而降噪模型的核心是噪声预测器(根据用户文本输入,预测噪声),即高斯图片->逐步减去噪声->得到用户所需图片。

这个过程里面一共用到了图像编码器、文本编码器、扩散模型、图像解码器四个神经网络模型。

发展路线

在这里插入图片描述
SD 1.1:首个版本,提出improved aesthetics,优化图像质量,使用4plus模型配置。

SD 1.2:引入大数据集LAION-2B进行训练,提高了图像质量,使用5plus模型配置。

SD 1.3:过渡版本

SD 1.4:在图像生成效果上有较大提升,训练迭代次数增加到195000步。

SD 1.5:继续改进美学效果,使用5plus模型,训练达到225000步,可以生成更高质量图片。

在这里插入图片描述

SD2.0:这是Stable Diffusion的一个主要版本。它在之前版本的基础上实现了显著的改进,特别是在图像的美学质量和生成模型的细节上。

SD2.1:这个版本进一步优化了之前版本的特性。强调了更有效的文本编码器,使用了更先进的CLIP版本,生成的图像与文本提示的一致性和相关性有所提升。

SD变种:这可能是Stable Diffusion的一个变体版本,具有特殊的属性或针对特定应用场景的优化。

SDXL:这是Stable Diffusion的一个扩展版本。演化更大的模型(比如使用了更大的UNet),或者训练了更广泛的数据集。强调了CLIP文本编码器和VAE的改进,提供了更准确的文本到图像的转换能力。

Stable Diffusion 2.x系列:

SD 2.0:基于CompVis模型,提升细节生成能力。

SD 2.1:引入Hypernetwork,支持无限分辨率生成。

SD 的演化过程中,最主要的变化就是模型结构和训练数据的变化。SD1.x 系列,大多数是在 SD1.2 的基础上继续微调得到的,包括我们使用最多的 SD1.4 和 SD1.5 模型;SD2.x 系列则是新开的故事线,使用了全新的模型结构。

功能介绍

关于界面使用,SD有两种方式一种是webUI,另外一种是comfyUI,comfyUI是一种更灵活的工作流式的操作方式。
在这里插入图片描述

webUI

在这里插入图片描述
全程讲操作流程还是太费时间了,建议大家跟着教程走一遍基本就了然于胸了!我不在这里赘述,给大家一个比较强全面的讲解:

  1. 超详细!外婆都能看懂的Stable Diffusion入门教程</

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

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

相关文章

Maven 如何配置忽略单元测试

在使用 Maven 进行项目构建时&#xff0c;有时您可能希望跳过测试阶段。 这在确保代码更改不影响测试结果或需要快速部署项目的情况下特别有用。 Maven 提供了多种方法来在构建过程中跳过测试。 为什么跳过测试&#xff1f; 加速构建&#xff1a;对于具有大量测试用例的大项…

面试(十一)

目录 一.IO多路复用 二.为什么有IO多路复用机制? 三.IO多路复用的三种实现方式 3.1 select select 函数接口 select 使用示例 select 缺点 3.2 poll poll函数接口 poll使用示例 poll缺点 3.3 epoll epoll函数接口 epoll使用示例 epoll缺点 四. 进程和线程的区别…

HCIP——堆叠技术实验配置

目录 一、堆叠的理论知识 二、堆叠技术实验配置 三、总结 一、堆叠的理论知识 1.1堆叠概述&#xff1a; 是指将两台交换机通过堆叠线缆连接在一起&#xff0c;从逻辑上变成一台交换设备&#xff0c;作为一个整体参与数据的转发。 1.2堆叠的基本概念 堆叠系统中所有的单台…

【GPT】力量训练的底层原理?

详细解读力量训练的每一个底层原理 力量训练之所以有效&#xff0c;是因为它利用了肌肉、神经系统和生物化学反应的基本机制。以下逐一详细解析&#xff0c;并解释相关概念。 1. 应力-恢复-适应理论 概念解析 应力&#xff08;Stress&#xff09;&#xff1a;指训练带来的负…

快速上手:如何开发一个实用的 Edge 插件

在日常浏览网页时&#xff0c;背景图片能够显著提升网页的视觉体验。如果你也想为自己的浏览器页面添加个性化背景图片&#xff0c;并希望背景图片设置能够持久保存&#xff0c;本文将介绍如何通过开发一个自定义Edge插件来实现这一功能。我们将涵盖保存背景设置到插件选项页&a…

介绍一下atol(arr);(c基础)

hi , I am 36 适合对象c语言初学者 atol(arr)&#xff1b;是返回整数(long型)&#xff0c;整数是arr数组中字符中数字 格式 #include<stdio.h> atol(arr); 返回值arr数组中的数字 未改变arr数组 #include<stdio.h> //atol(arr); 返 <stdlib> int main…

每日十题八股-2024年11月27日

1.类型互转会出现什么问题吗&#xff1f; 2.为什么用bigDecimal 不用double &#xff1f; 3.装箱和拆箱是什么&#xff1f; 4.Java为什么要有Integer&#xff1f; 5.Integer相比int有什么优点&#xff1f; 6.那为什么还要保留int类型&#xff1f; 7.说一下 integer的缓存 8.怎么…

Python的排序算法

一、算法 1.1 算法概念 算法就是计算机解决问题的方法或者步骤 程序 数据结构 算法 1.2 算法的特性 1】确定性&#xff1a; 算法的每条语句具有明确的意思&#xff0c;不能模棱两可 2】有穷性&#xff1a;在执行一定的时间后&#xff0c;能自动结束算法 3】输入&#…

npm install -g@vue/cli报错解决:npm error code ENOENT npm error syscall open

这里写目录标题 报错信息1解决方案 报错信息2解决方案 报错信息1 使用npm install -gvue/cli时&#xff0c;发生报错&#xff0c;报错图片如下&#xff1a; 根据报错信息可以知道&#xff0c;缺少package.json文件。 解决方案 缺什么补什么&#xff0c;这里我们使用命令npm…

RuoYi排序

RuoYi框架提供了多种实现排序的方法&#xff0c;以满足不同场景下的需求。这里简要介绍几种常见的排序实现方式&#xff1a; 1. 后端排序 1.1 使用startPagePlus方法 RuoYi框架中&#xff0c;可以通过对BaseController进行扩展来实现更灵活的分页与排序功能。例如&#xff0…

在windows操作系统上,用git与github账户连接

一、环境准备 1.1 git软件 1.2 github账号 1.3 创建一个项目目录&#xff0c;比如 D:\project\gitproject 二、开始操作 1. 进入项目目录下&#xff0c;右键&#xff0c;如图&#xff0c;打开git bash命令行 2. 在命令行输入以下三个命令 $ git config --global user.name &quo…

视频监控实现画面缩放功能

文章目录 概要一、功能说明二、核心实现代码三、技术细节 概要 在视频监控系统中&#xff0c;经常需要查看视频画面中的细节。通过实现区域放大、滚轮缩放和拖拽平移等功能&#xff0c;可以让用户更方便地观察视频细节。本文介绍如何在 Windows 系统下实现这些交互功能。 一、…

鸿蒙本地模拟器 模拟TCP服务端的过程

鸿蒙模拟器模拟TCP服务端的过程涉及几个关键步骤&#xff0c;主要包括创建TCPSocketServer实例、绑定IP地址和端口、监听连接请求、接收和发送数据以及处理连接事件。以下是详细的模拟过程&#xff1a; **1.创建TCPSocketServer实例&#xff1a;**首先&#xff0c;需要导入鸿蒙…

云原生后端开发:构建现代化可扩展的服务

随着微服务架构的普及和容器化技术的成熟&#xff0c;云原生后端开发成为了构建现代化、可扩展系统的关键。本文将从云原生理念出发&#xff0c;结合实际案例&#xff0c;探讨如何使用 Kubernetes、服务网格、微服务架构等技术构建高效的云原生后端。 一、云原生的核心理念 1.…

RNN模型文本预处理--数据增强方法

数据增强方法 数据增强是自然语言处理&#xff08;NLP&#xff09;中常用的一种技术&#xff0c;通过生成新的训练样本来扩充数据集&#xff0c;从而提高模型的泛化能力和性能。回译数据增强法是一种常见的数据增强方法&#xff0c;特别适用于文本数据。 回译数据增强法 定义…

Three.js 和其他 WebGL 库 对比

在WebGL开发中&#xff0c;Three.js是一个非常流行的库&#xff0c;它简化了3D图形的创建和渲染过程。然而&#xff0c;市场上还有许多其他的WebGL库&#xff0c;如 Babylon.js、PlayCanvas、PIXI.js 和 Cesium&#xff0c;它们也有各自的特点和优势。本文将对Three.js 与这些常…

【04】MySQL数据库和数据表的基本操作详解与实例

文章目录 一、连接MySQL服务器二、数据库的基本操作2.1数据库的基本操作1. 创建数据库2. 选择数据库3. 删除数据库4.查询所有数据库5.修改数据库的字符集 2.2 数据表的基本操作1. 创建数据表2. 查看数据表结构3. 删除数据表4. 修改数据表5. 插入数据6. 查询数据7. 更新数据8. 删…

详解Qt QBuffer

文章目录 **QBuffer 的详解****前言****QBuffer 是什么&#xff1f;****QBuffer 的主要用途****构造函数****主要成员函数详解****1. open()****原型&#xff1a;****作用&#xff1a;****参数&#xff1a;****返回值&#xff1a;****示例代码&#xff1a;** **2. write()****原…

CTF-Hub SQL 报错注入(纯手动注入)

​ 当输入1时&#xff0c;发现只有查询正确&#xff0c;基本上可以判断出没有回显 开始注入(工具hackerBar) 题目是报错注入&#xff0c;方向就比较明显&#xff0c;大致说一下用到的函数和原理。 常见报错注入函数&#xff1a; 通过 floor() 报错注入通过 extractValue() …

2024 阿里云的Debian12.8,安装mariadb【图文讲解】

目录 一、安装 MariaDB Server 二、登录到MariaDB&#xff0c;记得输入密码&#xff08;注意&#xff1a;密码非明文&#xff0c;只管输入&#xff0c;完成以后回车&#xff09; 三、创建用户 root&#xff0c;并允许从任何主机连接 四、授予用户访问权限 五、刷新权限 六、…