One-Prompt-One-Story:无须训练即可保持身份一致性

One-Prompt-One-Story: Free-Lunch Consistent Text-to-Image Generation Using a Single Prompt

文生图模型很难支持故事叙述中一致的身份保留要求。(要么通过训练,要么通过修改模型结构).本文利用语言模型的语境一致性,即通过单一提示的语境来理解身份。这种方法将所有提示连接作为一个整体作为T2I模型的单个输入,同时采用两种技术来改进生成过程:奇异值重加权和身份保持交叉注意。

什么是语言模型的语境一致性?

在长提示符中,身份信息是通过上下文理解隐式维护的,我们称之为语言模型的上下文一致性。

例如:A dog is watching the movie. Afterward, the dog is lying in the garden.(我们可以知道在这一段话中,这只狗代表的是同一只狗,因为在同一段话出现)

这里有个实验说明:单提示生成设置下,文本嵌入空间中彼此之间的语义距离相对较小,而跨多提示生成设置的文本嵌入空间彼此之间的语义距离相对较大。

主体提示符 P0 = "A watercolor of a cute kitten"

5个子提示符 P(1~5) = "in a garden, "dressed in a superhero cape", "wearing a collar with a bell", "sitting in a basket", "dressed in a cute sweater"

作者比较了不同设置下的文本编码在文本嵌入空间中:

  • 多提示生成的设置下,即 Ci = TextEncoder(P0,Pi)
  • 单提示设置下,即 C = TextEncoder(P0,P1,P2,...,PN)

作者这里用 t-SNE 做了 2D 的可视化,可以看到即在单提示设置下,Pi的语义距离相对较小。

如何利用朴素的重加权方法(NPR)来实现图像空间中的上下文一致性?

Naive Prompt Reweighting (NPR):即使用连接起来的总提示符作为输入,生成第i个场景,就通过一个放大因子重新加权对应于所需场景的提示嵌入,同时通过一个缩小因子重新缩放其他场景提示的嵌入。

缺点: T2I模型虽然综合了具有相同主体身份的帧图像。然而,背景在这些帧之间混合,

(一)1prompt1story: Singular-Value Reweighting 奇异值重加权

TextEncoder(P0, P1, . . . , PN) = [cSOT , cP0 , cP1 , . . . , cPN , cEOT ]

X e x p = [ c P j , c E O T ] X^{exp} = [c^{Pj} , c^{EOT} ] Xexp=[cPj,cEOT]
X s u p = [ c P 1 , . . . , c P j − 1 , c P j + 1 , . . . , c E O T ] X^{sup} = [c^{P1} ,... ,c^{P_{j-1}},c^{P_{j+1}},...,c^{EOT} ] Xsup=[cP1,...,cPj−1,cPj+1,...,cEOT]

作者根据生成是否所需,将Pi分为两个部分:一个部分是需要表现出来的标识为P_sup,另一个部分是需要被抑制的为P_sup。

同时除了提示符本身包含的语意外,[EOT] 也包含很重要的语义信息.

详细过程如下:

  • SVR+

  • SVR-

在求解得到奇异值后,作者用 β , α \beta,\alpha β,α 来调整奇异值的大小(抑制则为负,需要表达的则为负)

(一)1prompt1story: Identity-Preserving Cross-Attention 身份保留交叉注意

这里做法比较简单,在某个时间t,通过奇异值分解得到新的text embedding后,会通过交叉注意来注入语义信息。(文本信息作为K和V)

前面我们知道,提示符的构成是(P0,P1,...,PN),P0是主题提示符,P1,...,PN是其他动作、场景描述符号。作者把 Pi 对应的K矩阵的部分设置为0,然后再将他与原来的 K concat起来,作为新的K。(V矩阵同理)

感觉这个操作初始看可能比较极端,所以作者将他concat起来,避免语义信息上的过分损失。因为在前面的express和suppress的操作,会影响单个提示内的上下文一致性,导致生成的图像在身份上的相似性略有降低。

实验
  • 消融实验
相关推荐
视觉语言导航15 分钟前
中山大学无人机具身导航新突破!FlightGPT:迈向通用性和可解释性的无人机视觉语言导航
人工智能·深度学习·无人机·智慧城市·具身智能
lubiii_24 分钟前
网络安全十大漏洞
python·安全·web安全·网络安全
之之为知知26 分钟前
深度学习能取代机器学习吗?
人工智能·pytorch·python·深度学习·机器学习·数据挖掘·tensorflow
卓豪终端管理27 分钟前
如何保护网络免受零日漏洞攻击?
大数据·服务器·网络·人工智能·安全·web安全
小森776728 分钟前
(九)深度学习---自然语言处理基础
人工智能·python·深度学习·机器学习·自然语言处理·keras
Hy行者勇哥28 分钟前
从零起步搭建基于华为云构建碳排放设备管理系统的产品设计
大数据·人工智能·嵌入式硬件·物联网·华为云
riveting33 分钟前
68元开发板,开启智能硬件新篇章——明远智睿SSD2351深度解析
linux·图像处理·人工智能·重构·智能硬件
geneculture41 分钟前
人机交互与协作的数学融智学形式化
人工智能·数学建模·人机交互·课程设计·融智学的重要应用
kovlistudio43 分钟前
大模型应用开发第五讲:成熟度模型:从ChatGPT(L2)到未来自主Agent(L4)
人工智能·深度学习·学习·机器学习·chatgpt·tensorflow
Dr.Water1 小时前
Prompt工程:解锁大语言模型的终极密钥
人工智能·语言模型·prompt