新智元报道
编辑:LRST
【新智元导读】「单提示单故事」(1Prompt1Story)是一种无训练的文本到图像生成方法,通过整合多个提示为一个长句子,并结合奇异值重加权(SVR)和身份保持交叉注意力(IPCA)技术,解决了生成图像中身份不一致的问题,同时保持了文本描述的精准对齐。
现在的AI画图工具,比如文图生成模型,已经能根据文字描述创作出高质量的图像了。
但是,当我们需要用模型来画故事,并且希望故事中的人物在不同场景下都保持一致时,这些模型就有点犯难了。
目前,为了解决人物不一致的问题,通常需要用海量数据进行额外训练,或者对模型本身进行比较复杂的修改。这让这些方法在不同领域和各种 AI 模型上的应用都受到限制,不太方便。
其实语言模型本身就有一种内在的「上下文理解」能力,即使只给一个简单的提示,语言模型也能根据上下文来理解人物的身份特征。
受到这个发现的启发,南开大学、中科院等机构的研究人员提出了一种全新的、而且无需任何额外训练的方法,来实现人物形象一致的文图生成,方法名叫「One-Prompt-One-Story」 (1Prompt1Story),也就是「一个提示讲故事」。
文章链接: https://arxiv.org/abs/2501.13554
GitHub代码: https://github.com/byliutao/1Prompt1Story
项目主页:https://byliutao.github.io/1Prompt1Story.github.io/
1Prompt1Story的核心做法是,把所有场景的文字描述合并成一个长长的输入提示,直接给AI画图模型。
这样,模型就能在最开始就记住人物的身份特征,保证初步的一致性。接下来,他们还使用了两项新技术来优化生成过程:「奇异值重加权」和「身份保持交叉注意力」。这两项技术能够确保生成的每一帧图像都更符合对应的文字描述,同时人物形象还不会跑偏。
在实验部分,研究人员将他们的方法与现有的各种保持一致性的文图生成方法进行了对比。结果表明,无论是从数据指标还是实际生成效果来看,他们的新方法都更有效。
1Prompt1Story生成人物一致的故事的示例图
研究背景
目前,实现图像生成中人物身份一致性的方法,主要可以分为两类:需要训练的方法,比如 Texture-Inversion 和 IP-Adapter,以及无需训练的方法,像 ConsiStory 和 StoryDiffusion。但现有的这些方法,多少都存在一些问题。
需要训练的方法 (Training-based methods)
耗时耗力:通常需要在庞大的数据集上进行长时间的训练,这需要大量的计算资源和时间成本。
容易引起语言漂移 (Language Drift):通过微调模型或学习新的映射编码器来保持一致性,可能会导致模型对原始语言指令的理解发生偏差,产生意外或不理想的结果。
无需训练的方法 (Training-free methods)
资源消耗或设计复杂:为了加强模型的一致性生成能力,这些方法通常需要大量的内存资源,或者需要设计复杂的模块结构,这增加了实现的难度和成本。
忽略了长提示的内在特性:现有的一些无需训练的方法,虽然在生成一致性图像方面取得了一定的成果,但它们 没有充分利用语言模型固有的上下文一致性。
也就是说,它们可能没有意识到长文本提示本身已经蕴含了保持身份一致的信息,从而导致方法可能变得更加复杂或资源密集,而没有充分利用语言模型的自身能力。
更重要的是,就像下图上半部分展示的,现有的方法普遍存在背景混淆的问题。
比如第一行和第二行生成的图像,背景就非常相似,但明明对应的文字描述场景是不一样的。如果用基础模型,像SDXL,就不会出现这种背景混淆,这说明现有的方法或多或少破坏了模型原本优秀的文本-图像对齐能力。
而该方法就很好地解决了这个问题,看下图最后一行,该方法生成的图像,不同场景之间的背景区分就很清晰,完美地展现了各种文字描述的场景,背景不再「千篇一律」!
方法
总的来说,1Prompt1Story的核心思想可以概括为「一个提示,讲一个故事」,主要通过以下几个步骤来实现人物身份一致性的图像生成:
提示整合 (PCon):故事的「剧本」
把人物身份描述 (P0) 和多个场景描述 (P1, P2, ... PN) 像写剧本一样串联成一个超长提示 (CC)。
作用:将整个故事的文本信息整合到一个提示中,方便模型统一理解。
奇异值重加权 (SVR): 突出重点,抑制干扰
解决长提示中场景描述互相干扰问题,让模型「看清」当前要画的场景。
SVR+ (增强当前帧):像聚光灯一样,放大当前场景描述 (Pj) 的语义信息,让模型更关注它。(简化公式理解:放大重要特征)
SVR- (抑制其他帧):同时,弱化其他场景描述 (Pk, k≠j) 的语义信息,减少干扰。(简化公式理解:减弱不重要特征)
技术核心:利用 奇异值分解 (SVD) 来分析和调整词向量的「重要性」,达到增强和抑制语义的效果。
身份保持交叉注意力 (IPCA): 强化身份,排除干扰
目的:进一步强化人物身份的一致性,排除场景描述对人物身份的干扰。
核心:在图像生成过程中,强制模型更关注人物身份描述 (P0) 的特征,忽略或弱化场景描述对人物身份的影响。
具体操作:在交叉注意力计算时,修改Key(K)和Value(V)矩阵,只保留与身份提示相关的特征,并进行拼接, 确保每一帧图像都牢牢抓住人物的身份特征。(简化理解:专注身份,弱化场景对身份的影响)
总结1Prompt1Story的流程
Prompt Consolidation (PCon):将身份提示和所有帧提示串联成一个长提示。
Singular-Value Reweighting (SVR):SVR+: 增强当前帧提示的语义信息、SVR-: 减弱其他帧提示的语义信息。
Identity-Preserving Cross-Attention (IPCA):在交叉注意力层,强化身份提示特征,抑制帧提示特征。
通过这三个步骤的协同作用,1Prompt1Story能够有效地生成人物身份一致,且图像内容准确对应每个场景描述的故事图像。
实验
正如图中所示的定性比较结果,1Prompt1Story方法在几个关键表现上都非常出色。这包括能够准确地保留人物身份、精确地描绘图像帧的内容,以及生成多样化的物体姿态。反观其他方法,在这些方面就显得不足了。
具体来说,在左侧的例子中,PhotoMaker、ConsiStory和StoryDiffusion生成的「龙」这个主体,都出现了身份不一致的问题,龙看起来不像同一个龙。
另外,IP-Adapter则倾向于生成姿势和背景都非常相似的图像,并且常常忽略了帧提示中关于细节的描述。ConsiStory在生成连贯的图像序列时,也表现出背景重复的问题。
除了定性比较,研究人员还进行了定量分析。在衡量文本与图像对齐程度的CLIP-T得分上,1Prompt1Story方法已经非常接近原始的SDXL模型。
在身份一致性方面(使用DreamSim指标评估),也仅次于IP-Adapter。
然而,需要指出的是,IP-Adapter之所以在身份相似性上表现很高,很大程度上是因为它倾向于生成姿势和布局非常相似的人物图像,这实际上限制了多样性。
正如下方的图表所展示的,1Prompt1Story方法位于图表的右上角,这表明它在文本-图像对齐和身份一致性之间取得了良好的平衡。
更多结果
多主体故事生成
与不同的基础模型结合
长故事生成
参考资料:
https://arxiv.org/abs/2501.13554