[TI] [Textual Inversion] An image is worth an word

2023-09-18 20:45:34

自己的理解:

根据几个图像,找出来一个关键字可以代表它们,然后我们可以再用这个关键字去生成新的东西。

提出关键字

1 Introduction

word->token->embedding

Textual Inversion过程

需要:

① a fixed, pre-trained text-to-image model (一个固定的预训练模型)

② a small image set depicting the concept(一个描述概念的小图像集)

目标:

find a single word embedding, such that "A photo of S*" will lead to the reconstructions of images from our small set

3 Method

LDM

包含两个核心组件:

1.AutoEncoder

Encoder,把

Decoder

2.Diffusion Model

LDM Loss

 

 

Text embedding

典型的文本编码器(例如 BERT)都从文本处理步骤开始

word (in a input string) convert to a token ( an index in some pre-defined dictionary某个预定义词典中的索引)

构建一个词汇表,包含数据集中出现的所有唯一token,通常是一个字典,将每个token映射到唯一的整数ID。

②each token then linked to a embedding vector (可以通过基于索引的查找来检索。)

对于每个token,使用词汇表的ID可以查找其对应的 embedding vector。

③learned as part of the text encoder c_{\theta}

in our work

定义一个 placeholder string S_*,表示我们想要学习的 new concept

干涉 embedding process,用 embedding v_* 取代 与标记符相关的向量(本质上是把这个词注入到我们的词典中)

小结:

一串字符串文本,它的每个词可以通过 分词器 变为若干个 token,每个token可以映射到一个词向量,我们通过干预它映射词向量的过程,学得一个可以代表新特征的伪词。

Text Inversion

用 3-5张图片 depict 目标概念。

通过直接优化的方式,最小化 LDM loss,就可以找到 v_*

优化目标:

保持 \epsilon_{\theta} ,c_{\theta} 不变,重新训练LDM,来找到 V_*

小结:

通过几张图片输入到网络中,依据LDM loss,固定某些参数不变,来找到最合适的 V_*

参考资料:

Textual Inversion · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub

更多推荐

Base64、AES、MD5的区别与应用

最近有个加密的需求,想起以前做过的验签、加密等内容,就一起总结一下吧,具体的技术细节就不展开了,我们只讨论核心以及如何应用Base64一句话解释就是用来将二进制数据进行文本化显示的编码方式想了解base64就一定要先了解什么是字符集字符集是由a-z,A-Z,0-9以及+/一共64个常见字符组成的,2*6=64(其实还有

SpringBoot运行原理

目录@SpringBootApplication@ComponentScan@SpringBootConfiguration@EnableAutoConfiguration结论@SpringbootApplication(主入口)@SpringBootApplicationpublicclassSpringbootCo

电力安全智慧云平台:引领更安全的用电新时

电力能源是人类社会不可或缺的重要资源,其安全稳定供应关系到各行各业的正常运转和千家万户的生活质量。然而,随着电力使用的普及,电力安全问题也日益凸显,一旦发生电力事故,不仅会造成巨大的经济损失,还会对人们的生命安全构成严重威胁。因此,如何保障电力安全已成为全社会共同关注的焦点。近年来,随着云计算、大数据、人工智能等新一代

【云计算】虚拟私有云 VPC

虚拟私有云VPC1.前言1.1基本介绍1.2VPC的作用1.3VPC的适用人群2.VPC基本概念2.1VPC相关基本概念2.2其他相关基本概念3.VPC通信场景3.1VPC内部互通3.2VPC间互通3.2.1对等连接3.2.2TransitGateway或者云联网3.3访问Internet3.3.1Internet网关

详解API接口如何安全的传输数据

概述API接口的安全传输是确保数据在API请求和响应之间的传输过程中不被截获、篡改或泄露的重要步骤。以下是一些用于增强API接口安全传输的常见技术和最佳实践:使用HTTPS:使用HTTPS协议而不是HTTP,以确保数据在传输过程中的安全性。HTTPS使用SSL/TLS协议对通信进行加密,防止中间人攻击和数据窃听。验证H

系统架构设计师-数据库系统(1)

目录一、数据库模式1、集中式数据库2、分布式数据库二、数据库设计过程1、E-R模型2、概念结构设计3、逻辑结构设计三、关系代数1、并交差2、投影和选择3、笛卡尔积4、自然连接一、数据库模式1、集中式数据库三级模式:(1)外模式:用户模式-视图级(2)概念模式:模式-表级(3)内模式:存储模式-文件级两级映射:(1)外模

golang实现远程控制主机

文章目录ssh原理使用golang远程下发命令使用golang远程传输文件ssh原理说到ssh原理个人觉得解释最全的一张图是这张华为画的Connectionestablishment这一步就是建立tcp连接versionnegotiation这一步是ssh客户端(连接者)和被ssh服务端(连接者)进行协议的交换,比如s

JVM面试题(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、内存模型以及分区,需要详细到每个区放什么。二、堆里面的分区:Eden,survival(from+to),老年代,各自的特点。三、对象创建方法,对象的内存分配,对象的访问定位。四、GC的两种判定方法:五、SafePoint是什么六、GC的三

JVM面试题-JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

对象内存分配的两种方式指针碰撞适用场合:堆内存规整(即没有内存碎片)的情况下。原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界指针,只需要向着没用过的内存方向将该指针移动对象内存大小位置即可。使用该分配方式的GC收集器:Serial,ParNew空闲列表适用场合:堆内存不规整的情况下。原理:虚拟

解决npm install遇到的问题:Error while executing:

目录一、遇到问题二、解决办法方法一方法二方法三方法四一、遇到问题npmERR!Errorwhileexecuting:npmERR!D:\IT_base\git\Git\cmd\git.EXEls-remote-h-tssh://git@github.com/sohee-lee7/Squire.gitnpmERR!np

Python爬虫如何使用代理IP进行抓取

前言Python爬虫是一种非常强大的工具,可以用于抓取各种网站的数据。但是,在一些情况下,我们需要使用代理IP来完成数据抓取,如绕过IP限制或保护隐私信息等。本文将介绍如何使用Python爬虫抓取数据时使用代理IP,并提供示例代码和注意事项。一、什么是代理IP代理IP是一种充当客户端和服务器之间中间人的IP地址。客户端

热文推荐