北交字节联合提出ClassDiffusion: 使用显式类别引导的一致性个性化生成。

本文主要是介绍北交字节联合提出ClassDiffusion: 使用显式类别引导的一致性个性化生成。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在个性化生成领域, 微调可能会引起过拟合导致模型无法生成与提示词一致的结果。针对这个问题,北交&字节联合提出ClassDiffusion,来提升个性化生成的一致性。

通过两个重要观察及理论分析提出了新的观点:一致性的损失是个性化概念语义偏移导致的, 还引入了BLIP2-T 来为个性化生成领域提供更公平有效的指标。

一只狗和太阳镜的故事,展示了一只狗是如何获得诺贝尔文学奖的,以及一副太阳镜的命运。

相关链接

项目主页: https://classdiffusion.github.io/

论文地址: https://arxiv.org/abs/2405.17532v1

代码地址:https://github.com/Rbrq03/ClassDiffusion

论文阅读

ClassDiffusion:使用明确的类指导进行更一致的个性化调优

摘要

最近的文本到图像定制工作已被证明能够成功生成给定概念的图像,方法是通过对一些示例微调扩散模型。然而,这些方法往往会过度拟合概念,导致在多种条件下无法创建概念(例如,在生成“戴耳机的狗”时缺少耳机)。

有趣的是,我们注意到微调之前的基础模型表现出将基础概念与其他元素组合的能力(例如,戴耳机的狗),这意味着只有在个性化调整后,组合能力才会消失。

受此观察的启发,我们提出了 ClassDiffusion,这是一种简单的技术,它利用语义保存损失在学习新概念时明确调节概念空间。尽管它很简单,但这有助于避免在对目标概念进行微调时出现语义漂移。

大量的定性和定量实验表明,使用语义保存损失可以有效提高微调模型的组合能力。为了应对 CLIP-T 指标的无效评估,我们引入了 BLIP2-T 指标,这是针对该特定领域的更公平、更有效的评估指标。我们还提供了深入的实证研究和理论分析,以更好地理解所提出的损失的作用。最后,我们还将 ClassDiffusion 扩展到个性化视频生成,展示了其灵活性。

方法概述

ClassDiffusion 概述。我们的语义保存损失 (SPL) 是通过测量从同一文本转换器(使用 EOS 标记作为 CLIP 之后的文本特征)中提取的具有个性化标记的短语和仅具有超类的短语之间的余弦距离来计算的。

实验

单一概念比较

ClassDiffusion方法与具有单一给定概念的基线进行定性比较。

多个概念比较

ClassDiffusion方法与具有多个给定概念的自定义扩散(CD)进行定性比较。

个性化视频

实验分析

(a)每个点代表由形容词和“狗”组合而成的短语的 CLIP 文本嵌入(例如,一只可爱的狗)。经过微调后,定制概念(蓝点代表微调前的概念,红点代表微调后的概念)远离文本特征空间中“狗”分布的中心。

(b)使用提示“一张在游泳池里游泳的狗的照片”时,与狗 token 对应的交叉注意图的可视化结果。

理论分析

在个性化调整过程中,随着狗的分布缩小,狗和耳机的条件分布也会缩小。这逐渐增加了在此分布中采样的难度,导致组合生成能力减弱。我们的 ClassDiffusion 通过结合语义保留损失 (SPL) 来缓解这种情况,以最大限度地减少个性化概念与其超类的语义漂移。

待做事项

  • ClassDiffusion的训练代码

  • ClassDiffusion的推理代码

  • BLIP2-T评分管道

  • 用ClassDiffusion生成视频的推理代码

结论

在这项工作中,我们强调了由于个性化而削弱了构图能力的问题并从实验观察微调和信息理论观点中分析了这一问题的原因。 然后,我们引入一种称为ClassDiffusion的新方法,通过还原原始语义空间,减轻了合成能力的弱化。 最后,我们提出了全面的实验结果,展示了ClassDiffusion和它为相互关联的领域提供了新的视角。

这篇关于北交字节联合提出ClassDiffusion: 使用显式类别引导的一致性个性化生成。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055678

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se