
作者: Boxu Li
文字到圖像的擴散模型可以生成令人驚艷的視覺效果,但它們有一個著名的盲點:空間推理。當前最好的模型在要求特定布局時,通常會錯置場景中的物件或奇怪地融合它們。例如,「泰迪熊右邊的狗」這樣的提示可能會讓模型困惑——它可能會將狗放在左邊,甚至將狗和泰迪熊融合在一起。這些是小孩子覺得微不足道的任務,而擴散模型卻經常失敗[1]。當出現不尋常的組合時,問題會更加明顯(想像一下長頸鹿站在飛機上方)[1]。傳統的解決方法涉及在特殊數據上對模型進行微調或在生成時添加手工製作的空間損失,但這兩種方法都有缺點[1]。微調需要昂貴的再訓練,並可能改變模型的創造力或風格。而手工製作的損失則編碼了我們自己對空間關係的不完美假設,通常會產生次優結果。
進入 Learn-to-Steer,這是 NVIDIA 的新方法(將在 WACV 2026 上亮相),通過直接從模型本身學習來解決空間推理問題。與其硬編碼物體應去的地方,這個想法是教會模型在圖像生成過程中如何自我引導,使用數據驅動的損失函數。在這篇博客文章中,我們將探討在擴散模型中空間推理的挑戰,以及 NVIDIA 的 Learn-to-Steer 方法如何在幕後運作。我們將深入研究其架構,包括如何在推論時利用交叉注意力圖和學習的分類器,並審視基準測試上的量化增益。我們還將批判性地檢視在推論時間優化的取捨(如計算成本和通用性),並考慮對提示忠誠度、多模態對齊和生成模型設計未來的廣泛影響。
現代擴散模型如 Stable Diffusion 可以以驚人的細節繪製出寫實或夢幻的場景。然而,如果要求簡單的空間排列,你可能會失望。空間推理——理解和生成正確的相對位置(左/右、上/下、內/外)——仍然是一個難題。指定物件關係的提示通常會產生與請求不符的圖像。例如,一個提示「書架上面有一隻貓」可能會生成一隻在書架旁邊的貓或一個超現實的貓-書架混合體。為什麼會這樣呢?
其中一個原因是擴散模型從大量的圖像-文本數據集中學習,而這些數據集中明確的空間關係很少見或模糊不清。它們在風格和物體保真度上表現出色,但訓練數據可能不會強烈強調每個物體應該相對於其他物體出現的位置。因此,模型對空間術語(例如「在上面」、「在右邊」)的內部表示較弱。最近的基準測試證實,即使是最先進的文本到圖像模型在涉及簡單幾何關係的空間任務上仍然存在困難[2]。這些失誤主要表現為三個問題:物件放置錯誤、提示中提到的物件缺失,或當模型試圖將兩個事物混合在一起時出現融合、嵌合的物件[3]。簡而言之,模型通常知道你要求的是什麼,但不知道該放在哪裡。
現有的方法已嘗試解決這一差距。一些研究人員對具有已知佈局或關係的圖像進行擴散模型的微調,有效地重新訓練模型以具備空間感知能力。其他人則使用測試時干預:例如,通過額外的損失項來引導生成,這些損失項懲罰重疊或獎勵正確的物體排序。然而,手動設計這樣的損失函數是棘手的——需要猜測如何使用模型的內部數據來測量「左側」或「上方」。這些手工製作的損失可能在簡單情況下有效,但對於更複雜的場景可能會編碼次優的啟發式方法,從而失敗[4]。另一方面,微調可以實現良好的空間準確性(例如,COMPASS 方法通過空間對齊的數據重新訓練模型[5]),但這需要大量資源,並可能無意中降低其他圖像品質(在一個案例中,微調空間關係後,顏色準確性和物體計數變差了[6])。需要一種解決方案,能夠在不重新訓練整個模型或依賴脆弱的啟發式方法的情況下提高空間保真度。

NVIDIA 的 Learn-to-Steer 框架提供了一種新觀點:與其強加規則,不如從模型自身的信號中學習[7]。關鍵見解是擴散模型在生成過程中已經產生了豐富的內部數據,特別是以 交叉注意力圖 的形式,這些數據可以用來理解空間關係。在擴散去噪過程的每一步都會生成交叉注意力圖,這些圖基本上告訴我們哪些圖像區域正在關注提示中的特定字詞[8]。換句話說,它們形成了文本標記(如「狗」、「泰迪熊」、「在右邊」)和圖像位置之間的橋樑[8]。先前的研究注意到這些注意力圖可以被解釋為定位物體,因此自然會使用它們作為指導。由於這種可解釋性和直接的文本圖像對齊,測試時優化方法通常選擇交叉注意力圖作為其空間損失的目標[9]。
Learn-to-Steer (L2S) 基於這個想法,通過從數據中學習目標函數,而不是手工設計一個。它引入了一個輕量級的關係分類器,該分類器在離線時進行訓練,以從擴散模型的交叉注意力模式中識別空間關係[7]。在推理過程中,這個分類器充當學習的損失函數:它評估生成的圖像(到目前為止)是否正確反映了提示的關係,如果不正確,它會在正確的方向上引導生成[7]。實質上,NVIDIA 的團隊教會了擴散模型批評自己的注意力圖並相應地進行調整,這一切都是即時完成的,無需改變模型權重。
訓練這個關係分類器比聽起來要更微妙。一個簡單的方法可能是:使用一堆已知關係的圖片(例如,註釋為「狗在貓的左邊」的圖片),運行擴散模型的反轉過程以獲得「狗」和「貓」的注意力圖,然後訓練分類器對這些圖輸出「左邊」的關係。這確實提供了監督。然而,一個意外的陷阱出現了——作者稱之為**「關係洩漏」問題**[10][11]。分類器開始作弊,通過在注意力圖中捕捉到關係的語言痕跡,而不是真正理解空間佈局。這怎麼可能呢?事實證明,當你使用正確的描述性提示反轉圖像時(比如「狗在貓的左邊」),關於「左」這個詞的微妙線索可能會被編碼在模型的內部激活中。然後,分類器會抓住這些線索(有效地從注意力圖中讀出提示),而不是學習「左邊」的視覺概念[10][12]。結果:它在訓練數據上表現良好,但在生成時失敗,因為在生成中,提示的關係詞總是與圖像匹配(如果分類器只是重複提示,則無法區分空間安排是否正確)。
為了解決這個問題,Learn-to-Steer 採用了巧妙的「雙反轉訓練策略」[13][14]。對於每張訓練圖像,他們生成兩個版本的注意力圖:一個是正確描述空間關係的「正面提示」(例如「貓的左邊有一隻狗」),另一個是故意使用錯誤關係的「負面提示」(例如「貓的上方有一隻狗」)[15][16]。兩組注意力圖均標註了真實關係(在此例中為「左邊」),基於實際的圖像佈局。通過將同一圖像關係與相互矛盾的文本描述一起呈現,分類器被迫忽略不可靠的語言提示,而專注於注意力圖中的真正幾何模式[14]。這確保了它學會了不變性:無論提示說的是「左邊」還是「上方」,分類器必須僅從空間證據中檢測出狗實際上是在貓的左邊。這種雙反轉方法中和了洩漏問題,產生了一個真正理解空間關係的分類器,以模型的視覺理解,而不僅僅是文本提示[17]。
另一個重要的方面是此分類器的訓練數據。團隊從真實圖像和合成圖像中汲取靈感,以涵蓋廣泛的場景範圍[18]。真實圖像(來自名為 GQA 的數據集)提供了自然的複雜性和多樣的物體排列,但當場景擁擠時,它們的注意力圖可能會顯得雜亂[18]。合成圖像則是以受控方式生成的(使用 Image-Generation-CoT 方法),提供了更簡單的場景和更清晰的注意力模式,更接近於擴散生成過程中遇到的情況[18]。通過結合真實和合成數據,分類器能夠同時獲得真實感和清晰度。消融研究證實,使用這兩種數據源比單獨使用其中之一能夠提高準確性[19]。
一旦關係分類器訓練完成,Learn-to-Steer 就會將其插入擴散過程中,以在生成時引導圖像。這是在推理(生成時間)期間發生的,無需更改擴散模型的權重。以下是其工作原理:
當給定一個包含空間關係的文本提示時(例如,「一隻狗在泰迪熊的右邊」),系統首先解析提示以識別主體、對象和關係(在這個例子中,主體:狗,關係:在右邊,對象:泰迪熊)[20]。在擴散模型開始將隨機潛在噪聲去噪成圖像時,Learn-to-Steer 會在某些時間步驟介入。在選定的頻率下(例如在每一步或擴散過程前半部分的每幾步),它會提取與所涉及的兩個對象相對應的交叉注意力圖[20]。這些基本上是模型當前對每個對象在新生成圖像中可能位置的「信念」。提取的注意力圖會被輸入訓練好的關係分類器,生成可能關係的概率分佈(左邊、右邊、上方、下方等)[20][21]。由於我們知道提示中期望的關係,系統可以計算損失——例如,如果分類器對正確關係不夠自信,則會受到交叉熵損失的懲罰[20][22]。
現在進入引導部分:此損失的梯度在該時間步驟被反向傳播到擴散模型的潛在表示(即噪聲中的進行中圖像)[23]。實際上,這意味著將潛在變量推動到應增加分類器認為正確關係概率的方向。直觀來看,如果分類器認為狗在當前的部分圖像中沒有充分地位於泰迪熊的右側,梯度將會調整潛在變量,使狗的特徵向右移動(或泰迪向左移動)。然後,擴散過程會使用這個稍微調整過的潛在變量和噪聲繼續進行。通過反覆應用這些引導更新,生成過程被“引導”到符合空間指令的圖像,而不需要明確告訴模型每個物體的位置。這就像在繪畫過程中有教練在耳邊低語:“把狗往右移一點。”

Learn-to-Steer 的一個令人興奮的方面是它可以在不同的擴散架構中運作。作者展示了它在 Stable Diffusion(一個受歡迎的基於 UNet 的模型)和 Flux(一個基於 MMDiT 的擴散模型)上運行,僅需進行最小的更改[24]。這種方法具有架構無關性,因為它依賴於通用信號(注意力圖)和一個單獨的分類器。這意味著未來或替代的文本到圖像模型可以通過在該模型的注意力輸出上訓練一個新的分類器來「插入」相同的引導機制。此外,雖然系統是在單物件對關係上訓練的,它也能處理鏈接多重關係的提示。例如,考慮這樣一個提示:「一隻青蛙在一雙運動鞋之上,一個茶壺之下。」這涉及三個物件的兩個關係(「青蛙在運動鞋之上」和「運動鞋在茶壺之下」)。Learn-to-Steer 通過在不同時間步間交替優化重點來處理這類情況[25][26]。它將在一步中優化青蛙-運動鞋的關係,然後在下一步中優化運動鞋-茶壺的關係,如此循環下去。使用這種策略,該方法能在單一圖像中強制實施多個空間約束,這是靜態損失函數或天真的提示常常無法實現的。(在實踐中,作者發現以簡單鏈接的方式表述多重關係提示——例如「一隻青蛙在一雙運動鞋之上,一個茶壺之下」——比使用連詞的冗長句子能得到更好的結果[27]。)
Learn-to-Steer 在生成圖像的空間理解上提高了多少?論文報告在標準文本到圖像空間關係評估基準上準確度有顯著提升。使用了兩個基準:GenEval(檢查生成的圖像是否滿足給定的關係提示)和 T2I-CompBench(文本到圖像組合基準,另一個空間排列測試)。團隊評估了四種不同的擴散模型——兩個 Flux 變體和 Stable Diffusion 2.1 和 1.4,對比了原始生成和各種方法。結果顯示了一個明顯的趨勢:學習導向目標遠遠超過無引導模型和先前的方法 [28]。一些亮點:
同樣引人注目的是定性結果。該論文的例子顯示,通過Learn-to-Steer,生成的圖像忠實地反映了提示中的空間指令,同時保持了高質量的圖像[40]。在標準擴散或其他方法可能會錯誤放置物體或遺漏某些實體的情境中,L2S生成的圖像中物體正確排列且全部出現。它還能優雅地處理不尋常的請求——例如,它可以正確渲染「牙刷下方的公車」或「衝浪板下方的大象」,而不會產生其他方法帶來的奇異混合[41]。NVIDIA團隊指出,他們的方法克服了三種常見的失敗模式:它修正了物體錯置,防止實體忽略(提示中的每個物體都出現在圖像中),並避免了物體融合(不再有模型將兩個物品混淆而造成的超現實混合物)[3]。在並排比較中,其他基準可能會遺漏場景中的花瓶或斑馬,或將它們糾纏在一起,而Learn-to-Steer的輸出包含所有正確的部分並且配置正確[3]。這種提示準確性的提升——即獲得完全符合請求的位置和內容——是生成式AI輸出可靠性的一大進步。
Learn-to-Steer在推理時進行優化的方法帶來了優勢和考量。優點是測試時優化意味著我們不需要修改模型的權重或進行昂貴的微調以完成空間任務[42]。相同的預訓練模型可以在需要時靈活地「引導」,在不需要空間控制時保持其原有的多樣性[34]。這避免了微調模型可能因過度擬合空間關係而犧牲其他技能(如顏色準確性或計數)的權衡[34]。在NVIDIA的方法中,如果提示不指定空間關係,可以正常運行擴散模型而無需額外負擔,保持原有速度和輸出特性。只有在提示需求時才會引導[43]。
然而,另一方面是當我們確實在推理時引入這種損失時,它會帶來計算成本。這個過程需要在生成過程中多次運行分類器並反向傳播梯度,這可能會大大減慢圖像合成的速度。作者測量了速度的減慢程度:對於較小的 Flux 1.0-schnell 模型,生成從每張圖像約 0.5 秒增加到使用 Learn-to-Steer 時約 16.5 秒,速度大約慢了 33 倍[44]。對於較大的 Flux 1.0-dev,11 秒變成了 6 分鐘(慢了約 33 倍)。在他們的硬體上,穩定擴散 2.1 通常需要大約 4.5 秒生成一張圖像,但使用導引時增加到約 90 秒(慢了約 20 倍)[44]。SD1.4 也有類似的增長(從 4.5 秒到約 80 秒)[44]。這些都是不可忽視的開銷。在速度和可擴展性至關重要的情況下(例如高吞吐量圖像生成或實時應用),對每張圖像應用測試時優化可能是不切實際的。
有一些方法可以減輕這種情況。一種方法是限制優化應用的時間和方式。在他們的實施中,Learn-to-Steer 只在擴散步驟的前半部分進行優化[23],這已被證明足以為圖像設定方向。此外,如前所述,它可以選擇性地使用:AI 圖像服務可以正常生成圖像,只有當結果看起來在空間上有偏差(或用戶明確要求嚴格的空間佈局)時,才會在啟用 L2S 的情況下運行第二次處理。另一個角度是提高效率:由於關係分類器相當小,且只涉及少量的注意力圖,主要的開銷來自於在大型擴散模型中進行多步的反向傳播。未來的研究可能會探索使用更好的優化器或部分更新來加速這一過程。然而,目前該方法最適合於那些準確性比速度更重要的情況,例如生成精確的設計圖或場景,或者處理質量勝過數量的小批量圖像。
通用性和穩健性是權衡的另一個層面。Learn-to-Steer 框架在模型架構(UNet vs MMDiT)上表現出驚人的通用性[24],這表明它可能適用於其他擴散模型或未來系統,所需的適應最小。要求是能夠從模型中提取交叉注意力或類似的對齊信號。它還展示了在處理多重關係和從未見過的物體組合上的穩健性,這歸功於其訓練方式(專注於通用的注意力模式)。然而,值得注意的是一些限制。該論文的分析指出,什麼算作「上」或「下」是用 2D 圖像的像素和注意力來判斷的,這可能並不總是與真正的 3D 空間理解對齊[45]。例如,如果一個物體在 3D 空間中位於另一物體前面,從某個攝影角度看,它可能在 2D 圖像中出現在另一物體的下方,混淆空間關係。Learn-to-Steer 並未明確建模深度或真實世界的大小關係;它純粹是從視覺注意力的疊加中學習。因此,在具有透視的複雜場景中,它可能會強制一種在 2D 投影中合理但在真實物理意義上不合理的關係[45]。此外,儘管該方法可以處理多達三種關係,但隨著場景變得非常擁擠,其準確性會下降[46]。生成一個完美的場景,比如五個物體都相對於彼此,仍然是一個未解的挑戰——有時候方法成功,有時候則不然[37]。這些限制突顯出改進的空間,可能需要引入更複雜的推理或多步計劃來應對複雜的提示。
透過大幅提升空間保真度,NVIDIA 的 Learn-to-Steer 標誌著邁向更值得信賴的多模態系統的重要一步。對於使用者而言——無論是藝術家、設計師還是企業開發者——擁有一個真正尊重空間指令的文本到圖像模型意味著減少挫折和手動修正。這讓我們更接近*“你所提示的就是你所得到的。”*這種保真度不僅僅是關於美麗的圖片;它關乎以可控的方式將 AI 的輸出與使用者的意圖對齊。從某種意義上說,它增強了多模態對齊:文字模態(語言中描述的關係)在視覺模態(生成的圖像)中更忠實地反映出來[3]。空間推理的改進對齊也可能延伸到提示的其他方面,因為這種方法顯示有可能針對特定的失敗模式(如物件擺放)而不破壞其他方面(如顏色、數量或整體一致性)[34]。這證明我們可以在後期將領域特定的“常識”注入大型生成模型,而不是期望單個巨型模型一開始就全部正確。
使用交叉注意力圖作為教學信號的成功可能會影響未來模型設計和訓練方式。一個可能性是,未來的擴散模型可能會內建監控或強制某些約束的模組。例如,下一代模型可能在訓練過程中(而不僅僅是推論中)包含一個學習的損失(如這個分類器)。這樣的模型將有效地在訓練過程中有一個指導者,當物件安排不當時進行懲罰,可能從頭到尾內化空間推理。長期來看,這可能減少測試時優化的需求。在此期間,像 Learn-to-Steer 這樣的方法提供了一種多功能的工具包:它們可以作為一種訓練後專業化的形式,疊加在現有模型之上。這對於企業用例來說是很有吸引力的,因為這樣可以將一個通用的預訓練模型安全地適應於特定需求(如始終遵循佈局指令),而不會危及模型在其他任務上的完整性。
這裡還有一個關於數據驅動損失設計的更廣泛訊息。手工製作損失函數基本上是在猜測模型應該如何表現,而學習損失函數則讓模型告訴我們什麼有效。在這裡,通過探測模型自己的注意力,研究人員讓數據(倒轉的圖像和注意力圖)揭示正確的目標。這一原則可以應用於其他生成對齊問題。我們可能會看到類似的「學習引導」,以確保屬性一致性(例如,確保「紅色立方體」是紅色的)、計數(確保五個蘋果的提示產生五個不同的蘋果),甚至是多個圖像的風格一致性。每一項都涉及訓練一個小型網絡來引導生成的特定方面。
最終,提示詞工程可能會因為這些技術而從一門藝術轉變為一門科學。我們不再需要扭曲文字提示來讓模型按我們的意思去執行(「也許如果我說『一隻狗在玩具熊的最右邊』它就會聽話……」),而是可以依賴學習得來的控制器來強化解釋。這使得用戶可以用簡單明瞭的語言來指定需求,並信任系統處理其餘的部分。在多部分提示或複雜場景中,能夠維持對每個關係或細節的控制意味著生成模型可以用於更多組合任務——例如草擬分鏡腳本、設計用戶介面佈局或生成科學圖表——在這些任務中,空間準確性是至關重要的。
總結來說,NVIDIA 的 Learn-to-Steer 論文展現了機器學習與實際問題解決的深刻平衡。透過利用模型自身的知識(經由交叉注意)並在推理時注入學習目標,它在空間請求中達到了一種新的提示保真度。這種方法確實在計算成本上有取捨,但它為生成模型的高度針對性改進打開了大門,而無需從頭開始重新訓練。隨著擴散模型在 AI 內容創作中變得越來越重要,這類解決方案確保了圖像中「細微細節」如物件位置不會輕易被忽略。這是如何通過一點額外智能(以學習損失函數的形式)引導龐大生成模型達到更高與人類意圖對齊的引人注目的例子[3][47]。未來的道路可能涉及將此類機制直接整合到模型訓練中,或將其擴展到新的約束類型,但有一點很清楚:讓模型學會如何自我引導是一個強大的想法,我們很可能在未來看到更多。
[1] [4] [7] 用於文本生成圖像的推理時優化數據驅動損失函數
https://learn-to-steer-paper.github.io/
[2] [3] [5] [6] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] 基於數據驅動的損失函數用於文本到影像生成的推理時間優化