当前位置: 首页 > news >正文

【论文笔记】| 定制化生成PuLID

PuLID: Pure and Lightning ID Customization via Contrastive Alignment

ByteDance, arXiv:2404.16022v1
Theme: Customized generation
原文链接:https://arxiv.org/pdf/2404.16022

Main Work

提出了 Pure 和 Lightning ID 定制 (PuLID),这是一种用于文本到图像生成的一种新颖的无调整 ID 定制方法。通过将Lightning T2I分支与标准扩散分支相结合,PuLID引入了对比对齐损失和准确的ID损失,最大限度地减少对原始模型的破坏,并确保较高的ID保真度。

ID插入前后图像元素(如背景、照明、组成和样式)尽可能地保持一致。

BackGround

作为定制文本到图像 (T2I) 生成的特殊类别,identity(ID)定制允许用户调整预训练的 T2I 扩散模型以与其个性化 ID 对齐。

  • Tuning-based Text-to-image ID Customization. 用用户提供的相同ID在几个图像上微调某些参数,从而将ID嵌入到生成模型中(计算成本高)
  • Tuning-free Text-to-image ID Customization. 在扩展肖像数据集上预训练ID适配器,使用编码器来提取 ID 特征。然后将提取的特征以特定方式集成到基本扩散模型中(例如,嵌入到交叉注意力层中)。但这种方法面临两种挑战(其实就是如何去平衡加入的ID强度):
    • Insertion of ID disrupts the original model’s behavior.
      1. 首先,理想的ID插入应该只改变与ID相关的方面(迁移粒度),如人脸、发型和肤色,而图像元素不直接与特定身份相关联,如背景、光照、组成和风格,应该与原始模型的行为一致。
      2. 其次,在 ID 插入之后,它仍然应该保留原始 T2I 模型遵循提示的能力(编辑能力)。在 ID 定制的背景下,这通常意味着通过提示改变 ID 属性(例如年龄、性别、表情和头发)、方向和配件(例如眼镜)的能力。
    • Lack of ID fidelity. Diffusion Model引入ID Loss的难度,当前仅在噪声较小的时间步计算 ID 损失或使用额外的推理步骤预测 x 0 x_0 x0,但仍有改进的空间。

作者在标准的扩散去噪训练分支旁边引入了一个Lightning T2I分支。利用最近的快速采样方法,Lightning T2I分支可以从具有有限和可管理步数的纯噪声生成高质量的图像。通过这个额外的分支,可以同时解决上述两个挑战。在这个分支中,作者结合了对比对齐损失和 ID 损失,以最小化原始模型上 ID 信息的污染,同时确保保真度。

Method

在这里插入图片描述

框架的上半部分展示了传统的扩散训练过程。从同一图像中提取的面部被用作ID条件信息输入。

框架的下半部分展示了PuLID(Text-to-Image)训练分支。该分支利用最近的快速采样方法,通过几次迭代(本文中为4步)从纯噪声逐步去噪到生成高质量的图像。在这个分支中,构建了有和没有ID-Embedding嵌入的对比路径。同时引入了对齐损失,用于控制模型如何在不干扰原始模型行为的情况下插入ID条件。

总的损失函数为:

L = L d i f f + L a l i g n + λ i d L i d . \mathcal{L}=\mathcal{L}_{\mathrm{diff}}+\mathcal{L}_{\mathrm{align}}+\lambda_{\mathrm{id}}\mathcal{L}_{\mathrm{id}}. L=Ldiff+Lalign+λidLid.

1. ID embedding的引入

在扩散过程中,根据预定义的噪声调度对噪声ε进行采样并添加到数据样本 x 0 x_0 x0中。这个过程在时间步 t t t产生一个噪声样本 x t x_t xt。相反,在去噪过程中,去噪模型 ε θ ε_θ εθ x t x_t xt t t t 和可选的附加条件 C C C作为输入来预测添加的噪声,优化过程可以表示为:

L d i f f = E x 0 , ϵ , t ( ∥ ϵ − ϵ θ ( x t , t , C ) ∥ ) . \mathcal{L}_{\mathrm{diff}}=\mathrm{E}_{x_0,\epsilon,t}(\|\epsilon-\epsilon_\theta(x_t,t,C)\|). Ldiff=Ex0,ϵ,t(ϵϵθ(xt,t,C)).

ε θ ε_θ εθ主要由残差网络、自我注意层和交叉注意层组成的UNET。提示作为一种条件,嵌入到遵循注意力机制的交叉注意力层中。ID条件 C i d C_{id} Cid通常是从目标图像x0中裁剪出来的。在这种情况下,ID条件与提示和UNET特征完全对齐,意味着在训练过程中,ID条件并不构成对T2I扩散模型的污染,本质上还是一个重建训练任务。

{ Attention ( Q , K , V ) = Softmax ( Q K T d ) V K = W K τ t x t ( C t x t ) ; V = W V τ t x t ( C t x t ) , \left\{\begin{array}{l}\text{Attention}(Q,K,V)=\text{Softmax}(\frac{QK^T}{\sqrt{d}})V\\K=\text{W}_K\tau_{txt}(C_{txt});V=\text{W}_V\tau_{txt}(C_{txt}),\end{array}\right. {Attention(Q,K,V)=Softmax(d QKT)VK=WKτtxt(Ctxt);V=WVτtxt(Ctxt),

Q \mathrm{Q} Q 从 UNET 图像特征中投影, τ t x t \tau_{txt} τtxt 表示一个预训练的语言模型,将提示 C t x t C_{txt} Ctxt 转换为文本特征, W K \mathbf{W}_K WK W V \mathbf{W}_V WV 是可学习的线性层。

在测试过程中,当我们提供与ID条件发生冲突或未对齐的提示语,例如改变ID属性或更换风格时,这些方法往往会失败。

2. 通过对比对齐实现无污染的ID引入

文章中提出了一种直观的解决方案,即在常规的扩散去噪训练分支之外引入一个 Lightning T2I 训练分支。与测试设置类似,Lightning T2I分支从纯噪声开始,并通过完整的迭代去噪步骤直到达到 x 0 x_0 x0,可以观察到嵌入ID后图像的元素是否发生变化,以及它是否仍然具有提示跟随能力。并且需要的迭代次数是有限且可控的。

作者使用具有 4 个去噪步骤的 SDXL-Lightning,并准备了一个具有挑战性的提示列表,可以很容易地揭示污染

作者构建了从同一提示和初始潜在开始的对比路径。

  • 一条路径仅由提示为条件,UNET 特征表示为 Q t Q_t Qt
  • 另一条路径同时使用 ID 和提示作为条件,UNET 特征表示为 Q t i d Q _{tid} Qtid

通过在语义上对齐这两个路径上的UNET特征,该模型将学习如何在不影响原始模型行为的情况下嵌入ID。实际上,对齐是在所有层和时间步上进行的。

核心通过构建对齐损失来解决:对齐损失由两个组成部分构成:语义对齐损失(Lalign-sem)和布局对齐损失(Lalign-layout)。我们使用文本特征K来查询UNET特征Q。对于K中的每个token,它将计算与Q的相关性,并进一步基于相关性矩阵聚合Q。这里的注意力机制可以表示为 A t t e n t i o n ( K , Q , Q ) Attention(K, Q, Q) Attention(K,Q,Q),可以解释为UNET 特征对提示的响应

语义对齐损失背后的洞察力很简单:如果 ID 的嵌入不影响原始模型的行为,那么 UNET 特征对提示的响应应该在两条路径中是相似的。

L align-sem = ∥ Softmax ( K Q t i d T d ) Q t i d − Softmax ( K Q t T d ) Q t ∥ 2 . \mathcal{L}_{\text{align-sem}}=\left\|\text{Softmax}(\frac{KQ_{tid}^T}{\sqrt{d}})Q_{tid}-\text{Softmax}(\frac{KQ_t^T}{\sqrt{d}})Q_t\right\|_2. Lalign-sem= Softmax(d KQtidT)QtidSoftmax(d KQtT)Qt 2.

Lalign-sem的引入显著减轻了ID信息污染模型行为的问题。然而,它不能保证布局的一致性,因此增加了一个布局对齐损失Lalign-layout,其定义如下:

L align-layout = ∥ Q t i d − Q t ∥ 2 . \mathcal{L}_{\text{align-layout}}=\left\|Q_{tid}-Q_t\right\|_2. Lalign-layout=QtidQt2.

最终完整损失函数的构建为:

L a l i g n = λ a l i g n − s e m L a l i g n − s e m + λ a l i g n − l a y o u t L a l i g n − l a y o u t , \mathcal{L}_{\mathrm{align}}=\lambda_{\mathrm{align-sem}}\mathcal{L}_{\mathrm{align-sem}}+\lambda_{\mathrm{align-layout}}\mathcal{L}_{\mathrm{align-layout}}, Lalign=λalignsemLalignsem+λalignlayoutLalignlayout,

3. 更准确的ID保真损失函数

在训练期间引入 ID 损失,但仅使用单步直接预测扩散训练过程中第 t 个时间步的 x 0 x_0 x0,这将产生嘈杂且有缺陷的预测 x 0 x_0 x0,从而导致 ID 损失的计算不准确。因此一般仅在噪声较小的阶段应用 ID 损失。但如果只计算部分时间步长,会影响全部有效性。

本实验在引入的 Lightning T2I 分支上计算ID损失 L i d \mathcal{L}_{\mathrm{id}} Lid,定义为:

L i d = C o s S i m ( ϕ ( C i d ) , ϕ ( L − T 2 I ( x T , C i d , C t x t ) ) ) , \mathcal{L}_{\mathrm{id}}=CosSim\left(\phi(C_{id}),\phi(\mathrm{L-T2I}(x_T,C_{id},C_{txt}))\right), Lid=CosSim(ϕ(Cid),ϕ(LT2I(xT,Cid,Ctxt))),

其中 x T x_T xT表示纯噪声,L-T2I 表示Lighting T2I 分支, ϕ \phi ϕ表示人脸识别主干。为了生成照片逼真的人脸,我们将提示 C t x t C_{txt} Ctxt固定为“portrait, color, cinematic”。

Experiments

三阶段训练:

  1. 使用传统的扩散损失 L d i f f \mathcal{L}_{\mathrm{diff}} Ldiff来训练模型。
  2. 加入ID loss L i d \mathcal{L}_{\mathrm{id}} Lid (arcface-50),在不考虑对原始模型的污染的情况下努力实现最大 ID 保真度。
  3. 添加对齐损失 L a l i g n \mathcal{L}_{\mathrm{align}} Lalign来微调模型。

定量比较。跨不同基础模型和数据集的 ID 余弦相似度与 SOTA 方法的比较。

表 2 说明了与基线相比,使用朴素 ID 损失(直接从当前时间步预测 x0)和本文引入的更准确的 ID 损失 Lid 来提高 ID 保真度。

|

在这里插入图片描述在这里插入图片描述

参考文献

Guo Z, Wu Y, Chen Z, et al. PuLID: Pure and Lightning ID Customization via Contrastive Alignment[J]. arXiv preprint arXiv:2404.16022, 2024.

相关文章:

【论文笔记】| 定制化生成PuLID

PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接:https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID),这是一种用于…...

P1638 逛画展

题目描述 博览馆正在展出由世上最佳的 𝑚 位画家所画的图画。 游客在购买门票时必须说明两个数字,𝑎 和 𝑏,代表他要看展览中的第 𝑎 幅至第 𝑏 幅画(包含 𝑎,&#x1…...

Linux(centos)常用命令

Linux(Centos)常用命令使用说明文档 切换到/home目录下 使用cd命令切换目录,例如: cd /home列出/home目录下的所有文件 使用ls命令列出目录下的文件和子目录,例如: ls /home新建目录dir1 使用mkdir命…...

从入门到精通:掌握Scrapy框架的关键技巧

在当今信息爆炸的时代,获取并利用网络数据成为了许多行业的核心竞争力之一。而作为一名数据分析师、网络研究者或者是信息工作者,要想获取网络上的大量数据,离不开网络爬虫工具的帮助。而Scrapy框架作为Python语言中最为强大的网络爬虫框架之…...

Vue3按顺序调用新增和查询接口

Vue3按顺序调用新增和查询接口 一、前言1、代码 一、前言 如果你想将两个调用接口的操作封装在不同的方法中&#xff0c;你可以考虑将这两个方法分别定义为异步函数&#xff0c;并在需要时依次调用它们。以下是一个示例代码&#xff1a; 1、代码 <template><div>…...

sizeof的了解

32位编译器 qDebug() << "int:" << sizeof(int);qDebug() << "char:" << sizeof(char);qDebug() << "char*:" << sizeof(char*); 字节数&#xff1a; int: 4 char: 1 char*: 4 64位编译器 字节数&#…...

PostgreSQL 教程

## PostgreSQL 教程 ### 1. PostgreSQL 概述 PostgreSQL 是一个开源的对象关系型数据库管理系统&#xff08;ORDBMS&#xff09;&#xff0c;以其高扩展性和合规性闻名&#xff0c;支持 SQL 和 JSON 查询。 ### 2. 安装与配置 - **下载与安装**&#xff1a;从 PostgreSQL 官方…...

《基于Jmeter的性能测试框架搭建》改进一

《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处&#xff0c;如下所示。 Grafana性能图表实时展现&#xff0c;测试过程中需实时截图形成测试报告&#xff0c;不够人性化。解决方案&#xff1a;自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…...

计算机二进制表示和存储各种数据

目录 计算机二进制是什么 计算机中二进制数作用 不同数据的表示和存储 数字 文字 图片 音频 视频 计算机的中数据的显示和存储 计算机二进制是什么 计算机二进制数&#xff1a;计算机里存储的一切都是以二进制的0和1来表示。二进制是计算机使用的数字编码系统&#x…...

玩机社区 - 2024年最美社区源码开源

玩机社区 - 2024年最美社区源码开源 教程源码文档都内置到压缩包了 https://pan.baidu.com/s/1xwcscTne-JMbmKEntiuAuA?pwd78oi...

Linux系统——面试题分享

目录 1.现在给你三百台服务器&#xff0c;你怎么对他们进行管理&#xff1f; 2.简述 raid0 raid1 raid5 三种工作模式的工作原理及特点 2.1RAID 0 ——可以是一块盘和 N 个盘组合 2.2RAID 1 ——只能2块盘&#xff0c;盘的大小可以不一样&#xff0c;以小的为准 2.3RAID 5 …...

谈恋爱没经验?那就来刷谈恋爱经验宝宝吧

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…...

element-ui输入框和多行文字输入框字体不一样解决

element-ui的type"textarea"的字体样式与其他样式不同 <el-input type"textarea"></el-input> <el-input ></el-input>设置&#xff1a; .el-textarea__inner::placeholder {font-family: "Helvetica Neue", Helvetic…...

(Java企业 / 公司项目)配置Linux网络-导入虚拟机

公司给了我一个IP地址 &#xff0c;提供了一个虚拟机或者自己搭建虚拟机&#xff0c;还有提供登录的账号密码 可以查看我之前的文章 VMware Workstation Pro 17虚拟机超级详细搭建&#xff08;含redis&#xff0c;nacos&#xff0c;docker, rabbitmq&#xff0c;sentinel&…...

java的unsafe

在Java中&#xff0c;sun.misc.Unsafe 是一个强大且危险的类&#xff0c;它提供了一些直接操作内存、对象和线程的底层功能。这个类通常不鼓励普通开发者使用&#xff0c;因为它绕过了Java语言的一些安全性和内存管理机制&#xff0c;可能会导致难以追踪的错误和安全漏洞。 Un…...

起底震网病毒的来龙去脉

2010年&#xff0c;震网病毒被发现&#xff0c;引起世界哗然&#xff0c;在后续的10年间&#xff0c;陆陆续续有更多关于该病毒的背景和细节曝光。今年&#xff0c;《以色列时报》和《荷兰日报》又披露了关于此事件的更多信息&#xff0c;基于这些信息&#xff0c;我们重新梳理…...

[杂项]优化AMD显卡对DX9游戏(天谕)的支持

目录 关键词平台说明背景RDNA 1、2、3 架构的显卡支持游戏一、 优化方法1.1 下载 二、 举个栗子&#xff08;以《天谕》为例&#xff09;2.1 下载微星 afterburner 软件 查看游戏内信息&#xff08;可跳过&#xff09;2.2 查看D3D9 帧数2.3 关闭游戏&#xff0c;替换 dll 文件2…...

服务器没有图形界面没有显示器怎么办

可以用vnc。 vnc是开元的。什么是vnc&#xff1f; 使用vnc 下载vnc和vncserver命令。 每生成一个图形界面就叫做开启session会话。 vnc相关命令&#xff1a; start a new session: vncserver。 如果没有会话&#xff0c;一般从:1开始 端口5901 vncserver :2 #指定会话为:2 端…...

标准化软件实施方案(直接套用即可)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取&#xff1a;&#xff08;本文末个人名片也可直接获取&#xff09;软件开发全套资料_数字中台建设指南-CSDN博客 软件产品&am…...

云和恩墨海外首秀在吉隆坡召开的2024中国智能科技与文化展览会

作为中马建交50周年官方重点推荐的活动之一&#xff0c;2024中国智能科技与文化展览会&#xff08;第四届&#xff09;于5月20至21日在毗邻吉隆坡双子塔的吉隆坡国际会展中心举办。本次展览会获得马来西亚科学技术创新部、马来西亚通讯部、中国驻马来西亚大使馆和马来西亚中华总…...

01-VMware16虚拟机详细安装

官网地址&#xff1a;https://www.vmware.com/cn.html 1.1 打开下载好的 .exe 文件&#xff0c; 双击安装。 1.2 点击下一步 1.3 先勾选我接受许可协议中的条款&#xff0c;然后点击下一步 1.4 自定义安装路径&#xff0c;注意这里的文件路径尽量不要包含中文&#xff0c;完成…...

二叉树-226.翻转链表-力扣(LeetCode)

一、题目解析 翻转可以理解为树的左右子树交换&#xff0c;从根到叶子节点&#xff0c;但是这里交换的是链接的指针&#xff0c;而不是单纯的交换值&#xff0c;当出现nullptr时&#xff0c;也是可以交换链接的&#xff0c;交换值的话就不行了。 二、算法原理 依旧的递归&…...

每日Prompt:治愈动漫插画

提示词 现代都市治愈动漫插画风格&#xff0c;现代女子&#xff0c;漂亮&#xff0c;长直发&#xff0c;20岁&#xff0c;豆沙唇&#xff0c;白皙&#xff0c;气质&#xff0c;清纯现代都市背景下&#xff0c;夕阳西下&#xff0c;一位穿着白色露脐短袖&#xff0c;粉色工装裤…...

Vue 学习路线图(从零到实战)

&#x1f3af; 学习目标&#xff1a;掌握 Vue 并能独立开发中大型项目 ✅ 适合人群&#xff1a;前端初学者、想快速上手做项目的开发者、中小型团队成员 &#x1f9ed; Vue 学习路线图&#xff08;从零到实战&#xff09; 第一阶段&#xff1a;基础语法 核心功能&#xff08;…...

行为设计模式之Iterator(迭代器)

行为设计模式之Iterator&#xff08;迭代器&#xff09; 摘要&#xff1a; 迭代器模式(Iterator)是一种行为设计模式&#xff0c;它提供顺序访问聚合对象元素的方法&#xff0c;同时不暴露内部结构。该模式由迭代器接口(Iterator)、具体迭代器(ConcreteIterator)、聚合接口(Ag…...

CSS中justify-content: space-between首尾贴边中间等距(两端元素紧贴左右边缘,中间元素等距均匀分布)

justify-content: space-between; 是 CSS Flexbox 布局中的一个属性值&#xff0c;主要作用是在弹性容器的主轴方向上均匀分布子元素&#xff0c;具有以下核心特性&#xff1a; 作用效果&#xff1a; 首尾贴边 第一个子元素紧贴容器起始端 最后一个子元素紧贴容器结束端 中…...

Python训练营---DAY48

DAY 48 随机函数与广播机制 知识点回顾&#xff1a; 随机张量的生成&#xff1a;torch.randn函数卷积和池化的计算公式&#xff08;可以不掌握&#xff0c;会自动计算的&#xff09;pytorch的广播机制&#xff1a;加法和乘法的广播机制 ps&#xff1a;numpy运算也有类似的广播机…...

【ArcGIS Pro微课1000例】0072:如何自动保存编辑内容及保存工程?

文章目录 一、自动保存编辑内容二、自动保存工程在使用ArcGIS或者ArcGIS Pro时,经常会遇到以下报错,无论点击【发送报告】,还是【不发送】,软件都会强制退出,这时如果对所操作没有保存,就会前功尽弃。 此时,自动保存工作就显得尤为重要,接下来讲解两种常见的自动保存方…...

【2025CVPR】模型融合新范式:PLeaS算法详解(基于排列与最小二乘的模型合并技术)

本文深入解析ICLR 2025顶会论文《PLeaS: Merging Models with Permutations and Least Squares》,揭示模型融合领域突破性进展. 一、问题背景:模型合并的核心挑战 随着开源模型的爆发式增长,如何高效合并多个专用模型成为关键挑战。传统方法存在三大痛点: ​初始化依赖​…...

将单体架构项目拆分成微服务时的两种工程结构

一.独立Project 1.示意图 此时我们创建一个文件夹&#xff0c;在这个文件夹中&#xff0c;创建N个Project&#xff0c;每一个Project对应一个微服务&#xff0c;组成我们的最终的项目。 2.特点 适合那种超大型项目&#xff0c;比如淘宝&#xff0c;但管理负担比较重。 二.Mave…...