stable diffusion实践操作-SD原理

news2024/11/18 23:47:59

本文专门开一节写提示词相关的内容,在看之前,可以同步关注:
stable diffusion实践操作

正文


1、出图原理

1.1 AI画画不是和人一样,从0开始,而是一个去噪点的过程:

在这里插入图片描述

1.2 逆向去噪

所有的人图片都是从一张噪点图开始的。根据目标生成一张猫的图片,将噪点一步步转化为猫在这里插入图片描述

1.3 AI如何学会去噪点的

AI首先将图片一步步加入噪点。
在这里插入图片描述
所以任何一张图都可以逆向这个过程
在这里插入图片描述
在这里插入图片描述

2、出图机制

  1. 将输入的文字进行编码传入潜空间。
  2. 在潜空间根据文字的描述,进行图片的绘制
  3. 将图片从潜空间的压缩态进行放大,补充细节,提升分辨率
    在这里插入图片描述

2.1 文字编码

计算机不能直接理解文本和图片
在这里插入图片描述
而是通过特征向量来标记
在这里插入图片描述
而这一项工作是通过CLIP模型来完成的
在这里插入图片描述
clip模型包括文字编码器和图片编码器,将文字和图片都编码成向量
在这里插入图片描述
所以CLIP设置的层数越高,图片和文字相关度越低,一般设置为2就可以了。

2.2 图片绘制

SD绘制图片内容的时候,并不是直接绘制512512的图片,而是绘制核心内容,6464,然后再将图片放大还原。
在这里插入图片描述
所以绘图的实际过程就是去噪
在这里插入图片描述

2.2.1 随机种子和采样器

SD会根据随机种子生成一张正态分布的噪点图,然后根据传入的文字,加入是狗,去向量数据库中搜索,生成狗的去噪方式。去噪方式又是采样器进行调用的
在这里插入图片描述
采样器会调用Unet模型,对图片中的噪点预测,生成噪点预测图
在这里插入图片描述
让噪点图减去预测出的全部噪点,生成最终的模型图片
在这里插入图片描述

2.2.2 迭代步数

Unet模型在噪点多的时候,预测并不理想,所以我们并不一次性全部采纳其预测的噪点,而是每次只采用一部分噪点,循环多次


这个过程就是下面的迭代步数
在这里插入图片描述
设置过小,图片与文本匹配度较低,过大,则会画蛇添足,一般我们设置为20-40步即可
在这里插入图片描述

2.2.23 采样方法

采样所采用的算法,不同算法消耗的时间不同。
在这里插入图片描述
采样器时间对比
在这里插入图片描述
一般推荐大家 使用DPM++ SDE Karas/DPM2++ SDE Karas
对比:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3放大图片

在潜空间产生的图片比较小,我们需要VAE将其放大,优化细节。
在这里插入图片描述

这就是整个过程
在这里插入图片描述

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

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

相关文章

大型商城系统功能逻辑架构_各大系统关系设计_OctShop

一个商城系统应该具备什么样的功能才算一个合格的网上商城呢,才能满意用户的下单支付,退款退货,售后等需求呢! 商城一般分为三种角色:买家,商家,平台,这三种角色都有各自的功能特点。…

记录--前端使用a链接下载内容增加loading效果

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 问题描述:最近工作中出现一个需求,纯前端下载 Excel 数据,并且有的下载内容很多,这时需要给下载增加一个 loading 效果。 代码如下: // util…

2023_Spark_实验六:Scala面向对象部分演示(二)(IDEA开发)

7、Scala中的apply方法() 遇到如下形式的表达式时,apply方法就会被调用: Object(参数1,参数2,......,参数N) 通常,这样一个apply方法返回的是伴生类的对象;其作用是为了省略new关键字 Object的apply方法…

我开课了!《机器学习》公益课9月4日开课

我是黄海广,大学老师,我上的一门课叫《机器学习》,本科生学机器学习有点难,但也不是没有可能,我在摸索中,设计适合本科生的机器学习课程,写了教材,录了视频,做了课件。我…

如何使用SQL系列 之 了解SQL中的约束规则

简介 在设计数据库时,有时可能需要对某些列中允许的数据设置限制。例如,如果你要创建一张表来保存摩天大楼的信息,你可能希望在保存每座大楼高度的列中禁止使用负值。 关系型数据库管理系统(RDBMS)允许你使用约束来控制哪些数据被添加到表中…

PID 算法

1.1 概述 比例(Proportion)积分(Integral)微分(Differential)控制器(PID控制器或三项控制器)是一种采用反馈的控制回路机制,广泛应用于工业控制系统和需要连续调制控制的…

ArrayList(扩容机制)

文章目录 一、前言二、ArrayList扩容机制1、适用于什么场景?2、ArrayList特点3、ArrayList扩容机制3.1、内存分配的效率:3.2、数据迁移的代价3.3、性能和空间的平衡 三、总结 一、前言 对于ArrayList集合可能大家并不陌生,但ArrayList集合的…

Camera | 12.瑞芯微摄像头自动焦距马达驱动移植

本为你主要讲解如何让摄像头ov13850支持自动对焦功能。 摄像头的对角主要通过VCM马达驱动芯片DW9714来实现的。 一、环境 soc : rk3568 board: EVB1-DDR4-V10 软 件:Android 11 Linux:4.19.232 Camera:ov13850二、DW9714 1.DW9714简介 DW9714专…

企业知识管理的解决方案

人们发现,挖掘知识、创造知识、生产知识,用知识为自己的产品赋予高附加值,才是企业和社会可持续发展的动力之源。所以知识管理越来越受到重视。 知识管理作为一个新兴的管理概念,已经被学术界所接受,但尚未形成一个…

网站用户体验之深度感悟

个性化定制界面和极简版原装界面,哪一个你用起来更加顺手呢,相比之下你更喜欢哪一个? 界面选择: (提醒:仅个人感悟。~~) 方向一:表明自己的喜好 我个人觉得更喜欢个性化定制界面。…

虚拟机有代理备份、无代理备份是什么?

有代理备份: 在虚拟机内部安装备份代理程序,然后把虚拟机当作物理机一样来进行备份任务。借助虚拟机系统中内置的程序来进行备份的,就像在正常系统中备份那样,借助备份和还原(Windows7)功能对系统进行备份…

知识图谱笔记:TransE

1 知识图谱介绍 一条知识图谱可以表示为一个三元组(sub,rel,obj)。 举个例子:小明的爸爸是大明,表示成三元组是(小明,爸爸,大明)。前者是主体,中间是关系,后者是客体。主体和客体统…

layui引入百度地图

<script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的ak"></script> <script src"https://code.bdstatic.com/npm/jquery1.12.4/dist/jquery.min.js"></script> <script src&…

科技驱动产业升级:浅谈制造型企业对MES系统的应用

在科技不断进步的背景下&#xff0c;制造型行业也在持续发展&#xff0c;但随之而来的挑战也不断增加。传统的管理方式已经无法满足企业的需求&#xff0c;因此许多制造型企业开始寻找新的管理模式。制造执行系统&#xff08;MES&#xff09;作为先进的制造信息技术之一&#x…

【微信小程序】父子组件的创建、通信与事件触发;组件生命周期

前言 关于微信小程序中父子组件的创建、传值&#xff0c;以及涉及到的组件生命周期。 使用组件的优点 组件的使用可以提高开发效率并确保功能在各个页面上的应用和修改的一致性。 例如&#xff0c;对于一些重复的功能&#xff0c;比如顶部导航栏或评论区&#xff0c;将其提炼…

MongoDB基础知识点

MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongod…

c++ folly::baton

Baton folly::Baton 是 Facebook 开源的一个同步原语&#xff0c;它提供了一种简单而灵活的方式来进行线程间的同步。它属于 Folly 库&#xff0c;是 C 编程语言的一个组件。 Baton 通常用作线程间同步、等待、通知的标识符号&#xff0c;常用姿势是&#xff0c;一些线程调用…

正中优配:红筹股是啥意思?

随着我国经济的高速开展&#xff0c;越来越多的人开始参加到股票出资中。其中&#xff0c;红筹股作为一种特别类型的股票&#xff0c;备受一些出资者的关注&#xff0c;但对于一般出资者来说&#xff0c;红筹股详细含义还不是特别清楚。本文将从多个角度探讨红筹股的含义、特征…

分库分表知识大全及Sharding-JDBC实践

文章目录 一、为什么要分库分表1.1 什么是分库1.2 什么是分表1.3 为什么要分库1.3.1 磁盘存储1.3.2 并发连接支撑 1.4 为什么要分表 二、分库分表解决方案2.1 垂直&#xff08;纵向&#xff09;切分2.1.1 垂直切分优点2.1.2 垂直切分缺点 2.2 水平&#xff08;横向&#xff09;…

了解NAT

局域网内的终端是如何共用一个wan口来上网的&#xff1f; 主要通过NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;协议来实现的 NAT是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地…