單提示生成「主體一致」圖像,且無需訓練!已斬獲ICLR 2025 Spotlight
現(xiàn)在的AI畫圖工具,比如文圖生成模型,已經(jīng)能根據(jù)文字描述創(chuàng)作出高質量的圖像了。
但是,當我們需要用模型來畫故事,并且希望故事中的人物在不同場景下都保持一致時,這些模型就有點犯難了。
目前,為了解決人物不一致的問題,通常需要用海量數(shù)據(jù)進行額外訓練,或者對模型本身進行比較復雜的修改。這讓這些方法在不同領域和各種 AI 模型上的應用都受到限制,不太方便。
其實語言模型本身就有一種內(nèi)在的「上下文理解」能力,即使只給一個簡單的提示,語言模型也能根據(jù)上下文來理解人物的身份特征。
受到這個發(fā)現(xiàn)的啟發(fā),南開大學、中科院等機構的研究人員提出了一種全新的、而且無需任何額外訓練的方法,來實現(xiàn)人物形象一致的文圖生成,方法名叫「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畫圖模型。
這樣,模型就能在最開始就記住人物的身份特征,保證初步的一致性。接下來,他們還使用了兩項新技術來優(yōu)化生成過程:「奇異值重加權」和「身份保持交叉注意力」。這兩項技術能夠確保生成的每一幀圖像都更符合對應的文字描述,同時人物形象還不會跑偏。
在實驗部分,研究人員將他們的方法與現(xiàn)有的各種保持一致性的文圖生成方法進行了對比。結果表明,無論是從數(shù)據(jù)指標還是實際生成效果來看,他們的新方法都更有效。
1Prompt1Story生成人物一致的故事的示例圖
研究背景
目前,實現(xiàn)圖像生成中人物身份一致性的方法,主要可以分為兩類:需要訓練的方法,比如 Texture-Inversion 和 IP-Adapter,以及無需訓練的方法,像 ConsiStory 和 StoryDiffusion。但現(xiàn)有的這些方法,多少都存在一些問題。
需要訓練的方法 (Training-based methods)
耗時耗力:通常需要在龐大的數(shù)據(jù)集上進行長時間的訓練,這需要大量的計算資源和時間成本。
容易引起語言漂移 (Language Drift):通過微調模型或學習新的映射編碼器來保持一致性,可能會導致模型對原始語言指令的理解發(fā)生偏差,產(chǎn)生意外或不理想的結果。
無需訓練的方法 (Training-free methods)
資源消耗或設計復雜:為了加強模型的一致性生成能力,這些方法通常需要大量的內(nèi)存資源,或者需要設計復雜的模塊結構,這增加了實現(xiàn)的難度和成本。
忽略了長提示的內(nèi)在特性:現(xiàn)有的一些無需訓練的方法,雖然在生成一致性圖像方面取得了一定的成果,但它們 沒有充分利用語言模型固有的上下文一致性。
也就是說,它們可能沒有意識到長文本提示本身已經(jīng)蘊含了保持身份一致的信息,從而導致方法可能變得更加復雜或資源密集,而沒有充分利用語言模型的自身能力。
更重要的是,就像下圖上半部分展示的,現(xiàn)有的方法普遍存在背景混淆的問題。
比如第一行和第二行生成的圖像,背景就非常相似,但明明對應的文字描述場景是不一樣的。如果用基礎模型,像SDXL,就不會出現(xiàn)這種背景混淆,這說明現(xiàn)有的方法或多或少破壞了模型原本優(yōu)秀的文本-圖像對齊能力。
而該方法就很好地解決了這個問題,看下圖最后一行,該方法生成的圖像,不同場景之間的背景區(qū)分就很清晰,完美地展現(xiàn)了各種文字描述的場景,背景不再「千篇一律」!
方法
總的來說,1Prompt1Story的核心思想可以概括為「一個提示,講一個故事」,主要通過以下幾個步驟來實現(xiàn)人物身份一致性的圖像生成:
提示整合 (PCon):故事的「劇本」
把人物身份描述 (P0) 和多個場景描述 (P1, P2, ... PN) 像寫劇本一樣串聯(lián)成一個超長提示 (CC)。
作用:將整個故事的文本信息整合到一個提示中,方便模型統(tǒng)一理解。
奇異值重加權 (SVR): 突出重點,抑制干擾
解決長提示中場景描述互相干擾問題,讓模型「看清」當前要畫的場景。
SVR+ (增強當前幀): 像聚光燈一樣,放大當前場景描述 (Pj) 的語義信息,讓模型更關注它。(簡化公式理解:放大重要特征)
SVR- (抑制其他幀): 同時,弱化其他場景描述 (Pk, k≠j) 的語義信息,減少干擾。(簡化公式理解:減弱不重要特征)
技術核心: 利用 奇異值分解 (SVD) 來分析和調整詞向量的「重要性」,達到增強和抑制語義的效果。
身份保持交叉注意力 (IPCA): 強化身份,排除干擾
目的: 進一步強化人物身份的一致性,排除場景描述對人物身份的干擾。
核心: 在圖像生成過程中,強制模型更關注人物身份描述 (P0) 的特征,忽略或弱化場景描述對人物身份的影響。
具體操作: 在交叉注意力計算時,修改Key(K)和Value(V)矩陣,只保留與身份提示相關的特征,并進行拼接, 確保每一幀圖像都牢牢抓住人物的身份特征。(簡化理解:專注身份,弱化場景對身份的影響)
總結1Prompt1Story的流程
Prompt Consolidation (PCon): 將身份提示和所有幀提示串聯(lián)成一個長提示。
Singular-Value Reweighting (SVR): SVR+: 增強當前幀提示的語義信息、SVR-: 減弱其他幀提示的語義信息。
Identity-Preserving Cross-Attention (IPCA): 在交叉注意力層,強化身份提示特征,抑制幀提示特征。
通過這三個步驟的協(xié)同作用,1Prompt1Story能夠有效地生成人物身份一致,且圖像內(nèi)容準確對應每個場景描述的故事圖像。
實驗
正如圖中所示的定性比較結果,1Prompt1Story方法在幾個關鍵表現(xiàn)上都非常出色。這包括能夠準確地保留人物身份、精確地描繪圖像幀的內(nèi)容,以及生成多樣化的物體姿態(tài)。反觀其他方法,在這些方面就顯得不足了。
具體來說,在左側的例子中,PhotoMaker、ConsiStory和StoryDiffusion生成的「龍」這個主體,都出現(xiàn)了身份不一致的問題,龍看起來不像同一個龍。
另外,IP-Adapter則傾向于生成姿勢和背景都非常相似的圖像,并且常常忽略了幀提示中關于細節(jié)的描述。ConsiStory在生成連貫的圖像序列時,也表現(xiàn)出背景重復的問題。
除了定性比較,研究人員還進行了定量分析。在衡量文本與圖像對齊程度的CLIP-T得分上,1Prompt1Story方法已經(jīng)非常接近原始的SDXL模型。
在身份一致性方面(使用DreamSim指標評估),也僅次于IP-Adapter。
然而,需要指出的是,IP-Adapter之所以在身份相似性上表現(xiàn)很高,很大程度上是因為它傾向于生成姿勢和布局非常相似的人物圖像,這實際上限制了多樣性。
正如下方的圖表所展示的,1Prompt1Story方法位于圖表的右上角,這表明它在文本-圖像對齊和身份一致性之間取得了良好的平衡。
更多結果
多主體故事生成
與不同的基礎模型結合
長故事生成