(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] 进行比较,这也应该突显出通过将我们的框架与现有的个性化方法结合使用所取得的收益。 

 

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

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

相关文章

报表生成器FastReport .Net用户指南:数据源与“Data“窗口

FastReport .Net是一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案,使用FastReport .NET可以创建独立于应用程序的.NET报表,同时FastReport .Net支持中文、英语等14种语言,可以让你的产品保证真正的国际性。 FastReport.NET官方版…

央视推荐的护眼灯是哪款?教育部认可护眼灯品牌

许多家长一般都会给孩子买上许多学习用品,比如现在一些学习桌椅、读写笔灯等等,配有蛮多的学习用具,但对孩子学习时用的护眼台灯很忽略,没有给孩子选好真正合格好用的护眼台灯,就容易让孩子的视觉形成偏差,…

Pixel手机进入工程模式、是否是Version版本?

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

APP加固原理与作用

文章目录 引言正文1. 什么是APP加固,加固原理是什么?2. 加固的作用是什么?加固后是否完全不会被破解?3. 如何提前规避加固新版本可能带来的风险?4. 付费加固与免费加固的区别是什么? 白嫖的混淆加密工具总结…

代码随想录刷题笔记(DAY11)

今日总结:继续准备期末,今天的算法题目比较简单,晚上看看能不能再整理一篇前端的笔记。 Day 11 01. 有效的括号(No. 20) 题目链接 代码随想录题解 1.1 题目 给定一个只包括 (,),{&#xff…

Android-常用数据结构和控件

HashMap 的原理 HashMap 的内部可以看做数组链表的复合结构。数组被分为一个个的桶(bucket)。哈希值决定了键值对在数组中的寻址。具有相同哈希值的键值对会组成链表。需要注意的是当链表长度超过阈值(默认是8)的时候会触发树化,链表会变成树形结构。 把握HashMap的…

5 - 声明式事务

传统事务流程: Connection connection JdbcUtils.getConnection(); try {//1. 先设置事务不要自动提交connection.setAutoCommit(false);//2. 进行各种 crud//多个表的修改,添加 ,删除select from 商品表 > 获取价格//修改用户余额updat…

“确定要在不复制其属性的情况下复制此文件?”解决方案(将U盘格式由FAT格式转换为NTFS格式)

文章目录 1.问题描述2.问题分析3.问题解决3.1 方法一3.2 方法二3.3 方法三 1.问题描述 从电脑上复制文件到U盘里会出现“确定要在不复制其属性的情况下复制此文件?”提示。 2.问题分析 如果这个文件在NTFS分区上,且存在特殊的安全属性。那么把它从NT…

请查收“链上天眼”2023年成绩单

1月10日是中国人民警察节,是一份责任,更一份安心,随着科技的发展,链上安全领域的技术与工具不断更新迭代,更加安全的Web3世界正在构建。 根据欧科云链安全团队统计,2023 年全球范围内利用虚拟货币进行诈骗…

Radzen Blazor Studio 脚手架框架解读

背景 组织管理管理准备使用Blazor这个工具实现,因为其有对应的 scaffold 脚手架,先构建数据库,然后通过向导,生成CRUD以及对应的接口,那么有必要看一下,其内部的代码结构是什么样的。 结构 接口层 有两类…

Python——for循环的嵌套

用Python坚持表白一百天,每天都送10朵花,一百天表白成功! i1 for i in range(1,101):print(f"今天是表白的第{i}天,坚持ing")for j in range(1,11):print(f"送给你第{j}朵玫瑰花")print("小美我喜欢你&…

Hive 的 安装与使用

目录 1 安装 MySql2 安装 Hive3 Hive 元数据配置到 MySql4 启动 Hive5 Hive 常用交互命令6 Hive 常见属性配置 Hive 官网 1 安装 MySql 为什么需要安装 MySql? 原因在于Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户…

Mindspore 公开课 - prompt

prompt 介绍 Fine-Tuning to Prompt Learning Pre-train, Fine-tune BERT bidirectional transformer,词语和句子级别的特征抽取,注重文本理解Pre-train: Maked Language Model Next Sentence PredictionFine-tune: 根据任务选取对应的representatio…

算法通关村第十六关—滑动窗口经典问题(白银)

滑动窗口经典问题 一、最长子串专题 1.1 无重复字符的最长子串 LeetCode3给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。例如: 输入:s"abcabcbb" 输出:3 解释:因为无重复字符的最长子串是…

牛客周赛 Round 28 F

以后需要使用map,set进行二分,并且需要知道二分位置的信息时,不妨考虑使用树状数组进行维护 因为简单版本保证了每个数都为正整数,所以前缀和保证了一定的递增的,即有序的,那么考虑固定左端点,去…

多线程并发与并行

📑前言 本文主要是【并发与并行】——并发与并行的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&…

python爬虫之线程与多进程知识点记录

一、线程 1、概念 线程 在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”叫做线程 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指…

DAY01_Spring—Spring框架介绍IOCSpring工厂模式

目录 1 什么是框架2 Spring框架2.1 Spring介绍2.2 MVC模型说明2.3 IOC思想2.3.1 问题说明2.3.2 IOC说明 3 Spring IOC具体实现3.1 环境准备3.1.1 关于JDK说明3.1.2 检查JDK环境配置 3.2 创建项目3.3 关于Maven 命令3.3.1 install 命令3.3.2 clean 命令 3.4 添加jar包文件3.4.1 …

flutter使用getx进行数据状态管理,实现页面响应式

无论是什么样的应用,都还是需要最基础的数据来支撑的,而且不同的页面之间可能需要共享数据状态,这就显得数据状态管理非常有必要了。因为我这里使用了get依赖库,所以就可以直接在项目中使用getx来管理状态,不想再使用别…

服务器机房上架交付流程

服务器上架交付 服务器到货验收后,会进行机房机房上架,完成重装系统、网络配置后交付使用 1、到货验收 采购服务器到货后,会联合多部门进行SN、配置、数量等多方面验收,如数量是否匹配,配置是否相符等也会拆开机箱看看…