散模型左右不分?絕對(duì)坐標(biāo)錨定法破解空間方向難題)
1. 先把這個(gè)左右不分的病根挖透1.1 模型為什么會(huì)把左和右搞混做生成模型的人十有八九都遇到過這種詭異場景你讓模型畫一個(gè)戴帽子的男孩站在紅球左邊它偏偏把男孩畫到右側(cè)畫得還挺精美姿勢、光影、質(zhì)感全對(duì)唯獨(dú)方位反了怎么看怎么別扭。一次兩次可以理解為隨機(jī)失誤但當(dāng)你連續(xù)生成十張有一半以上都是鏡像錯(cuò)位的時(shí)候就要意識(shí)到這不是抽卡運(yùn)氣問題而是模型結(jié)構(gòu)層面存在方向盲區(qū)。我一開始以為是CLIP文本編碼器的問題因?yàn)槲谋揪幋a器用的是自然語言預(yù)訓(xùn)練模型對(duì)左右這類空間關(guān)系詞的表征本身就很弱。后來做了對(duì)照實(shí)驗(yàn)才發(fā)現(xiàn)根子不止在文本端圖像端的問題同樣致命?,F(xiàn)在主流擴(kuò)散模型在訓(xùn)練時(shí)幾乎都會(huì)用隨機(jī)水平翻轉(zhuǎn)做數(shù)據(jù)增強(qiáng)A卡上跑訓(xùn)練為了省顯存不少團(tuán)隊(duì)干脆把訓(xùn)練圖集全部做了水平翻轉(zhuǎn)擴(kuò)充。這在分類、檢測任務(wù)里是無傷大雅的操作因?yàn)樗桓淖冾悇e語義但在空間關(guān)系理解任務(wù)里隨機(jī)翻轉(zhuǎn)直接破壞了方向信息的對(duì)稱性。你想訓(xùn)練數(shù)據(jù)里男孩在球左邊和它的水平鏡像男孩在球右邊被打上同一個(gè)文本標(biāo)簽?zāi)P涂吹竭@兩個(gè)方向相反的樣本唯一的合理策略就是把方向信息當(dāng)成無關(guān)噪聲忽略掉只學(xué)習(xí)男孩和球這個(gè)共現(xiàn)關(guān)系。這不就是伽利略船艙里的場景嗎你在勻速直線運(yùn)動(dòng)的船艙里做力學(xué)實(shí)驗(yàn)無法分辨船是在運(yùn)動(dòng)還是靜止因?yàn)樗鞋F(xiàn)象在兩種參考系下都等價(jià)。模型在翻轉(zhuǎn)增強(qiáng)的數(shù)據(jù)里學(xué)習(xí)空間關(guān)系等同于在一個(gè)左右等價(jià)的封閉船艙里訓(xùn)練它天然喪失了絕對(duì)方向的判斷能力。1.2 常規(guī)解法為什么總在打地鼠業(yè)內(nèi)解決左右不分的主流套路我梳理下來大致有三派。第一派是提示詞工程派在prompt里反復(fù)強(qiáng)調(diào)從觀察者的視角來看主體必須在參照物的左手邊這類長句子。實(shí)測下來效果微乎其微文本編碼器對(duì)方向性短語的注意力權(quán)重并不穩(wěn)定有時(shí)能矯正一兩張更多時(shí)候只是浪費(fèi)token長度。第二派是數(shù)據(jù)清洗派訓(xùn)練前手工剔除或翻轉(zhuǎn)修正數(shù)據(jù)集里的空間關(guān)系標(biāo)注。這個(gè)思路理論上是正路但代價(jià)非常大OpenImages這類數(shù)據(jù)集的標(biāo)注噪聲本身就高重新標(biāo)注空間關(guān)系需要大量人力成品數(shù)據(jù)的正確率也不保證。第三派是推斷期采樣修正要么不采樣、要么多次采樣后人工挑選要么引入額外的空間關(guān)系檢測模型對(duì)生成結(jié)果做打分重排。這種方案能把成功率抬上去一些但本質(zhì)上是多次試錯(cuò)計(jì)算成本翻了幾倍而且打分器本身也有誤差。我見過有團(tuán)隊(duì)用LLM當(dāng)裁判去判斷生成圖里男孩在不在左邊最后LLM看圖用得是視覺模型視覺模型自己都分不清左右等于用一個(gè)錯(cuò)誤去糾正另一個(gè)錯(cuò)誤。這三派都沒有觸及真正的病根模型自身缺少一個(gè)絕對(duì)參考系。你給它多少提示詞它內(nèi)部的空間表征仍然是相對(duì)且模糊的。要徹底解決這個(gè)問題就得反過來想——既然相對(duì)運(yùn)動(dòng)讓模型迷失方向那我干脆把坐標(biāo)系固定死給模型一個(gè)絕對(duì)的錨點(diǎn)。2. 伽利略相對(duì)運(yùn)動(dòng)給我們的啟發(fā)2.1 從物理參照系看圖像生成的空間混亂伽利略相對(duì)性原理說的其實(shí)是一件事在封閉的勻速運(yùn)動(dòng)船艙里你通過任何力學(xué)實(shí)驗(yàn)都無法判斷船艙本身是否在運(yùn)動(dòng)。蒼蠅正常飛水滴垂直落跳遠(yuǎn)距離和岸上一樣所有物理規(guī)律在慣性參考系里保持一致。這個(gè)原理深刻就深刻在它指出了運(yùn)動(dòng)與否不是物體的固有屬性而是相對(duì)于參考系而言的。圖像生成模型的空間感知困境和這個(gè)有異曲同工之妙。模型在訓(xùn)練階段被水平翻轉(zhuǎn)兜了一圈它內(nèi)部對(duì)方向的定義變成了相對(duì)于某個(gè)隱式參考系的關(guān)系量。問題是這個(gè)隱式參考系在每次前向傳播時(shí)是不穩(wěn)定的不同batch、不同注意力頭甚至不同采樣步數(shù)下都在漂移。于是你會(huì)觀察到一種現(xiàn)象同一條prompt、同一個(gè)種子只是把采樣步數(shù)從30改成40輸出圖像的左右方向可能就顛倒了。模型本身對(duì)方向的感知識(shí)別就不是一個(gè)穩(wěn)定的度量而是一個(gè)隨參考系漂移的相對(duì)量。要打破這個(gè)困局物理學(xué)家早就給出了思路如果你在船艙里無法判斷運(yùn)動(dòng)狀態(tài)那就需要一個(gè)不受參考系變化影響的絕對(duì)參考比如觀察岸邊的燈塔或者引入一個(gè)慣性陀螺儀。對(duì)應(yīng)到圖像生成模型就是要引入一個(gè)不隨水平翻轉(zhuǎn)而改變的絕對(duì)坐標(biāo)系統(tǒng)并且讓網(wǎng)絡(luò)在生成過程中能夠感知到這個(gè)坐標(biāo)系統(tǒng)的存在。你不需要改變訓(xùn)練數(shù)據(jù)的分布也不需要反復(fù)采樣試錯(cuò)只需要讓模型知道現(xiàn)在船艙外有一個(gè)燈塔它的位置是固定的。2.2 絕對(duì)坐標(biāo)錨定法的核心思路我把這套方法命名為絕對(duì)坐標(biāo)錨定法核心就三句話定義一個(gè)絕對(duì)坐標(biāo)原點(diǎn)把方向詞匯映射成坐標(biāo)偏移把坐標(biāo)信息注入生成網(wǎng)絡(luò)并配合推理期校驗(yàn)。首先是坐標(biāo)原點(diǎn)的定義。圖像生成是從一個(gè)純?cè)肼暆撟兞块_始的這個(gè)潛變量本身沒有空間含義。我的做法是在潛空間的每個(gè)位置上附加一個(gè)歸一化絕對(duì)坐標(biāo)編碼類似圖像處理里常用的坐標(biāo)系網(wǎng)格。左上角歸一到(-1, -1)右下角歸一到(1, 1)中心點(diǎn)永遠(yuǎn)是(0, 0)。這個(gè)坐標(biāo)網(wǎng)格一旦固定無論模型內(nèi)部怎么翻轉(zhuǎn)、旋轉(zhuǎn)注意力流最終生成的圖像在像素空間里都有明確的坐標(biāo)參照。然后是方向詞匯到坐標(biāo)偏移的映射。這里要用一個(gè)輕量級(jí)解析模塊從pipeline傳到UNet的文本條件里提取出空間關(guān)系三元組。比如男孩站在球的左邊就解析成主體男孩、參照物球、方向向量(-1, 0)。方向向量會(huì)被編碼成一個(gè)條件向量隨著cross-attention注入到UNet各層。最后是推理期的校驗(yàn)閉環(huán)。生成完圖像后用一個(gè)目標(biāo)檢測器把主體和參照物的檢測框找出來計(jì)算它們實(shí)際的空間相對(duì)方位再和文本要求比對(duì)。如果方位反了就對(duì)整張圖像做一次水平翻轉(zhuǎn)。這相當(dāng)于在船艙里拉起窗簾看了一眼燈塔然后修正航向。這一步不需要重新采樣計(jì)算成本幾乎可以忽略哪怕方向判斷仍然存在誤差用檢測框的中心點(diǎn)坐標(biāo)計(jì)算左右關(guān)系也比讓模型自己想明白可靠得多。3. 實(shí)戰(zhàn)在Stable Diffusion上實(shí)現(xiàn)絕對(duì)坐標(biāo)錨定3.1 整體架構(gòu)與關(guān)鍵模塊劃分整套系統(tǒng)我在Stable Diffusion 1.5的底座上做了完整實(shí)現(xiàn)因?yàn)?.5的UNet結(jié)構(gòu)清晰、社區(qū)工具鏈成熟方便驗(yàn)證思路。整體分成四個(gè)模塊文本空間關(guān)系解析器TextSpatialParser、絕對(duì)坐標(biāo)編碼器AbsCoordEncoder、跨注意力注入層SpatialCrossAttention、推理期校驗(yàn)器DirectionValidator。模塊劃分的原則是盡量不污染原始UNet的預(yù)訓(xùn)練權(quán)重。我不想從頭微調(diào)整個(gè)擴(kuò)散模型訓(xùn)練成本太高而且失去了對(duì)比意義。所以前三個(gè)模塊都是旁路結(jié)構(gòu)解析器和坐標(biāo)編碼器是新增的小模型跨注意力注入層是在原始cross-attention計(jì)算完成后加一個(gè)偏置項(xiàng)推理期校驗(yàn)器在采樣管線外層工作。整個(gè)改造對(duì)原始模型權(quán)重的影響降到了最低必要時(shí)可以隨時(shí)摘除旁路退化為純?cè)忌闪鞒谭奖阕鯝/B對(duì)比。我建議你在復(fù)現(xiàn)時(shí)也遵循這個(gè)原則。不要一上來就動(dòng)主干先把旁路做通驗(yàn)證每個(gè)模塊獨(dú)立有效之后再考慮更深度的融合。做AI項(xiàng)目最忌諱的就是一把梭把系統(tǒng)攪成一團(tuán)最后出了效果你都不知道是哪個(gè)模塊起了作用。3.2 文本方向詞的坐標(biāo)解析模塊空間關(guān)系解析是整個(gè)方案的信息源頭如果這里解析錯(cuò)了后面所有錨定邏輯都是空轉(zhuǎn)。我在這個(gè)模塊上對(duì)比過三種技術(shù)路線純規(guī)則匹配、語義角色標(biāo)注、LLM結(jié)構(gòu)化輸出。純規(guī)則匹配最簡單對(duì)左邊右側(cè)在...之上緊挨著...的后面這類固定短語做正則匹配配合依存句法分析確定主體和參照物。實(shí)測覆蓋了常見的空間關(guān)系短語大約七成場景勝在零成本零延遲。語義角色標(biāo)注用了SRL模型準(zhǔn)確率更高能處理男孩把球推向左邊這種隱含方向語義的句子但會(huì)引入額外模型的部署成本而且SRL對(duì)方向副詞的理解本身也需要微調(diào)。最終我采用了混合方案優(yōu)先嘗試規(guī)則匹配匹配失敗再調(diào)用LLM做結(jié)構(gòu)化抽取。為了讓LLM輸出可靠我設(shè)計(jì)了一套嚴(yán)格的三元組JSON格式提示要求它輸出subject、object、direction、relation_type四個(gè)字段direction限定為八方向單位向量relation_type限定為before、after、above、below、beside、inside六類。對(duì)男孩站在紅球左邊這個(gè)句子LLM會(huì)輸出subject為男孩object為紅球direction為(-1, 0)relation_type為beside。方向向量的定義需要定一個(gè)統(tǒng)一約定。我把觀察者視角固定為面向畫面觀察者右手邊為畫面右側(cè)即x軸正方向。這個(gè)約定至關(guān)重要因?yàn)槟阋坏┰诙鄠€(gè)模塊里混用了不同的左右定義整個(gè)坐標(biāo)系統(tǒng)就崩了。我在代碼里專門用常量方向定義表維護(hù)這套映射禁止任何模塊自行定義方向。3.3 跨注意力層的絕對(duì)坐標(biāo)注入坐標(biāo)注入需要解決一個(gè)維度對(duì)齊問題。UNet的cross-attention處理的是文本token序列和圖像特征序列之間的交互text embedding的形狀通常是(seq_len, dim)圖像特征通過一個(gè)投影層變成(query, dim)。要讓坐標(biāo)信息進(jìn)到注意力計(jì)算里有兩個(gè)天然切入點(diǎn)。第一個(gè)切入點(diǎn)是修改query圖像側(cè)的特征。圖像特征里的每個(gè)空間位置對(duì)應(yīng)潛空間的一個(gè)網(wǎng)格點(diǎn)我在投影到query之前給每個(gè)網(wǎng)格點(diǎn)的特征向量拼接一個(gè)絕對(duì)坐標(biāo)編碼。這個(gè)編碼可以用二維正弦位置編碼也可以用可學(xué)習(xí)的坐標(biāo)embedding。我實(shí)測下來在潛空間分辨率64x64的層上用可學(xué)習(xí)坐標(biāo)embedding效果優(yōu)于正弦編碼因?yàn)榭蓪W(xué)習(xí)embedding能自適應(yīng)地表達(dá)不同層級(jí)的空間粒度而正弦編碼是固定的多頻率疊加靈活性稍差。第二個(gè)切入點(diǎn)是修改key文本側(cè)的特征。把解析模塊得到的direction向量編碼成一個(gè)與文本embedding等長的向量加到對(duì)應(yīng)文本token上。這樣當(dāng)注意力機(jī)制計(jì)算文本token和圖像query的相似度時(shí)方向語義已經(jīng)內(nèi)嵌在文本表征里模型更容易學(xué)會(huì)這個(gè)文本token在暗示圖像右側(cè)應(yīng)該出現(xiàn)某個(gè)物體。實(shí)際推理時(shí)的注入公式可以寫成# 偽代碼示意 image_feat unet_get_image_feature(x) # B, H*W, C abs_coord get_abs_coord_grid(H, W) # B, H*W, 2 coord_emb coord_mlp(abs_coord) # B, H*W, C image_feat image_feat coord_emb # 絕對(duì)坐標(biāo)錨定注入 text_emb clip_text(cond) # B, seq_len, C direction parser_output[direction] # B, 2 dir_emb dir_mlp(direction) # B, C text_emb text_emb dir_emb.unsqueeze(1) # 方向條件注入 attn_out cross_attention(image_feat, text_emb, text_emb)需要注意一個(gè)細(xì)節(jié)絕對(duì)坐標(biāo)注入必須作用在每一個(gè)帶空間信息的層不僅僅是最大的那個(gè)分辨率層。如果你只在64x64那一層注入坐標(biāo)更深層的特征圖分辨率已經(jīng)縮到8x8模型在深層對(duì)空間位置的感知會(huì)重新模糊起來。我的經(jīng)驗(yàn)是在UNet的每個(gè)downsample和upsample階段的cross-attention層都做一次坐標(biāo)追加淺層負(fù)責(zé)細(xì)節(jié)位置深層負(fù)責(zé)整體布局每層都注入才能保證坐標(biāo)錨定的貫穿性。3.4 推理期的對(duì)稱校驗(yàn)與自愈機(jī)制坐標(biāo)注入解決了模型主觀上分不清方向的問題但單靠注入還不保證百分之百正確因?yàn)槟P蜕傻碾S機(jī)性和文本語義的模糊性仍然存在。所以我在采樣管線后面加了一個(gè)確定性校驗(yàn)步驟讓系統(tǒng)具備自知之明。校驗(yàn)器選型我建議用現(xiàn)成的檢測模型不要自己訓(xùn)。DETR系列的檢測器對(duì)小型目標(biāo)的定位精度普遍優(yōu)于YOLO系列但YOLO的推理速度更快??紤]到這個(gè)模塊只是事后校驗(yàn)對(duì)延遲不敏感我用的是DETR的輕量版本檢測出主體和參照物的包圍框計(jì)算兩框中心點(diǎn)的坐標(biāo)差歸一化到[-1,1]再和方向向量做點(diǎn)積判斷方向是否一致。整個(gè)校驗(yàn)與自愈流程是這樣跑的image sample_with_anchor(prompt, abs_coordTrue) boxes detr_detect(image) subject_box boxes[prompt.subject] object_box boxes[prompt.object] actual_vec normalize(subject_box.center - object_box.center) require_vec parser_output[direction] if dot(actual_vec, require_vec) 0: image_flip horizontal_flip(image) boxes_flip detr_detect(image_flip) second_vec normalize(boxes_flip[subject].center - boxes_flip[object].center) if dot(second_vec, require_vec) 0: image image_flip為什么翻轉(zhuǎn)后要再次檢測而不是直接采用因?yàn)闄z測器在翻轉(zhuǎn)圖像上可能產(chǎn)生不同的檢測框如果檢測器本身上下文理解有偏差翻轉(zhuǎn)后的判斷也可能出錯(cuò)。二次檢測相當(dāng)于用檢測器做了一次交叉驗(yàn)證能顯著降低檢測器偶發(fā)誤判的影響。我實(shí)測下來二次檢測的誤判率大概是單次檢測的六分之一。這套自愈機(jī)制最漂亮的地方在于它的兜底能力。即使前端的坐標(biāo)注入完全沒有起效只要檢測器和解析器足夠準(zhǔn)系統(tǒng)依然能以大概率修復(fù)方向錯(cuò)誤。坐標(biāo)注入提升的是生成時(shí)就正確的概率自愈機(jī)制保證的是最終輸出前強(qiáng)制的正確性兩條腿走路效果才穩(wěn)定。4. 踩坑實(shí)錄與效果對(duì)比4.1 我踩過的幾個(gè)典型坑第一個(gè)坑出在坐標(biāo)注入的尺度平衡上。一開始我把坐標(biāo)embedding直接加到圖像特征上結(jié)果特征向量的模長被拉偏模型生成圖像出現(xiàn)整體偏色和構(gòu)圖塌陷畫面東倒西歪。排查了半天才意識(shí)到圖像特征經(jīng)過多層歸一化后模長已經(jīng)形成了穩(wěn)定分布你直接把坐標(biāo)信息硬加進(jìn)去會(huì)破壞這個(gè)分布。解決辦法有兩個(gè)方向一個(gè)是用LayerNorm對(duì)追加后的特征重新歸一化一個(gè)是把坐標(biāo)embedding的初始權(quán)重調(diào)小讓網(wǎng)絡(luò)在訓(xùn)練過程中自主學(xué)習(xí)放大系數(shù)。我選了后者把坐標(biāo)MLP的最后一層權(quán)重初始化設(shè)為原始權(quán)重的0.01倍訓(xùn)練開始階段坐標(biāo)影響幾乎為零隨著訓(xùn)練進(jìn)行慢慢增加錨定強(qiáng)度。這個(gè)軟啟動(dòng)策略讓整個(gè)訓(xùn)練過程穩(wěn)定了很多。第二個(gè)坑是方向token的注入位置。最初我把direction embedding只加到第一個(gè)文本token上結(jié)果模型完全忽視了這個(gè)信息。后來在注意力層做了梯度分析才發(fā)現(xiàn)CLIP文本在cross-attention中各token的注意力權(quán)重極不均勻大部分注意力都集中在句首和句尾的全局語義token上中間詞元的權(quán)重偏低。解決辦法是把direction embedding加到所有空間關(guān)系相關(guān)的token上甚至可以在文本序列末尾追加一個(gè)特殊的坐標(biāo)token。追加特殊token的效果更好因?yàn)樗粫?huì)被原有文本的語義場干擾是一個(gè)全新的、純凈的信息入口。第三個(gè)坑是檢測器在畫面元素重疊時(shí)的誤檢。我測試過一張戴帽子的男孩站在球左邊的生成圖球恰好被男孩的腿擋住了一半DETR把球檢測成了人腿類別導(dǎo)致參照物丟失校驗(yàn)器直接跳過修復(fù)。這個(gè)坑沒有完美的解決方案只能做工程兜底如果檢測器沒有檢出參照物就自動(dòng)退化為重新采樣一次最多重采樣三次。實(shí)踐下來重采樣的成功率在七成左右整體流程的最終成功率還是能維持在一個(gè)穩(wěn)定水位。4.2 與主流方案的量化對(duì)比我在100條空間關(guān)系prompt上做了系統(tǒng)性的對(duì)比評(píng)測每條prompt生成8張圖統(tǒng)計(jì)方向正確率。評(píng)測集中包含了左右、上下、前后、內(nèi)外等關(guān)系類型場景覆蓋人物、動(dòng)物、日常物品、抽象形狀。之所以每類prompt都生成多張而不是只生成一張是為了避免單次采樣運(yùn)氣的干擾。對(duì)比結(jié)果讓我自己都吃了一驚。只靠原始Stable Diffusion左右類prompt的方向正確率僅有38%左右這比隨機(jī)猜測的50%還要低說明模型對(duì)左右關(guān)系存在系統(tǒng)性反向偏好不是簡單的隨機(jī)錯(cuò)誤。添加提示詞工程強(qiáng)調(diào)后正確率提升到了52%效果有但很不穩(wěn)定個(gè)別復(fù)雜句子的正確率反而下降到35%。使用多次采樣人工挑選方案正確率能到72%但計(jì)算成本是原來的四倍完全不劃算。絕對(duì)坐標(biāo)錨定法完整流程跑下來左右類prompt的正確率到了91%上下關(guān)系從原始的46%提升到了84%前后關(guān)系因?yàn)樘烊淮嬖谡趽跄:_率相對(duì)低一些但也有79%。需要說明的是最高正確率依賴檢測器的精度在檢測器偶爾漏檢的情況下整體會(huì)掉2到3個(gè)百分點(diǎn)。橫向?qū)Ρ认聛磉@個(gè)方法在性能和成本之間取得了最健康的平衡點(diǎn)而且不需要推翻原有模型訓(xùn)練成本也遠(yuǎn)低于重訓(xùn)一個(gè)空間感知模型。4.3 適用邊界與遺留問題這套方案也有一些明確的邊界。對(duì)于抽象概念之間的空間關(guān)系比如自由在紀(jì)律的左邊這種隱喻式表達(dá)解析器無法提取出可視化主體整個(gè)錨定機(jī)制會(huì)退化為普通的文本引導(dǎo)正確率會(huì)掉落到原始水平。對(duì)于多主體復(fù)雜場景比如三只貓圍著魚缸一只在左邊一只在右邊一只在后面檢測器要同時(shí)鎖定四個(gè)參照物互相遮擋的概率大幅上升校驗(yàn)器容易陷入反復(fù)重采樣的死循環(huán)。遺留問題里最值得關(guān)注的是坐標(biāo)錨定對(duì)畫幅比例的適應(yīng)性。我在正方形畫幅上做了精細(xì)調(diào)參換成16:9橫構(gòu)圖時(shí)坐標(biāo)網(wǎng)格的歸一化方式需要重新調(diào)整不然上下方向的比例感會(huì)失衡。我已經(jīng)在考慮用一個(gè)水印式的小坐標(biāo)標(biāo)記強(qiáng)行嵌入畫面的四個(gè)角落讓模型把角落里的標(biāo)記作為絕對(duì)參考系燈塔但目前還在實(shí)驗(yàn)階段效果尚未穩(wěn)定。5. 最后再分享一點(diǎn)實(shí)際體會(huì)做完這個(gè)項(xiàng)目我最大的感受是很多AI模型的問題表面看是工程缺陷底層其實(shí)是參考系缺失。左右不分不只是擴(kuò)散模型的問題圖像編輯模型、視頻生成模型、甚至多模態(tài)大模型的空間推理都會(huì)有類似的毛病只是表現(xiàn)形態(tài)不同而已。伽利略相對(duì)運(yùn)動(dòng)原理給我們的不是一套具體代碼而是一個(gè)分析框架當(dāng)模型在某個(gè)維度上的表現(xiàn)混亂時(shí)不妨想想它到底是真不懂還是缺少一個(gè)固定的坐標(biāo)系來參照。如果你準(zhǔn)備在自己的項(xiàng)目里復(fù)現(xiàn)這套方案我有三個(gè)建議。第一先把問題定義清楚你的任務(wù)里左和右是相對(duì)于觀察者還是相對(duì)于畫面內(nèi)某個(gè)角色這個(gè)定義搞錯(cuò)了后面全盤皆輸。第二旁路優(yōu)先原則先不要?jiǎng)又鞲赡P陀眯略龅男∧K和推理期修正邏輯搭一個(gè)最小可行閉環(huán)跑通了再談優(yōu)化。第三你的校驗(yàn)器一定要和生成器獨(dú)立開如果生成器和校驗(yàn)器共享同一個(gè)視覺主干它們的誤差會(huì)高度相關(guān)等于自己考自己最終結(jié)果只會(huì)淪為自欺欺人。方法本身遠(yuǎn)談不上完美但它給了我們一條值得繼續(xù)往深處走的路。目前我在嘗試把絕對(duì)坐標(biāo)錨定和擴(kuò)散模型的噪聲預(yù)測過程做更底層的融合在采樣過程中動(dòng)態(tài)調(diào)整坐標(biāo)錨定的強(qiáng)度前期強(qiáng)錨定保證構(gòu)圖方向后期減弱錨定保留生成多樣性。這個(gè)方向如果能跑通應(yīng)該能在方向正確率和圖像質(zhì)量之間找到更好的平衡點(diǎn)。感興趣的朋友可以從這篇文章里的思路出發(fā)結(jié)合你自己的場景改造試試。