深入浅出摸透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入门教程</

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯c++算法秒杀【6】之动态规划【下】(数字三角形、砝码称重(背包问题)、括号序列、异或三角:::非常典型的必刷例题!!!)

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! ! &#xff01; 关注博主&#xff0c;更多蓝桥杯nice题目静待更新:) 动态规划 三、括号序列 【问题描述】 给定一个括号序列&#xff0c;要求尽可能少地添加若干括号使得括号序列变得合…

24.100ASK_T113-PRO 驱动摄像头(V4L2)

1.在buildroot 中使能 V4L库 使用make menuconfig命令之后弹出编译菜单选项&#xff1a; 2.按下 / 输入 "libv4l 后回车进行搜索&#xff0c;有2个搜索结果&#xff0c; 3.按下 1 进行跳转 4.按下 / 输入 fswebcam 后回车进行搜索&#xff0c;有1个搜索结果&#xff0c; …

【测试工具JMeter篇】JMeter性能测试入门级教程(二)出炉,测试君请各位收藏了!!!

上篇文章&#xff1a;CSDN 我们介绍了JMeter的一些原理介绍&#xff0c;以及安装配置和启动流程&#xff0c;本文我们就来讲讲JMeter如何使用。 一、JMeter目录结构组成 1. 根目录 Jmeter安装包解压后的根目录如下图&#xff1a; 1.1 backups目录&#xff1a;脚本备份目录&am…

C语言学习 12(指针学习1)

一.内存和地址 1.内存 在讲内存和地址之前&#xff0c;我们想有个⽣活中的案例&#xff1a; 假设有⼀栋宿舍楼&#xff0c;把你放在楼⾥&#xff0c;楼上有100个房间&#xff0c;但是房间没有编号&#xff0c;你的⼀个朋友来找你玩&#xff0c;如果想找到你&#xff0c;就得挨…

【pyspark学习从入门到精通19】机器学习库_2

目录 估计器 分类 回归 聚类 管道 估计器 估计器可以被看作是需要估算的统计模型&#xff0c;以便对您的观测值进行预测或分类。 如果从抽象的 Estimator 类派生&#xff0c;新模型必须实现 .fit(...) 方法&#xff0c;该方法根据在 DataFrame 中找到的数据以及一些默认或…

微服务篇-深入了解使用 RestTemplate 远程调用、Nacos 注册中心基本原理与使用、OpenFeign 的基本使用

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 认识微服务 1.1 单体架构 1.2 微服务 1.3 SpringCloud 框架 2.0 服务调用 2.1 RestTemplate 远程调用 3.0 服务注册和发现 3.1 注册中心原理 3.2 Nacos 注册中心 …

C语言解析命令行参数

原文地址&#xff1a;C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数&#xff0c;可以对命令行进行解析&#xff0c;下面给出一个示例&#xff0c;用的时候可以直接copy过去修改&#xff0c;很方便…

深度学习:GPT-1的MindSpore实践

GPT-1简介 GPT-1&#xff08;Generative Pre-trained Transformer&#xff09;是2018年由Open AI提出的一个结合预训练和微调的用于解决文本理解和文本生成任务的模型。它的基础是Transformer架构&#xff0c;具有如下创新点&#xff1a; NLP领域的迁移学习&#xff1a;通过最…

过滤条件包含 OR 谓词,如何进行查询优化——OceanBase SQL 优化实践

这篇博客涉及两个点&#xff0c;一个是 “OR Expansion 改写”&#xff0c;另一个是 “基于代价的改写”。 背景 在写SQL查询时&#xff0c;难以避免在过滤条件中使用 OR 谓词&#xff0c;但其往往会导致索引利用效率下降的问题 。本文将分享如何通过查询改写的2种方式进行优化…

C语言函数递归经典题型——汉诺塔问题

一.汉诺塔问题介绍 Hanoi&#xff08;汉诺&#xff09;塔问题。古代有一个梵塔&#xff0c;塔内有3个座A、B、C&#xff0c;开始时&#xff21;座上有64个盘子&#xff0c;盘子大小不等&#xff0c;大的在下&#xff0c;小的在上。有一个老和尚想把这64个盘子从&#xff21;座移…

【Python】九大经典排序算法:从入门到精通的详解(冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、基数排序、桶排序)

文章目录 1. 冒泡排序&#xff08;Bubble Sort&#xff09;2. 选择排序&#xff08;Selection Sort&#xff09;3. 插入排序&#xff08;Insertion Sort&#xff09;4. 归并排序&#xff08;Merge Sort&#xff09;5. 快速排序&#xff08;Quick Sort&#xff09;6. 堆排序&…

lua除法bug

故事背景&#xff0c;新来了一个数值&#xff0c;要改公式。神奇的一幕出现了&#xff0c;公式算出一个非常大的数。排查是lua有一个除法bug,1除以大数得到一个非常大的数。 function div(a, b)return tonumber(string.format("%.2f", a/b)) end print(1/73003) pri…

STM32 USART串口发送+接收

单片机学习&#xff01; 目录 前言 一、串口发送配置步骤 二、详细步骤 2.1 RCC开启USART和GPIO时钟 2.2 GPIO初始化 2.3 配置USART 2.4 开启USART 2.5 总初始化代码 三、接收数据 3.1 查询方法 3.2 中断方法 3.2.1 中断配置 3.2.2 接收函数 总结 前言 上篇博文介…

网络安全事件管理

一、背景 信息化技术的迅速发展已经极大地改变了人们的生活&#xff0c;网络安全威胁也日益多元化和复杂化。传统的网络安全防护手段难以应对当前繁杂的网络安全问题&#xff0c;构建主动防御的安全整体解决方案将更有利于防范未知的网络安全威胁。 国内外的安全事件在不断增…

AIGC--AIGC与人机协作:新的创作模式

AIGC与人机协作&#xff1a;新的创作模式 引言 人工智能生成内容&#xff08;AIGC&#xff09;正在以惊人的速度渗透到创作的各个领域。从生成文本、音乐、到图像和视频&#xff0c;AIGC使得创作过程变得更加快捷和高效。然而&#xff0c;AIGC并非完全取代了人类的创作角色&am…

【数据结构实战篇】用C语言实现你的私有队列

&#x1f3dd;️专栏&#xff1a;【数据结构实战篇】 &#x1f305;主页&#xff1a;f狐o狸x 在前面的文章中我们用C语言实现了栈的数据结构&#xff0c;本期内容我们将实现队列的数据结构 一、队列的概念 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端…

RHCSA作业

课后练习 将整个 /etc 目录下的文件全部打包并用 gzip 压缩成/back/etcback.tar.gz [rootlocalhost ~]# tar -czvf /back/etcback.tar.gz -C / etc 使当前用户永久生效的命令别名&#xff1a;写一个命令命为hello,实现的功能为每输入一次hello命令&#xff0c;就有hello&#…

java:拆箱和装箱,缓存池概念简单介绍

1.基本数据类型及其包装类&#xff1a; 举例子&#xff1a; Integer i 10; //装箱int n i; //拆箱 概念&#xff1a; 装箱就是自动将基本数据类型转换为包装器类型&#xff1b; 拆箱就是自动将包装器类型转换为基本数据类型&#xff1b; public class Main {public s…

如何选择最适合企业的ETL解决方案?

在今天的大数据时代&#xff0c;企业的数据管理和处理变得愈发重要。企业也越来越依赖于数据仓库和数据湖来提取、转换和加载&#xff08;ETL&#xff09;关键业务信息。一个高效、灵活的ETL解决方案不仅能提升数据处理能力&#xff0c;还能为企业决策提供有力支持。然而&#…

[网鼎杯 2020 朱雀组]phpweb 详细题解(反序列化绕过命令执行)

知识点: call_user_func() 函数 反序列化魔术方法 find命令查找flag 代码审计 打开题目,弹出上面的提示,是一个警告warning,而且页面每隔几秒就会刷新一次,根据warning中的信息以及信息中的时间一直在变,可以猜测是date()函数一直在被调用 查看源代码发现一些信息,但是作用…