stable diffusion实践操作-SD原理

系列文章目录

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


文章目录

  • 系列文章目录
  • 前言
  • 一、原理说明
    • 1.1、出图原理
      • 1.1.1 AI画画不是和人一样,从0开始,而是一个去噪点的过程:
      • 1.1.2 逆向去噪
      • 1.1.3 AI如何学会去噪点的
    • 1.2、出图机制
      • 1.2.1 文字编码 CLIP
      • 1.2.2 图片绘制
        • 1.2.2.1 随机种子和采样器
        • 1.2.2.2 迭代步数
        • 1.2.2.3 采样方法
      • 1.2.3放大图片
  • 总结


前言

(后期补充)


一、原理说明

1.1、出图原理

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

在这里插入图片描述

1.1.2 逆向去噪

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

1.1.3 AI如何学会去噪点的

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

1.2、出图机制

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

1.2.1 文字编码 CLIP

计算机不能直接理解文本和图片
在这里插入图片描述
而是通过特征向量来标记
在这里插入图片描述
而这一项工作是通过CLIP模型来完成的
在这里插入图片描述
在这里插入图片描述

clip模型包括文字编码器和图片编码器,将文字和图片都编码成向量
在这里插入图片描述
所以CLIP设置的层数越高,图片和文字相关度越低,一般设置为2就可以了。

1.2.2 图片绘制

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

1.2.2.1 随机种子和采样器

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

1.2.2.2 迭代步数

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


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

1.2.2.3 采样方法

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

1.2.3放大图片

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

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


总结

例如:以上就是今天要讲的内容。

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

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

相关文章

华为云云服务器评测|详解 Nacos 安装部署

环境配置 服务器云耀云服务器L操作系统CentOS 7.9 64bit | 公共镜像JDK64 bit JDK 1.8MavenMaven 3.2.xnacos-server2.2.3 下载地址 官方githubRelease 2.2.3 (May 25th, 2023) alibaba/nacos GitHub百度网盘链接:https://pan.baidu.com/s/1K8UE6iJL2ZnosUY83b…

金鸣识别名片识别模块 ,名片扫描仪的神仙“伴侣”

名片扫描仪是现代办公中常见的设备,其作用是将纸质名片转换为电子格式并进行识别。在实现这一功能方面,使用自带OCR功能和金鸣识别两种方式均具有各自的优势。 一方面,自带OCR功能的名片扫描仪具有便捷性和即时性的优势。通过设备内置的OCR技…

Qt Creator使用Clang Format方法

Qt Creator使用Clang Format 习惯性的想格式化代码,发现Qt Creator默认居然是没有代码格式化的,只有一个缩进。 Qt Creater中有个插件:beautifier,在"帮助->关于"插件中,开启“Beautifier”即可&#xf…

CSS内联样式与外联样式

第一种内联样式 通过HTML元素的style属性来设置CSS样式&#xff0c;语法如下: style"css属性:css属性值;"示例代码: <!DOCTYPE html> <html><head><title>01_第一种使用方式.html</title></head><body><!-- style&q…

[PHP]empty一直返回true

class Post {public function __get($key){return true;} }$post new Post(); var_dump(empty($post->a));// bool(true) PHP: 重载 - Manual 读取不可访问&#xff08;protected 或 private&#xff09;或不存在的属性的值时&#xff0c;__get() 会被调用。 当对不可访…

开源库网格算法比较

对于Mesh&#xff0c;我们通常分为结构化网格和非结构化网格。理解很简单&#xff0c;除了四边形和六面体是结构化网格&#xff0c;其它都是非结构化网格 最近在学习网格算法&#xff0c;本人关心的主要是3D网格相关的算法&#xff0c;总结了一下主要包括&#xff1a;网格生成…

删除单链表偶数节点

本题要求实现两个函数&#xff0c;分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下&#xff1a; struct ListNode { int data; struct ListNode *next; }; 函数接口定义&#xff1a; struct ListNode *createlist(); struct ListNode *deleteeven( …

Git的安装以及基础使用方法

Git是一种分布式版本控制系统&#xff0c;被广泛用于管理代码、文档和任何其他类型的数据。它允许开发者在团队中协作&#xff0c;并且在处理大型项目时可以保持代码的完整性。 这里写目录标题 一、安装和设置二、基本的Git命令三、分支和合并四、标签和远程仓库 一、安装和设置…

架构师spring boot 面试题

spring boot 微服务有哪些特点&#xff1f; Spring Boot 微服务具有以下特点&#xff1a; 独立性&#xff1a;每个微服务都是独立的部署单元&#xff0c;有自己的代码库和数据库。这使得微服务可以独立开发、测试、部署和扩展。 分布式&#xff1a;微服务架构将一个大型应用程…

pdf怎么转换成jpg图片?

随着数字文档的广泛应用&#xff0c;将PDF转换为JPG图片格式成为了一个常见的需求。无论是为了在网页上展示内容&#xff0c;还是为了与他人分享图片&#xff0c;以下是一些简单的方法&#xff0c;帮助您将PDF文件快速转换为高质量的JPG图片。 方法一&#xff1a;在线PDF转JPG…

手写Mybatis:第12章-完善ORM框架,增删改查操作

文章目录 一、目标&#xff1a;完善增删改查二、设计&#xff1a;完善增删改查三、实现&#xff1a;完善增删改查3.1 工程结构3.2 完善增删改查类图3.3 扩展解析元素3.4 新增执行方法3.4.1 执行器接口添加update3.4.2 执行器抽象基类3.4.3 简单执行器 3.5 语句处理器实现3.5.1 …

Nginx - 根据请求参数路由进行不同的响应

文章目录 需求思路 需求 业务有一个统一入口 /api/biz?type1 /api/biz/type2需要对不同的接口实现流控 最常见的是通过location进行路径匹配的时候&#xff0c;但是无法使用正则表达一起捕获这个路径和querstring的参数。如果我们想通过URL里面的Query String进行不同的rew…

ChatGPT 插件 “Consensus“ 实现论文搜索功能;数据工程在语言建模中的重要性

&#x1f989; AI新闻 &#x1f680; ChatGPT 插件 “Consensus” 实现论文搜索功能 摘要&#xff1a;OpenAI 推出了一个名为 “Consensus” 的插件&#xff0c;可在 ChatGPT 上进行论文搜索。用户只需用一句话描述自己想了解的问题&#xff0c;插件就能从 2 亿篇论文中搜索并…

关于unordered_map中元素的插入顺序与遍历顺序问题

最近做一个项目遇到一个问题困扰我两天,差点自闭。经排查是 插入到unordered_map中的键值对的顺序和实际的键值对存在的顺序没有关系 众所周知,unordered_map插入元素后,键值不会自动排序,但是顺序却不一定和插入顺序一致。msvc和gcc编译器也各不相同。 std::unordered_map&l…

使用Puppeteer爬取地图上的用户评价和评论

导语 在互联网时代&#xff0c;获取用户的反馈和意见是非常重要的&#xff0c;它可以帮助我们了解用户的需求和喜好&#xff0c;提高我们的产品和服务质量。有时候&#xff0c;我们需要从地图上爬取用户对某些地点或商家的评价和评论&#xff0c;这样我们就可以分析用户对不同…

Java方法的使用

目录 一、方法的概念及使用 二、方法的重载 三、递归 一、方法的概念及使用 1、方法的概念 2、方法定义 3、方法调用的执行过程 4、实参和形参的关系(重要) 5、没有返回值的方法 二、方法的重载 三、递归 1、递归的概念 一、方法的概念及使用 1、方法的概念 方法…

java八股文面试[数据库]——InnoDB与MyISAM的区别

InnoDB和MyISAM是使用MySQL时最常用的两种引擎类型&#xff0c;我们重点来看下两者区别。 事务和外键 InnoDB支持事务和外键&#xff0c;支持回滚&#xff0c;具有安全性和完整性&#xff0c;适合大量insert或update操作 MyISAM不支持事务和外键&#xff0c;它提供高速存储和…

ElementUI浅尝辄止29:Breadcrumb 面包屑

显示当前页面的路径&#xff0c;快速返回之前的任意页面。 1.如何使用&#xff1f; 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级。Element 提供了一个separator属性&#xff0c;在el-breadcrumb标签中设置它来决定分隔符&#xff0c;它只能是字符串&am…

Ue5 C++ metahuman

#创建metahuman# 参考官网&#xff1a; 创建MetaHuman | Epic Developer Community (epicgames.com) #在UE中怎么找到metahuman# 参考&#xff1a; Quixel Bridge中的MetaHuman | Epic Developer Community (epicgames.com) #将metahuman 导入到UE中# 参考&#xff1a;导出…

前端技术搭建五子棋游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了拼图游戏&#xff0c;今天还是继续按照我们原定的节奏来带领大家完成一个五子棋游戏&#xff0c;功能也比较简单简单&#xff0c;也…