(2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化
PALP: Prompt Aligned Personalization of Text-to-Image Models
公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)
目录
0. 摘要
4. 提示对齐方法
4.1 概述
4.2 个性化
4.3 提示对齐分数抽样
4.4 避免过饱和和模式崩溃
5. 结果
0. 摘要
内容创作者通常致力于使用个人主题创建个性化图像,超越传统的文本到图像模型的能力。此外,他们可能希望生成的图像涵盖特定的地点、风格、氛围等。现有的个性化方法可能会影响个性化能力或与复杂文本提示的对齐。这种权衡可能妨碍用户提示的实现和主题的忠实性。我们提出了一种新方法,专注于解决这个问题的单一提示的个性化方法。我们将我们的方法称为提示对齐个性化(prompt-aligned personalization)。尽管这可能看起来有限制,但我们的方法在改善文本对齐方面表现出色,能够创建具有复杂提示的图像,这可能对当前技术构成挑战。特别是,我们的方法使用额外的分数蒸馏抽样(score distillation sampling)项,保持个性化模型与目标提示对齐。我们展示了我们的方法在多样本和单样本环境中的多功能性,并进一步展示它可以组合多个主题或从参考图像(如艺术作品)中汲取灵感。我们定量和定性地与现有基准和最先进的技术进行了比较。
项目页面位于 https://prompt-aligned.github.io/



4. 提示对齐方法
4.1 概述
我们的主要目标是教导 G 生成与新主题 S 相关的图像。然而,与先前的方法不同,我们强调为单一文本提示(用 y 表示)实现最佳结果。例如,考虑这样一种情景,感兴趣的主题是自己的猫,提示是 y = "A sketch of [my cat] in Paris"。在这种情况下,我们的目标是生成一个忠实地代表猫的图像,同时包括所有提示元素,包括素描风格和巴黎的背景。
关键思想是优化两个目标:个性化和提示对齐。对于第一部分,即个性化,我们微调 G 以从噪声样本中重建 S。提高提示对齐的一种选择是在调整 G 对 S 进行微调时将目标提示 y 作为条件。然而,这会导致次优结果,因为我们没有描绘 y 的图像(例如,我们既没有猫的素描图像,也没有它在巴黎的照片)。相反,我们将 G 的噪声预测朝向目标提示 y 进行推动。具体而言,我们使用分数抽样方法将 G 对 S 的估计引导到分布密度 p(x|y)(见图4)。通过同时使用这两个目标,我们实现了两件事情:(1)通过反向扩散过程生成目标主题 S(个性化),同时(2)确保噪声预测与文本 y 对齐。接下来详细解释我们的方法。
4.2 个性化
我们遵循先前的方法 [15, 28, 39, 46],在代表 S 的一小组图像上对 G 进行微调,这组图像可以只有一张照片。我们使用 LoRA 方法 [22] 更新 G 的权重,其中我们仅更新网络权重的子集 θ_LoRA ⊆ θ,即自注意力和交叉注意力层。此外,我们优化一个新的词嵌入 [V] 来表示 S。
4.3 提示对齐分数抽样
在小图像集上进行长时间的微调可能导致模型过拟合。在这种情况下,扩散模型的预测总是将反向去噪过程引导到训练图像中的一个,而不考虑任何条件提示。确实,我们观察到过拟合的模型甚至在单个去噪步骤中都能从噪声样本中估计输入。

在图 5 中,我们通过分析模型对 x_0(真实样本图像)的估计来可视化模型的预测。真实样本的估计 ˆx_0 是通过模型的噪声预测导出的,公式如下:

从图 5 中可以看出,预训练模型(在个性化之前)将图像引导到类似素描的图像,其中估计值 ˆx_0 具有白色背景,但缺少主题细节。在没有 PALP 的情况下应用个性化,会导致过拟合,训练图像的元素(如背景)更为显著,而素描感逐渐消失,表明与提示 “A sketch” 不对齐,并过度拟合输入图像。使用 PALP 时,模型预测将反向去噪过程引导到类似素描的图像,同时保持个性化,还原了猫的形状。
我们的关键思想是鼓励模型的去噪预测朝向目标提示。或者,我们推动模型对真实样本的估计(用 ˆx_0 表示)与提示 y 对齐。
在我们的示例中,目标提示是 “A sketch of [V]”,我们将模型的预测推向素描,并防止过拟合特定图像背景。与个性化损失一起,这将鼓励模型专注于捕捉 [V] 的识别特征,而不是重建背景和其他干扰特征。
为了实现后者,我们使用分数蒸馏抽样(SDS)技术[34]。具体而言,给定一个不包含占位符 "[V]" 的干净目标提示 y^c。然后,我们使用分数抽样来优化损失:
![]()
![]()
请注意,我们使用预训练的网络权重来评估公式(3),并省略所有已学习的占位符(例如 [V])。因此,通过最小化该损失,我们将保持与文本提示 y 对齐,因为预训练模型具有有关提示元素的所有知识。
Poole等人 [34] 找到了一种优雅而高效的分数函数近似,使用以下方法:

其中 ϕ 是控制 x 外观的权重,˜w(t) 是加权函数。这里的 G^α 表示无分类器引导预测,它是条件和无条件(y = ∅)噪声预测的外推(extrapolation)。标量 α ∈ R+ 通过以下方式控制外推:
![]()
在我们的情况下,x = ˆx0,并且根据公式(2)从 G 的噪声预测中导出。因此,ˆx0 的外观直接由 LoRA 权重和 [V] 控制。
4.4 避免过饱和和模式崩溃
通过 SDS 进行引导会产生较少多样性和过饱和的结果。类似 [26, 52] 的替代实现改善了多样性,但整体上个性化仍受到影响(请参见附录 A)。我们认为这背后的原因是公式(4)中的损失将预测 ˆx_0 推向 p(x|y_c) 的分布中心,而干净的目标提示 y^c 只包含主题类别,即 “一只猫的素描”,因此损失将鼓励 ˆx_0 走向一般猫的分布中心,而不是我们的猫的分布中心。
相反,我们发现 Delta Denoising Score (DDS) [18] 变体效果更好。具体而言,我们使用个性化模型预测与预训练模型预测
![]()
![]()
之间的残差方向,其中 α 和 β 分别是它们的引导尺度。这里 y_P 是个性化提示,即 “A photo of [V]”,y^c 是一个干净的提示,例如 “A sketch of a cat.””。然后,分数可以通过以下方式估计:

这会扰动去噪预测到目标提示的方向(见图 4 的右侧)。我们的实验证明,不平衡的引导尺度,即 α > β,效果更好。我们还考虑了两个变体实现:(1)在第一种实现中,我们对两个分支(文本对齐和个性化分支)使用相同的噪声,以及(2)我们对分支使用两个独立同分布的噪声样本。使用相同的噪声比后者实现更好的文本对齐。
关于 PALP 的计算复杂性:公式(6)中的梯度与个性化梯度成比例,具有缩放:

由于右侧的梯度也是公式(1)的导数的一部分,因此我们不需要通过对齐分支对文本到图像模型进行反向传播。这可能对使用更大模型的引导来提升较小模型的个性化性能很有用。最后,我们还注意到对于较大的 t 值,缩放项非常大。通过
![]()
重新缩放梯度确保了所有时间步的均匀梯度更新,并提高了数值稳定性。
5. 结果
我们将我们的方法与多样本方法进行比较,包括 CustomDiffusion [28]、P+ [51] 和 NeTI [1]。我们还使用我们的实现对 TI [15] 和 DB [39] 进行比较,这也应该突显出通过将我们的框架与现有的个性化方法结合使用所取得的收益。


相关文章:
(2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化
PALP: Prompt Aligned Personalization of Text-to-Image Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 4. 提示对齐方法 4.1 概述 4.2 个性化 4.3 提示对齐分数抽…...
近日遇到数据库及其他问题
一、查找备份表和原表不一样数据 select * from A where (select count(1) from A_BAK where A.IDA_BAK.ID) 0 二、在数据量比较大的表中新增有默认值的列速度较慢问题 使用 以下语句,在上亿数据的表中执行速度较慢 alter table TEST add col_a integer DEFA…...
【conda】conda 版本控制和环境迁移/安装conda加速工具mamba /conda常用指令/Anaconda配置
【conda】安装conda加速工具mamba /conda常用指令/Anaconda配置 0. conda 版本控制和环境迁移1. 安装conda加速工具mamba2. conda install version3. [Anaconda 镜像](https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)使用帮助4. error deal 0. conda 版本控制和环境迁移…...
“/bin/bash“: stat /bin/bash: no such file or directory: unknown
简介:常规情况下,在进入容器时习惯使用 /bin/bash为结尾,如:docker exec -it test-sanic /bin/bash, 但是如果容器本身使用了精简版,只装了sh命令,未安装bash。这时就会抛出"/bin/bash&quo…...
基于Spring Boot+vue的云上新鲜水果超市商城系统
本云上水果超市是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了用户、员工信息和管理员这三者的需求。操作简单易懂,合理分析各个模块的功能,尽可能…...
vue-ESlint代码规范及修复
1. 介绍 ESLint:是一个代码检查工具,用来检查你的代码是否符合指定的规则(你和你的团队可以自行约定一套规则)。 在创建项目时,我们使用的是 JavaScript Standard Style 代码风格的规则。 规范网址:https://standardjs.com/rules-zhcn.htm…...
Oracle数据库断电后不能打开的解决
数据库突然断电后,不能打开。或者偶尔能打开,但是很快就关闭。 原因可能很多。但是解决问题只有一种办法:看trace日志,alert错误日志 简单写下我的解决过程: 1,在alert日志中: 错误如下两种:…...
论文复现: In-Loop Filter with Customized Weights For VVC Intra Coding
论文复现: In-Loop Filter with Customized Weights For VVC Intra Coding 这个好难好难。啊啊啊啊。核心:权重预测模块功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的…...
配置华为设备NQA UDP Jitter检测VoIP业务抖动
组网需求 如图1所示,总部和子公司之间需要跨越外部网络进行通信,DeviceA和DeviceD为总部和子公司的网络出口设备,DeviceB和DeviceC为外部网络提供商的边缘设备。 总部和子公司之间经常要通过VoIP进行电话会议,要求双向时延小于2…...
GitHub要求所有贡献代码的用户在2023年底前启用双因素认证
到2023年底,所有向github托管的存储库贡献代码的用户都必须启用一种或多种形式的2FA。 双重身份认证 所谓双重身份认证(Two-Factor Authentication),就是在账号密码以外还额外需要一种方式来确认用户身份。 GitHub正在大力推动双…...
Nginx——强化基础配置
1、牢记Context Context是Nginx中每条指令都会附带的信息,用来说明指令在哪个指令块中使用,可以将Context 理解为配置环境。 每个指令都拥有自己的配置环境,如果把配置环境记错了,或者在设计时未考虑配置环境的作用,…...
黑马苍穹外卖学习Day6
HttpClient 介绍 HttpClient 是 Apache 提供的一个开源的 Java HTTP 客户端库,用于发送 HTTP 请求和处理 HTTP 响应。它提供了一种更简便的方式来执行 HTTP 请求,并支持多种协议,如 HTTP、HTTPS、FTP 等。 使用 HttpClient 可以方便地与远程…...
【Java 设计模式】设计原则之里氏替换原则
文章目录 1. 定义2. 好处3. 应用4. 示例结语 在软件开发中,设计原则是创建灵活、可维护和可扩展软件的基础。 这些原则为我们提供了指导方针,帮助我们构建高质量、易理解的代码。 ✨单一职责原则(SRP) ✨开放/封闭原则(…...
一步步指南:从指定时长中提取需求的帧图片,高效剪辑视频
在现代多媒体时代,视频已经成生活中不可或缺的一部分。从视频中提取某一帧图片,或者对视频进行剪辑,都是常见的需求。下面一起来看云炫AI智剪如何从指定时长中提取需求的帧图片,如何高效地剪辑视频。 按指定时长提取视频某帧图片的…...
【打卡】牛客网:BM93 盛水最多的容器
题目: 考虑到盛水容器的特殊性。双指针从最两边开始遍历,遍历过程中舍弃最小的。 不知道原理。 模板的: class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*…...
Golang 文件操作
读取 一次性读取 data, err : os.ReadFile("filename.txt") if err ! nil {log.Fatal(err) } fmt.Println(string(data))按行读取 方式1:bufio.NewScanner file, err : os.Open("filename.txt") if err ! nil {panic(err) } defer file.Clo…...
C++I/O流——(3)文件输入/输出(第二节)
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 含泪播种的人一定能含笑收获ÿ…...
内网穿透[让你在家里也能榨干学校的服务器]Yep!
内网穿透 问题:什么是内网穿透,内网穿透的作用是什么? 前提!!!!你得拥有超级管理员的权限,比如root,不然后面的一切免提! 应用场景如下:比如你…...
构建基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)的支持63个常见模块的PHP8.1.20的RPM包
本文适用:rhel9系列,或同类系统(CentOS9,AlmaLinux9,RockyLinux9等) 文档形成时期:2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…...
你知道什么是Java中的类型强转吗?
强制类型转换 强转存在与父转子的时候,子转父不需要进行强转,如 Object o "hello"; //String类是Object类的子类,无需进行强转类型强转分为两种情况: Ⅰ、向下转型:将父类对象引用转换为子类对象引用&am…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
