AIGC代码学习记录

news2024/12/23 11:47:39

本文主要记录不同的SD模型代码中实现的一些细节,如text2img,img2img,inpaint等等

1. 文生图
第一步:生成随机的latent feature (n,4,64,64);n为生成的图片个数;
第二步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768)。后续用公式得到最终的噪声:在这里插入图片描述
第三步:生成时间步伐的特征(n,320);
第四步:latent feature放入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第五步:最终UNet输出的是噪声(n,4,64,64);
第六步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature
第七步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

2. 图生图
第一步:与文生图不同,这里的latent feature (n,4,64,64)不是随机生成的,是输入图片用VAE编码器得到的;注意这里有个系数strength,0表示对latent feature不加噪声,1表示加很多噪声完全摧毁原有的信息;
第二步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768)。
第三步:生成时间步伐的特征(n,320);
第四步:latent feature放入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第五步:最终UNet输出的是噪声(n,4,64,64);
第六步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature
第七步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

3. Inpainting
第一步:生成随机的latent feature (n,4,64,64);n为生成的图片个数;
第二步:得到mask img (n,3,512,512)和mask(n,1,512,512);
第三步:mask下采样到(n,1,64,64);mask img用编码器得到(n,4,64,64);把这两个cat起来得到c_cat (n,5,64,64);
第四步:对于prompt用clip生成特征,正向提示词的特征(n,77,768),反向提示词的特征(n,77,768);
第五步:生成时间步伐的特征(n,320);
第六步:把c_cat (n,5,64,64)和latent feature (n,4,64,64) 连接起来得到网络的输入 (n,9,64,64);也就是说输入UNet的xc是图像特征加上latent feature;而cc是prompt的特征,out = self.diffusion_model(xc, t, context=cc);如下图所示:4个latent feature+4个mask img feature+1 mask;
在这里插入图片描述
第七步:把上面这些输入UNet中,用cnn和多头注意提取特征并下采样,每次都要先加上时间特征,然后和提示词特征用交叉注意力生成新的特征;
第八步:最终UNet同样输出噪声(n,4,64,64);
第九步:根据之前文章的公式对latent feature (n,4,64,64)去燥,得到新的latent feature (n,4,64,64);不断的采样得到最终的latent feature;
第十步:最终的latent feature 放到VAE解码器中,放大8倍得到输出图片(n,3,512,512);

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

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

相关文章

python---使用celery分布式系统异步发送短信(云通讯)来验证登录

环境 requests2.32.3 Django2.1.15 celery5.4.0 redis3.4.1 django-redis4.11.0 djangorestframework3.11.0 djangorestframework-jwt1.11.0 eventlet0.36.1注:使用redis作为缓存,restframework框架,jwt token 2.celery异步配置 1.在项目的…

在LabVIEW中实现图像矫正

在LabVIEW中实现图像矫正,特别是将倾斜的笔记本图像(如左图)校正为正视图像(如右图),通常需要以下几个步骤: 1. 获取图像 使用图像采集设备或加载图像文件来获取图像数据。 2. 图像预处理 对…

2024-07-19 Unity插件 Odin Inspector10 —— Misc Attributes

文章目录 1 说明2 其他特性2.1 CustomContextMenu2.2 DisableContextMenu2.3 DrawWithUnity2.4 HideDuplicateReferenceBox2.5 Indent2.6 InfoBox2.7 InlineProperty2.8 LabelText2.9 LabelWidth2.10 OnCollectionChanged2.11 OnInspectorDispose2.12 OnInspectorGUI2.13 OnIns…

TeamViewer手机端APP提示:请先验证账户

当你在手机端下载安装了TeamViewerAPP后,需要你先登录个人账号,然后还会要求你验证账户,同时跳转到一个网址中,但是这个网址并没有自动跳转到验证账户的位置。 解决办法: 在手机浏览器中进入下面这个网址:…

时序数据库如何选型?详细指标总结!

工业物联网场景,如何判断什么才是好的时序数据库? 工业物联网将机器设备、控制系统与信息系统、业务过程连接起来,利用海量数据进行分析决策,是智能制造的基础设施,并影响整个工业价值链。工业物联网机器设备感知形成了…

ubuntu 24 PXE Server (bios+uefi) 批量部署系统

pxe server 前言 PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,…

以Zookeeper为例 浅谈脑裂与奇数节点问题

一、脑裂现象的定义与影响 脑裂(split-brain)是指在分布式系统中,因网络分区或其他故障导致系统被切割成两个或多个相互独立的子系统,每个子系统可能独立选举出自己的领导节点。这一现象在依赖中心领导节点(如Elastic…

MVC架构在Web开发中的实现

MVC架构在Web开发中的实现 1、MVC架构概述2、MVC架构的实现 💖The Begin💖点点关注,收藏不迷路💖 在Web开发领域,MVC(Model-View-Controller)架构模式是一种广泛使用的软件设计模式&#xff0c…

数据可视化配色新工具,颜色盘多达2500+类

好看的配色,不仅能让图表突出主要信息,更能吸引读者,之前分享过很多配色工具,例如, 👉可视化配色工具:颜色盘多达3000+类,数万种颜色! 本次再分享一个配色工具pypalettes,颜色盘多达2500+类。 安装pypalettes pip install pypalettes pypalettes使用 第1步,挑选…

在VS Code上搭建Vue项目教程(Vue-cli 脚手架)

1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境,就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1)具体安装步骤操作即可: npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…

哪种SSL证书可以快速签发保护http安全访问?

用户访问网站,经常会遇到访问http网页时,提示网站不安全或者不是私密连接的提示,因为http是使用明文传输,数据传输中可能被篡改,数据不被保护,通常需要SSL证书来给数据加密。 SSL证书的签发速度&#xff0…

Selenium之execute_script()方法执行js脚本

目录 场景应用和使用 页面滚动 获取返回值 返回JavaScript定位的元素对象 修改元素属性 弹出提示框 场景应用和使用 在自动化测试中,部分场景无法使用自动化Selenium原生方法来进行测试: 滚动到某个元素(位置) 修改…

数据分析入门指南:数据库入门(五)

本文将总结CDA认证考试中数据库中部分知识点,内容来源于《CDA模拟题库与备考资料PPT》 。 CDA认证,作为源自中国、面向全球的专业技能认证,覆盖金融、电信、零售、制造、能源、医疗医药、旅游、咨询等多个行业,旨在培养能够胜任数…

STM32 TIM定时器从模式控制器

TIM 从模式控制器 从模式控制器控制框图 从机模式 /** defgroup TIM_Slave_Mode TIM Slave mode* {*/ #define TIM_SLAVEMODE_DISABLE 0x00000000U /*!< Slave mode disabled */ #define TIM_SLAVEMOD…

IDEA创建Java工程、Maven安装与建立工程、Web工程、Tomcat配置

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …

[C++]优先级队列

1 .了解优先级队列 优先级队列是一种容器适配器&#xff0c;根据一些严格的弱排序标准&#xff0c;专门设计使其第一个元素始终是它所包含的元素中最大的元素。 此上下文类似于堆&#xff0c;其中可以随时插入元素&#xff0c;并且只能检索最大堆元素&#xff08;优先级队列中顶…

idea2019版本创建JavaWeb项目并配置Tomcat步骤

一、创建JavaWeb项目 1.新建项目File->New->Project 2. 选择JavaWeb应用在New Project窗口中选择Java后勾选Java EE中的Web Application后点击next即可 3.设置项目名称后点击finish即可 4.至此项目创建完成&#xff0c;检查文件是否齐全&#xff0c;开始配置Tomcat 二、…

【iOS】——消息传递底层实现

消息传递是什么 Objective-C是一种动态类型语言&#xff0c;这意味着在编译时并不确定对象的具体类型&#xff0c;而是在运行时决定。消息传递机制允许程序在运行时向对象发送消息&#xff0c;对象再决定如何响应这些消息。 当你通过对象调用方法时&#xff0c;例如像这样[ob…

React 从入门到实战 一一开发环境基础搭建(小白篇)

React 从入门到实战一一开发环境基础搭建&#xff08;小白篇&#xff09; React 介绍什么是 react &#xff1f;react 主要功能react 框架特点 开发工具渲染测试 React 介绍 最近两年&#xff0c;react 也愈来愈火热&#xff0c;想要在里面分一杯羹&#xff0c;那肯定逃不过 r…

CentOS 7开启SSH连接

1. 安装openssh-server 1.1 检查是否安装openssh-server服务 yum list installed | grep openssh-server如果有显示内容&#xff0c;则已安装跳过安装步骤&#xff0c;否则进行第2步 1.2 安装openssh-server yum install openssh-server2. 开启SSH 22监听端口 2.1 打开ssh…