【AIGC】PULID:对比对齐的ID定制化技术

论文链接:https://arxiv.org/pdf/2404.16022

github:https://github.com/ToTheBeginning/PuLID

comfyui节点:GitHub - cubiq/PuLID_ComfyUI: PuLID native implementation for ComfyUI

论文亮点

  1. 增加了对比对齐loss和ID loss,最大限度减少对源模型的破坏并保证高保真

  2. 提示词可以很好的引导生成过程

论文详解

前置知识

扩散模型的loss

 

 扩散模型结构主要由resnet block,self attention和cross attention组成

 交叉注意力

 

ID作为另一个条件嵌入到网络中

        不需要微调的ID特征提取模型CLIP图像编码器,Arcface图像识别骨干模型加上可学习的头。将ID嵌入到基础图生图模型的有效方式是加一个平行的交叉注意力层。在这个可学习的线性层中,ID被映射为Kid和Vid,与主干网络中的Q做注意力计算。这项技术最早被ipadapter提出来。

        本文同时使用了ARcface和Clip图像编码器,通过两个编码器后,分别使用MLP网络对其进行映射,并对两个向量进行了拼接。

网络结构

ID层的嵌入

ID层的嵌入会从两个方面破坏原始文生图模型

  1. 与没有ID嵌入之前相比,生成元素发生了大量的变化,例如背景,光线,构图和风格

  2. 失去提示词的控制特性,导致我们很难通过提示词改变ID属性,方向和插件

        在训练过程中,提示词和id是对齐的,测试时,会改变提示词,此时ID和提示词不在对齐,会存在偏置情况。

        通过对比对齐方法插入未受污染的ID,在朱分支中在插入一个没有插入ID的分支。

 

        训练期间,在预先准备的一些提示词模板中随即挑选一个作为文本条件,对齐是在所有层和时间步上进行的。

 语义对齐loss

 

 解释,就是一个Attention(K,Q,Q),两个路径的插值越小,表明ID嵌入对基础UNet的影响越小。但仅此一项并不能保证布局的一致性,所以需要加一项loss

 

 总的对齐loss

 

 ID Loss

 

 总的学习目标

 

实验细节 

         ID Encoder使用antelopev2作为人脸识别模型和EVA-CLIP作为CLIP图像编码器。x训练数据集是150万高质量图片,图片由BLIP-2反推打标。训练分为3个阶段;第一阶段,使用Ldiff训练传统扩散loss;第二阶段,我们在第一阶段的基础上训练ID loss(使用arcface-50来计算loss)和Ldiff;第三阶段,加入Lalign并使用全部的目标损失,设置lambda(align-layout)为0.1,lambda(id)为1.生图分辨率设置为768*768。训练是在8张A100上进行的。

效果对比 

 

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

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

相关文章

MoE 大模型的前世今生

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

【TB作品】MSP430G2553单片机读取DS18B20温度传感器,OLED显示

功能 MSP430G2553单片机读取DS18B20 0.96寸 IIC 四针OLED 部分程序 uint temp_value 0; /* 温度 */ int main(void) {unsigned char xianshi[10];WDTCTL WDTPW WDTHOLD; /* Stop WDT */OLED_Init(); /* OLED初始化 *///显示汉字 温度:摄氏度OLED_ShowCHinese(…

Socket编程学习笔记之TCP与UDP

Socket: Socket是什么呢? 是一套用于不同主机间通讯的API,是应用层与TCP/IP协议族通信的中间软件抽象层。 是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面&#…

npm install 出错,‘proxy‘ config is set properly. See: ‘npm help config‘

背景 从远程clone下项目之后,使用命令 npm install 安装依赖,报错如下 意为: 报错: npm犯错!network与网络连通性有关的问题。 npm犯错!网络在大多数情况下,你背后的代理或有坏的网络设置。 npm犯错!网络 npm犯错…

C++基础与深度解析 | 类进阶 | 运算符重载 | 类的继承 | 虚函数

文章目录 一、运算符重载二、类的继承1.类的继承2.虚函数 一、运算符重载 在C中,operator关键字用于重载运算符,使得类的实例可以使用内置的操作符(如、-、*、/等)进行操作。 运算符重载的特性: 重载不能发明新的运算…

Fast-Retry:一个支持百万级多任务异步重试框架【送源码】

前言 假设你的系统里有100万个用户,然后你要轮询重试的获取每个用户的身份信息, 如果你还在使用SpringRetry和GuavaRetry 之类的这种单任务的同步重试框架,那你可能到猴年马月也处理不完,即使加再多的机器和线程也是杯水车薪,而F…

6.4 cf E(题目难理解)

Problem - E - Codeforces 翻译: 小车在0点,时间为0时开始移动,从0,a1,a2......ak有k1个标志点,对应的时间为0,b1,b2...bk 在任意两个标志间,小车以匀速行驶,所以 vai1​−ai​​…

SpringBoot 统一返回格式

目录 一、为什么要统一返回? 二、全局异常处理代码 三、统一返回对象代码 四、使用方法 五、结果展示 一、为什么要统一返回? 在Spring Boot应用中,为了保持API接口的响应格式统一,通常会采用全局异常处理和自定义返回对象的方…

Sd-CDA (自退化对比域适应框架):解决工业故障诊断中数据不平衡问题

现代工业故障诊断任务常常面临分布差异和双不平衡的双重挑战。现有的域适应方法很少关注普遍存在的双不平衡问题,导致域适应性能差或甚至产生负面迁移。在这项工作中,提出了一种自降级对比域适应(SdCDA)诊断框架,用于处…

如何实现单例模式及不同实现方法分析-设计模式

这是 一道面试常考题:(经常会在面试中让手写一下) 什么是单例模式 【问什么是单例模式时,不要答非所问,给出单例模式有两种类型之类的回答,要围绕单例模式的定义去展开。】 单例模式是指在内存中只会创建…

Nginx location 与 Rewrite

Nginx正则表达式 location 通过前缀或正则匹配用户的URL访问路径做页面跳转、访问控制和代理转发 location 大致可以分为三类: 精准匹配:location / {...} 一般匹配:location / {...} 正则匹配:location ~ / {...} location…

外汇天眼:Bitpanda 扩大与德意志银行的合作

金融科技独角兽Bitpanda正在扩大与德意志银行的合作,为德国用户提供实时支付解决方案,以处理进出交易。 这种基于API的账户解决方案将使Bitpanda能够访问德国的IBAN账户,优化和增强用户体验,同时确保信任、速度和效率。 这只是Bi…

通过仪器分类方式修订看监测仪器发展新趋势

随着科技的进步和监测需求的不断升级,监测仪器的分类方式亟需与时俱进。本文旨在探讨《混凝土坝监测仪器系列型谱》中对现有仪器分类方式的修订,以及监测仪器发展的新趋势相关内容。 一、仪器分类方式的修订 传统的仪器分类方式往往基于功能、原理或应用…

太极图形课——渲染——光线追踪实战第一部分呢

根据概念部分我们逐步通过太极实现光线追踪 总共可以分为5步 第一步:如何发射出一道光? 首先明确何为一道光,光从我们眼睛(摄像机)射出,那么在三维虚拟世界里,我们可以认为这道光就是一条射线…

【微信小程序】事件绑定和事件对象

文章目录 1.什么是事件绑定2.button组件3.事件绑定4.input组件 1.什么是事件绑定 小程序中绑定事件与在网页开发中绑定事件几乎一致,只不过在小程序不能通过on的方式绑定事件,也没有click等事件,小程序中 绑定事件使用bind方法,c…

6个音效、配乐素材网站,免费可商用

视频剪辑必备的6个音效、配乐素材网站,免费下载,剪辑师们赶紧收藏! 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库音效素材免费下载。站内不仅有大量音频素材,还有很多设计、办公、图片、视频等素材。音频素材全部都…

2024年端午节放假通知

致尊敬的客户以及全体同仁: 2024年端午节将至,根据国务院办公厅通知精神,结合公司的实际情况,现将放假事宜通知如下: 2024年6月8日(星期六)至6月10日(星期一)&#xff…

Linux文本处理三剑客之awk命令

官方文档:https://www.gnu.org/software/gawk/manual/gawk.html 什么是awk? Awk是一种文本处理工具,它的名字是由其三位创始人(Aho、Weinberger和Kernighan)的姓氏首字母组成的。Awk的设计初衷是用于处理结构化文本数…

Spring boot实现基于注解的aop面向切面编程

Spring boot实现基于注解的aop面向切面编程 背景 从最开始使用Spring,AOP和IOC的理念就深入我心。正好,我需要写一个基于注解的AOP,被这个注解修饰的参数和属性,就会被拿到参数并校验参数。 一,引入依赖 当前sprin…

OBD诊断协议

上周领导需要做个OBD相关的功能,我对OBD没有啥概念,于是周末就了解下这到底是个啥东西。了解过后发现很简单,其实就是个UDS协议的简化版,OBD是英文On-Board Diagnostics的缩写,中文翻译为“车载自动诊断系统”&#xf…