間一致性難題與時(shí)空建模演進(jìn))
1. 逐幀生成時(shí)代的薛定諤主角斷裂感從哪來(lái)先從一個(gè)我自己的翻車(chē)經(jīng)歷說(shuō)起。去年底我用某款主流的AI視頻工具做了一個(gè)兩秒鐘的鏡頭一個(gè)女孩從畫(huà)面左側(cè)走到右側(cè)中途回頭笑了一下。單看每一幀光影、質(zhì)感、臉部的細(xì)膩程度都無(wú)可挑剔??砂褞B起來(lái)播放問(wèn)題立刻暴露——她走到第三步的時(shí)候瞳孔顏色從棕色變成了淺褐色回頭的瞬間耳環(huán)憑空消失了最離譜的是第四幀到第五幀之間她的鼻梁寬度明顯變了一版。我把這個(gè)片段拿給團(tuán)隊(duì)里做傳統(tǒng)CG的老同事看他沉默了一會(huì)兒說(shuō)這不像渲染出來(lái)的視頻倒像是一個(gè)人被PS了120次然后按順序播放。他說(shuō)得太準(zhǔn)了。這正是AI視頻生成早期階段最典型的癥狀單幀質(zhì)量極高時(shí)間維度一塌糊涂。行業(yè)里管這個(gè)問(wèn)題叫時(shí)間一致性Temporal Consistency崩潰而它的根源需要從逐幀生成這個(gè)思路本身說(shuō)起。1.1 逐幀采樣的概率漂移早期AI視頻工具的底層邏輯其實(shí)是把視頻當(dāng)成連續(xù)播放的獨(dú)立圖片來(lái)處理。模型每一幀都在做一次獨(dú)立采樣——它根據(jù)文本提示詞生成一張符合語(yǔ)義的圖然后下一幀再根據(jù)同一個(gè)提示詞生成另一張圖。聽(tīng)起來(lái)很簡(jiǎn)單同一個(gè)提示詞生成的圖應(yīng)該差不多吧但實(shí)際上擴(kuò)散模型天生是概率性的同樣的輸入每次采樣都會(huì)落到概率分布里的不同位置。打個(gè)比方你讓同一個(gè)畫(huà)師畫(huà)同一個(gè)模特100次每次他都認(rèn)真畫(huà)但因?yàn)榧垙?、光線、心情的細(xì)微差異100張畫(huà)里模特的發(fā)際線永遠(yuǎn)不會(huì)完全一樣。逐幀生成的模型就是這樣它沒(méi)有記憶每一幀都是第一次見(jiàn)到這個(gè)角色。這就產(chǎn)生了一個(gè)我之前一直忽略、后來(lái)才想明白的問(wèn)題視頻里相鄰幀之間不只是差不多就行的關(guān)系它們必須在物理上連續(xù)。真實(shí)世界的光影變化遵循光照方程人物的肌肉運(yùn)動(dòng)遵循動(dòng)力學(xué)約束衣服褶皺遵循布料模擬邏輯。逐幀生成完全沒(méi)有這些約束它只是在概率空間里隨機(jī)游走每一幀都從零開(kāi)始猜測(cè)這個(gè)場(chǎng)景該長(zhǎng)什么樣。幀數(shù)少的時(shí)候這種隨機(jī)性還能靠運(yùn)氣蒙混過(guò)關(guān)一旦鏡頭超過(guò)3秒、運(yùn)動(dòng)幅度加大模型就會(huì)在多個(gè)合理但不同的解之間反復(fù)橫跳于是你看到的畫(huà)面就是五官微調(diào)、材質(zhì)閃爍、背景抖動(dòng)俗稱(chēng)閃爍癥。1.2 問(wèn)題不在像素而在時(shí)間我觀察到一個(gè)特別有意思的現(xiàn)象很多剛接觸AI視頻生成的人第一反應(yīng)是是不是模型分辨率不夠是不是訓(xùn)練數(shù)據(jù)不夠多。其實(shí)這兩個(gè)因素只影響單幀畫(huà)質(zhì)對(duì)時(shí)間一致性幾乎不起作用。真正的問(wèn)題出在模型架構(gòu)上——它壓根沒(méi)有時(shí)間這個(gè)概念。圖像生成模型處理的是一個(gè)二維張量高度×寬度視頻生成需要處理的是三維張量時(shí)間×高度×寬度。如果你只是把二維卷積換成三維卷積、把注意力機(jī)制從空間擴(kuò)展到時(shí)空聽(tīng)起來(lái)只是維度加一但實(shí)現(xiàn)難度是幾何級(jí)數(shù)上升的計(jì)算量暴漲、顯存耗盡、訓(xùn)練數(shù)據(jù)難搞最要命的是模型需要學(xué)會(huì)理解哪個(gè)像素在時(shí)間維度上應(yīng)該保持穩(wěn)定哪個(gè)應(yīng)該變化。這跟生成靜態(tài)圖完全是兩套邏輯。我有段時(shí)間做實(shí)驗(yàn)嘗試用把前后幀拼接成大圖再生成的土辦法來(lái)緩解一致性。比如把4幀視頻豎著拼成一張長(zhǎng)圖讓模型一次性畫(huà)出來(lái)。效果確實(shí)比單獨(dú)生成好一些但只能解決相鄰幀顏色對(duì)得上一旦鏡頭有平移或物體有較大位移拼接痕跡立刻暴露。因?yàn)檫@種方法的本質(zhì)還是在做二維生成只是把時(shí)間信息硬塞進(jìn)空間布局里模型并沒(méi)有真正理解這是同一物體在隨時(shí)間運(yùn)動(dòng)。1.3 一個(gè)常被忽略的幫兇后處理放大還有一個(gè)很多人沒(méi)意識(shí)到的一致性殺手——超分和插幀。你費(fèi)勁生成了一段勉強(qiáng)一致的視頻美滋滋丟進(jìn)免費(fèi)AI超分工具里想提升畫(huà)質(zhì)結(jié)果出來(lái)以后人物臉又變了。這不是超分工具的鍋是因?yàn)榇蠖鄶?shù)超分模型本身也是單幀處理的它逐幀放大、逐幀增強(qiáng)同樣沒(méi)有時(shí)間約束。本來(lái)好好的幀間關(guān)系被超分模型重新打亂一遍。我在實(shí)際工作流里踩過(guò)這個(gè)坑之后定了一條鐵律能不做后期放大就不做一定要做就必須用帶時(shí)序信息的超分模型否則前面所有的一致性工作全部白費(fèi)。這條經(jīng)驗(yàn)在我后來(lái)看很多AI視頻制作教程時(shí)都沒(méi)人提但它真的非常關(guān)鍵。2. 解決思路的轉(zhuǎn)向與其修幀不如建時(shí)空繞了這么大一圈核心問(wèn)題其實(shí)就一句話視頻和圖片的本質(zhì)區(qū)別不是幀數(shù)多而是多了時(shí)間這個(gè)維度。所以當(dāng)整個(gè)行業(yè)開(kāi)始認(rèn)真面對(duì)AI視頻生成時(shí)大家不約而同地拋棄了逐幀生成再縫合的老路子轉(zhuǎn)而思考一個(gè)問(wèn)題——能不能讓模型直接生成一整段帶時(shí)間維度的連續(xù)數(shù)據(jù)這就是時(shí)空建模的起點(diǎn)。2.1 把視頻當(dāng)作一個(gè)3D塊而不是一疊2D圖傳統(tǒng)的圖像生成模型看到的輸入是一張圖時(shí)空建模的思路要求模型看到的輸入是一團(tuán)時(shí)空數(shù)據(jù)。怎么理解這個(gè)團(tuán)你可以把一段視頻想象成一個(gè)長(zhǎng)方體數(shù)據(jù)塊長(zhǎng)是畫(huà)面的寬度寬是畫(huà)面的高度高是時(shí)間——每一層切片就是某一時(shí)刻的完整畫(huà)面。模型要做的不再是畫(huà)一張圖而是雕刻一個(gè)時(shí)空立方體讓它在三個(gè)維度上都合理空間維度上每一層切片內(nèi)部結(jié)構(gòu)清晰、沒(méi)有畸變時(shí)間維度上相鄰切片之間的差異剛好對(duì)應(yīng)真實(shí)的運(yùn)動(dòng)變化而不是無(wú)規(guī)律的像素跳變。這個(gè)概念說(shuō)起來(lái)輕巧落到實(shí)現(xiàn)上有幾條不同的技術(shù)路線。我按自己的理解和實(shí)踐體會(huì)把主流的幾條路線梳理一下。處理好的視頻常常通過(guò)AI視頻生成工具調(diào)出來(lái)的畫(huà)面已經(jīng)很接近電影感了——前提是背后的模型真真切切在做三維時(shí)空理解而不是二維拼接。2.2 3D VAE壓縮時(shí)空的第一步在圖像生成領(lǐng)域VAE變分自編碼器負(fù)責(zé)把高分辨率圖像壓縮到一個(gè)低維隱空間讓擴(kuò)散模型在這個(gè)小得多的空間里去噪大幅降低計(jì)算量。時(shí)空建模的第一站就是把二維VAE升級(jí)成3D VAE。普通的VAE只壓縮空間維度3D VAE會(huì)把時(shí)間維度一起壓縮進(jìn)去。也就是說(shuō)它不再對(duì)一張圖編碼而是對(duì)一小段視頻片段編碼。比如輸入16幀、分辨率256x256的視頻塊經(jīng)過(guò)3D VAE壓縮后變成一個(gè)形狀為(時(shí)間維度壓縮比、高度壓縮比、寬度壓縮比)的小張量。擴(kuò)散模型在這個(gè)張量上做去噪最后再通過(guò)3D VAE的解碼器把它還原成視頻。我第一次理解這個(gè)設(shè)計(jì)的時(shí)候最大的感受是時(shí)間維度的壓縮比是不能隨意設(shè)的。空間維度壓縮4倍甚至8倍畫(huà)面細(xì)節(jié)會(huì)有一定損失但結(jié)構(gòu)還在時(shí)間維度如果也壓縮8倍意味著模型每處理一個(gè)時(shí)間步就要管整整8幀的畫(huà)面信息量太大生成的動(dòng)態(tài)很容易粗糙、僵硬。實(shí)際工程里時(shí)間壓縮比通常設(shè)在2到4之間保留更多時(shí)序細(xì)節(jié)這也是為什么現(xiàn)在的AI視頻生成工具對(duì)顯存的需求高得嚇人——處理的對(duì)象比圖像生成大了不是一點(diǎn)半點(diǎn)。2.3 時(shí)空Transformer與注意力讓幀之間通氣VAE解決了數(shù)據(jù)形態(tài)的問(wèn)題真正讓模型產(chǎn)生時(shí)間意識(shí)的是注意力機(jī)制的改造。早期的視頻擴(kuò)散模型多用U-Net結(jié)構(gòu)在U-Net里加入3D卷積和時(shí)間注意力模塊后來(lái)DiTDiffusion Transformer成為主流把視頻當(dāng)成一長(zhǎng)串時(shí)空token來(lái)處理。這里有個(gè)關(guān)鍵設(shè)計(jì)選擇時(shí)間注意力是分離的還是聯(lián)合的。分離注意力是老派做法先把注意力限制在同一時(shí)刻不同空間位置之間空間注意力再把注意力限制在同一空間位置不同時(shí)刻之間時(shí)間注意力。好處是計(jì)算量可控壞處是時(shí)空交互不夠充分比如一個(gè)物體的顏色在時(shí)間維度上保持一致需要連續(xù)多個(gè)注意力層的累計(jì)才能形成穩(wěn)定的對(duì)應(yīng)關(guān)系。聯(lián)合注意力則干脆把所有token包括所有幀的所有位置拉平讓每個(gè)像素都能直接看到所有時(shí)刻的所有像素。效果確實(shí)更好運(yùn)動(dòng)更自然但計(jì)算復(fù)雜度飆到天際正因如此后面才有了各種局部注意力窗口、稀疏注意力、軸向注意力的折中方案。說(shuō)實(shí)話作為一個(gè)非科班的實(shí)踐者我最初看這些論文時(shí)完全被術(shù)語(yǔ)勸退后來(lái)想通了一個(gè)類(lèi)比分離注意力像是劇組里的各部門(mén)各拍各的最后再剪接聯(lián)合注意力則等于全劇組開(kāi)了個(gè)全天候?qū)χv機(jī)所有信息實(shí)時(shí)互通。你要哪個(gè)效果就得付出對(duì)應(yīng)的成本。2.4 光流引導(dǎo)給模型裝一個(gè)物理加速度計(jì)雖然注意力架構(gòu)能讓模型意識(shí)到時(shí)間存在但純靠數(shù)據(jù)驅(qū)動(dòng)去學(xué)運(yùn)動(dòng)的物理規(guī)律還是不太穩(wěn)。于是很多方案引入了光流Optical Flow作為輔助信號(hào)。光流是什么簡(jiǎn)單說(shuō)就是兩張相鄰幀之間每個(gè)像素移動(dòng)的方向和速度。傳統(tǒng)視頻壓縮算法比如H.264里就在用這個(gè)概念A(yù)I視頻生成完全可以拿它當(dāng)物理約束——要求模型生成的結(jié)果在光流計(jì)算下的運(yùn)動(dòng)場(chǎng)是平滑的、連續(xù)可解釋的。我之前用過(guò)一款工具它允許用戶手動(dòng)給首幀和尾幀打關(guān)鍵點(diǎn)模型會(huì)通過(guò)光流約束自動(dòng)推算出中間幀的運(yùn)動(dòng)軌跡。生成的視頻里物體的運(yùn)動(dòng)確實(shí)比純文本生成要順滑得多。這說(shuō)明一個(gè)道理空間一致性靠注意力運(yùn)動(dòng)一致性靠光流兩者缺一不可。3. 主流AI視頻生成工具的落地策略從噪聲到注意力全鏈路改造架構(gòu)層面的思路只是第一步。真正住到技術(shù)方案落地很多工具還會(huì)在采樣策略上做文章。我研究過(guò)不少開(kāi)源的視頻生成項(xiàng)目也試過(guò)市面上大部分主流AI視頻生成工具總結(jié)出幾條具體的技術(shù)策略。這些策略不一定都很高深但每一條都在實(shí)實(shí)在在解決時(shí)間一致性問(wèn)題。3.1 同一噪聲種子最樸素的穩(wěn)定錨擴(kuò)散模型是從噪聲開(kāi)始去噪的。如果你讓模型為每一幀都重新初始化一個(gè)新噪聲那生成出來(lái)的每一幀幾乎沒(méi)有關(guān)聯(lián)性如果讓所有幀共享同一個(gè)初始噪聲模型在去噪的每一步都會(huì)傾向于在所有幀上保持結(jié)構(gòu)一致。實(shí)際操作中很多實(shí)現(xiàn)會(huì)用一個(gè)動(dòng)態(tài)噪聲策略首幀的噪聲完全隨機(jī)后續(xù)幀的噪聲在首幀噪聲基礎(chǔ)上加入一個(gè)時(shí)間偏移量。什么意思就是讓所有幀的出發(fā)點(diǎn)是同一個(gè)底噪但考慮到運(yùn)動(dòng)允許底噪在時(shí)間軸上有一點(diǎn)漸變偏移。這個(gè)細(xì)節(jié)我是在調(diào)試一個(gè)文生視頻模型時(shí)注意到的。當(dāng)時(shí)團(tuán)隊(duì)里有人提了一個(gè)很直覺(jué)的優(yōu)化建議為什么不讓每幀的噪聲完全一樣結(jié)果測(cè)試下來(lái)視頻確實(shí)不閃了但畫(huà)面一動(dòng)不動(dòng)——因?yàn)槟P捅绘i得太死任何運(yùn)動(dòng)都被噪聲一致性壓制了。后來(lái)我們改成共享底噪時(shí)間偏移的折中方案才算既保持一致性又不丟運(yùn)動(dòng)。**一致性過(guò)了頭視頻就變靜態(tài)圖了。這個(gè)平衡點(diǎn)非常微妙。**當(dāng)時(shí)的調(diào)整經(jīng)驗(yàn)是時(shí)間偏移量不能超過(guò)初始噪聲的10%到20%一旦超出閃爍又會(huì)回來(lái)。這個(gè)比例不一定對(duì)所有模型通用但可以作為調(diào)參的起點(diǎn)。3.2 視頻與圖像聯(lián)合訓(xùn)練讓模型見(jiàn)過(guò)世面再上崗時(shí)間一致性這么難學(xué)很大一部分原因是訓(xùn)練數(shù)據(jù)不夠——高質(zhì)量的視頻數(shù)據(jù)遠(yuǎn)比圖像數(shù)據(jù)稀缺。你可以隨便在網(wǎng)上找?guī)變|張圖片但找?guī)變|段高清、帶標(biāo)注、鏡頭運(yùn)動(dòng)合理的視頻難度完全不是一個(gè)量級(jí)。所以一個(gè)常見(jiàn)的訓(xùn)練策略是聯(lián)合訓(xùn)練把圖像數(shù)據(jù)和視頻數(shù)據(jù)混在一起喂給模型圖像用來(lái)保障單幀質(zhì)量視頻用來(lái)學(xué)習(xí)時(shí)序關(guān)系。圖像可以看作只有一幀的極端短視頻這樣一個(gè)模型同時(shí)具備了靜態(tài)畫(huà)質(zhì)能力和動(dòng)態(tài)連續(xù)能力。這個(gè)策略有個(gè)意想不到的好處模型對(duì)時(shí)間維度的理解更靈活了。純視頻訓(xùn)練會(huì)讓模型默認(rèn)視頻必須有運(yùn)動(dòng)稍微運(yùn)動(dòng)小一點(diǎn)就容易生成詭異形變加了圖像聯(lián)合訓(xùn)練后模型學(xué)會(huì)了如果場(chǎng)景本來(lái)就該靜止就老老實(shí)實(shí)靜止。我自己的體驗(yàn)是用聯(lián)合訓(xùn)練產(chǎn)出的模型在生成固定機(jī)位的長(zhǎng)鏡頭時(shí)要比純視頻模型穩(wěn)得多。3.3 控制信號(hào)增強(qiáng)CLIP不好使就用參考幀兜底說(shuō)起時(shí)間一致性就不能不提主流AI視頻生成工具對(duì)角色一致性的解決方案。開(kāi)頭提到的瞳孔顏色變了耳環(huán)消失了本質(zhì)上就是對(duì)角色長(zhǎng)什么樣缺乏約束。文本提示詞用CLIP文本編碼器編碼后能表達(dá)語(yǔ)義但它其實(shí)表達(dá)不了精確的像素級(jí)外貌細(xì)節(jié)。你說(shuō)一個(gè)戴金色耳環(huán)的女孩CLIP知道什么是耳環(huán)但不知道你心里想的那只耳環(huán)的弧度、光澤、尺寸。生成結(jié)果里耳環(huán)的形制每次都在變也就成了必然。所以現(xiàn)在的主流方案早就不是純文本驅(qū)動(dòng)一切了而是引入?yún)⒖紙D、姿態(tài)序列、深度圖、邊緣圖等控制信號(hào)。我在實(shí)際工作流里的做法是先用文生圖模型生成一張滿意的主角定妝照再以這張圖作為第一幀/參考幀讓視頻模型照著這個(gè)人繼續(xù)畫(huà)。很多工具還支持一次性上傳多視角的參考圖——正面、側(cè)面、背面各來(lái)一張模型對(duì)角色三維結(jié)構(gòu)的理解會(huì)大大提升哪怕大幅轉(zhuǎn)身或劇烈運(yùn)動(dòng)崩臉的概率也會(huì)大幅下降。這個(gè)流程對(duì)我來(lái)說(shuō)已經(jīng)是標(biāo)配了沒(méi)有參考圖的文生視頻除非只拍遠(yuǎn)景剪影或者特別意象化的鏡頭否則我基本不會(huì)用。3.4 級(jí)聯(lián)生成與滑窗3秒之后怎么辦還有一個(gè)工程上繞不開(kāi)的問(wèn)題顯存是有限的但視頻長(zhǎng)度是無(wú)限的?,F(xiàn)在的AI視頻生成工具普遍一次只能生成3到5秒想要30秒以上的鏡頭必須分段生成再拼接。這就帶來(lái)一個(gè)致命問(wèn)題**分段劇集的邊界處怎么保證時(shí)間一致性**如果每段都是獨(dú)立從噪聲開(kāi)始生成接縫處必然跳變。我見(jiàn)過(guò)最粗糙的做法是兩段之間直接硬切加個(gè)轉(zhuǎn)場(chǎng)糊弄過(guò)去稍微聰明的做法是滑窗生成——第二次生成時(shí)把第一次生成的最后幾幀作為輸入條件讓這段從上一段的結(jié)尾接著往下畫(huà)?;翱雌饋?lái)很合理但實(shí)際效果經(jīng)常不穩(wěn)定。問(wèn)題出在誤差累積前幾幀作為條件時(shí)模型會(huì)自動(dòng)腦補(bǔ)中間的運(yùn)動(dòng)軌跡等下一輪再注入新的起點(diǎn)時(shí)角色已經(jīng)不知不覺(jué)變了樣。我測(cè)試過(guò)一個(gè)支持長(zhǎng)視頻生成的工具生成到第8秒時(shí)角色衣服上的logo都換了。后來(lái)社區(qū)里有個(gè)普遍的替代方案分段生成時(shí)不僅要輸入上一段的最后幾幀還要把這幾個(gè)幀對(duì)應(yīng)的文本提示、控制信號(hào)原樣重復(fù)一遍相當(dāng)于強(qiáng)制模型在同一場(chǎng)景里繼續(xù)干活。4. 工程落地才是硬仗顯存、速度和可控性的三角博弈說(shuō)實(shí)話理論層面的討論無(wú)論多精彩一到真實(shí)項(xiàng)目里都會(huì)撞上冷酷的物理法則。時(shí)間一致性從逐幀生成轉(zhuǎn)向時(shí)空建模之后第一個(gè)迎頭撞上的問(wèn)題就是硬件門(mén)檻。4.1 顯存消耗的現(xiàn)實(shí)博弈從二維生成到三維時(shí)空生成計(jì)算量不是漲了一倍而是直接漲了一個(gè)數(shù)量級(jí)。我自己的3070顯卡在跑圖像生成時(shí)游刃有余拿來(lái)跑一個(gè)不需要太多壓縮的時(shí)空模型生成10秒720p視頻光中間特征圖就把顯存塞滿了。很多AI視頻生成工具免費(fèi)版只允許生成短標(biāo)清視頻不是他們小氣是因?yàn)轱@存開(kāi)銷(xiāo)實(shí)在太大。為了在有限硬件上跑起來(lái)工程上有很多取舍用分離注意力替代聯(lián)合注意力犧牲一點(diǎn)效果換顯存。用時(shí)間維度滑窗每次只處理8幀讓模型滾動(dòng)推進(jìn)。用低分辨率生成再超分但前面說(shuō)過(guò)超分有引入新的時(shí)間不一致的風(fēng)險(xiǎn)。我個(gè)人的建議是本地玩視頻生成至少準(zhǔn)備16GB顯存的顯卡想認(rèn)真做商用項(xiàng)目40GB起步不丟人。沒(méi)有這個(gè)條件不如直接用在線AI視頻生成工具把顯存壓力交給服務(wù)端。4.2 時(shí)間一致性和運(yùn)動(dòng)自由度的矛盾前文提到噪聲偏移量調(diào)小會(huì)讓視頻趨向靜態(tài)這其實(shí)揭示了時(shí)空建模里一個(gè)根本性矛盾模型越保守時(shí)間一致性越好但運(yùn)動(dòng)越僵硬模型越激進(jìn)運(yùn)動(dòng)越豐富但越容易崩壞。任何AI視頻生成工具都在這個(gè)蹺蹺板上找平衡點(diǎn)。很多工具干脆把運(yùn)動(dòng)速度做成一個(gè)可調(diào)參數(shù)。運(yùn)動(dòng)幅度設(shè)置為1到3之間時(shí)畫(huà)面基本順滑調(diào)到5以上很快就能看到各種形體扭曲——手多了手指、腿扭成麻花、背景跟著人物一起蠕動(dòng)。我的建議是不要一味追求動(dòng)得越猛越好真實(shí)電影鏡頭里大部分時(shí)間是角色的細(xì)微動(dòng)作和面部表情不是瘋狂跑酷??刂七\(yùn)動(dòng)幅度在合理區(qū)間時(shí)間一致性崩壞的幾率會(huì)大幅下降。4.3 可控性誰(shuí)來(lái)決定角色長(zhǎng)什么樣即便在同一段生成里時(shí)間一致性已經(jīng)做得很好鏡頭切到另一個(gè)場(chǎng)景時(shí)角色還是很容易換臉。這背后其實(shí)是一致性的另一個(gè)層面跨場(chǎng)景的身份一致性。這個(gè)問(wèn)題的解法目前主流的路線是用LoRA微調(diào)。先在幾十張同一個(gè)角色的圖片上微調(diào)出一個(gè)專(zhuān)屬LoRA模型把這個(gè)LoRA的權(quán)重掛在視頻生成的基座模型上那么不論鏡頭怎么切換模型都會(huì)傾向于生成這個(gè)固定角色的外貌。我自己跑過(guò)這個(gè)過(guò)程用30張同一個(gè)虛擬人物的圖片在出圖模型上微調(diào)LoRA大約需要訓(xùn)練30分鐘然后加載到視頻生成流程里當(dāng)角色錨點(diǎn)。效果是立竿見(jiàn)影的至少不會(huì)出現(xiàn)瞳色變了耳環(huán)不見(jiàn)了這種低級(jí)事故。4.4 時(shí)間一致性跑飛時(shí)的常見(jiàn)前兆做了大量實(shí)測(cè)之后我發(fā)現(xiàn)一個(gè)規(guī)律時(shí)間一致性出問(wèn)題幾乎總是由幾個(gè)前兆信號(hào)預(yù)告的而絕大多數(shù)操作者根本不會(huì)注意到。比如人物臉部輪廓的邊緣出現(xiàn)輕微的雙重曝光效果這是模型在某些幀之間對(duì)臉部幾何位置沒(méi)有完全對(duì)齊又比如背景中細(xì)小的物體樹(shù)葉、發(fā)絲、衣角出現(xiàn)了不自然地顫動(dòng)說(shuō)明模型對(duì)這些區(qū)域的空間位置失去了穩(wěn)定估計(jì)。一旦在早期幀里看到這些苗頭千萬(wàn)不要指望模型自己修正短視頻直接重生成長(zhǎng)視頻立刻回到滑窗調(diào)整把運(yùn)動(dòng)幅度降一檔再試。5. 設(shè)計(jì)和拿去用的工具我怎么做時(shí)間一致性評(píng)測(cè)技術(shù)方案講得再多最終還是要面對(duì)一個(gè)實(shí)際問(wèn)題我怎么知道一個(gè)AI視頻生成工具的時(shí)間一致性到底行不行是時(shí)候聊一聊測(cè)試方法了。5.1 光著指標(biāo)看模型FVD只是個(gè)及格線學(xué)術(shù)界通常用FVDFréchet Video Distance來(lái)評(píng)估視頻生成質(zhì)量它是把生成視頻和真實(shí)視頻分別提取特征然后比較兩組特征分布的差異。但FVD有一個(gè)明顯的盲區(qū)它對(duì)時(shí)間一致性不敏感。你可以簡(jiǎn)單理解成它更關(guān)注整體風(fēng)格像不像真實(shí)視頻而不太關(guān)心幀與幀之間有沒(méi)有崩。一個(gè)滿是閃爍的生成視頻FVD分?jǐn)?shù)可能還挺好看。所以我從來(lái)不把FVD當(dāng)唯一標(biāo)準(zhǔn)最多拿來(lái)做參考。5.2 一組樸素但有效的一致性壓力測(cè)試我在自己的評(píng)測(cè)流程里總結(jié)了一套純觀察的測(cè)試邏輯分享出來(lái)供參考低速鏡頭測(cè)試讓鏡頭做非常緩慢的推拉觀察背景紋理是否穩(wěn)定這是最靈敏的幀間一致性試金石。如果背景像果凍一樣抖動(dòng)基本可以判斷模型的時(shí)間建模能力欠佳。靜態(tài)鏡頭測(cè)試固定機(jī)位拍一個(gè)場(chǎng)景人物微動(dòng)看背景是否靜止如初。很多模型在處理大范圍運(yùn)動(dòng)時(shí)崩潰但靜態(tài)時(shí)也會(huì)偷偷摸摸地變化??焖俎D(zhuǎn)身測(cè)試讓角色從正面轉(zhuǎn)身到背面重點(diǎn)看發(fā)型、衣服的延續(xù)性。轉(zhuǎn)身的瞬間是身份信息最容易重置的時(shí)刻。面部特寫(xiě)測(cè)試鏡頭慢慢推近人物臉部看瞳孔、眉毛、唇形的穩(wěn)定度。五官是誤差放大的重災(zāi)區(qū)。前景遮擋測(cè)試讓一個(gè)物體從人物面前橫穿而過(guò)觀察人物在被遮擋前后的外貌是否保持統(tǒng)一。遮擋期間模型無(wú)法看到人物只能靠記憶這是檢驗(yàn)時(shí)間建模是否真的建立身份連貫的關(guān)鍵。這幾項(xiàng)測(cè)試全部通過(guò)我才敢把一段AI視頻真正用到項(xiàng)目里。測(cè)試工具很簡(jiǎn)單一部手機(jī)或一塊屏幕加一雙眼睛就夠。5.3 目前不同層級(jí)工具的實(shí)測(cè)對(duì)比做了這么多輪測(cè)試我也形成了一些對(duì)不同層級(jí)工具的實(shí)用認(rèn)識(shí)夠得上拿來(lái)當(dāng)粗略的選型參考工具類(lèi)型代表方向時(shí)間一致性表現(xiàn)適用場(chǎng)景商業(yè)一體化的AI視頻生成平臺(tái)在線生成、模板化中上支持參考圖和運(yùn)動(dòng)參數(shù)調(diào)整非專(zhuān)業(yè)用戶快速出片腳本化創(chuàng)作本地開(kāi)源模型開(kāi)源的視頻擴(kuò)散模型波動(dòng)較大依賴(lài)提示詞與參數(shù)調(diào)試有技術(shù)背景追求可控性和高畫(huà)質(zhì)專(zhuān)攻圖生視頻類(lèi)工具以首幀/參考幀驅(qū)動(dòng)對(duì)單鏡頭一致性較優(yōu)跨鏡頭弱產(chǎn)品展示、動(dòng)態(tài)海報(bào)、短鏡頭連剪傳統(tǒng)逐幀生成后期的土方案已基本被淘汰差除非大量人工修正只適合幾秒內(nèi)的簡(jiǎn)單素材拼接需要說(shuō)明的是這個(gè)表格只是基于我實(shí)際體驗(yàn)的經(jīng)驗(yàn)總結(jié)工具迭代速度很快不同版本差距也很大。6. 最后聊聊底層共識(shí)以及幾條踩出來(lái)的經(jīng)驗(yàn)啰嗦了這么久從一個(gè)逐幀閃爍的痛點(diǎn)開(kāi)始到時(shí)空建模的架構(gòu)演變?cè)俚焦こ搪涞氐母鞣N取舍和測(cè)試方法最核心的東西其實(shí)只有一個(gè)視頻不只是連續(xù)的圖片照片多的人并不會(huì)天然變成電影導(dǎo)演。對(duì)于AI視頻生成時(shí)間維度不是可以事后補(bǔ)丁修復(fù)的東西它必須從一開(kāi)始就被設(shè)計(jì)進(jìn)模型的骨架里。這也是近年來(lái)AI視頻生成工具都在拼命往視頻擴(kuò)散模型里塞時(shí)序模塊、3D VAE和時(shí)空注意力的根本原因。有幾個(gè)實(shí)操經(jīng)驗(yàn)是再多的論文也不會(huì)告訴你的權(quán)當(dāng)是我個(gè)人的時(shí)間一致性避坑清單第一能一個(gè)鏡頭完成的絕不拆成多段??缍紊墒菚r(shí)間一致性崩壞的超級(jí)重災(zāi)區(qū)能用鏡頭語(yǔ)言變化規(guī)避的不要在后期硬接。第二參考幀永遠(yuǎn)比純文本提示可靠。動(dòng)手生成之前花十分鐘把角色的定妝照、參考圖準(zhǔn)備好遠(yuǎn)比靠CLIP閉眼想象穩(wěn)得多。第三運(yùn)動(dòng)幅度和一致性存在不可兼得的窗口。遇到畫(huà)面崩了先把運(yùn)動(dòng)幅度調(diào)低一檔能解決一多半問(wèn)題。第四超分/插幀這種后處理能不做就不做要做就做帶時(shí)序感知的否則前功盡棄。第五也是很重要的一點(diǎn)多留意生成的早期前兆——頭幾幀出現(xiàn)背景微顫或者輪廓重影就別賭模型后面會(huì)自我修復(fù)及時(shí)止損重來(lái)節(jié)約的是你的精力和時(shí)間。就在寫(xiě)這篇文章的時(shí)候我還順手測(cè)了一個(gè)新出的開(kāi)源視頻模型在快速轉(zhuǎn)身測(cè)試?yán)镆廊挥悬c(diǎn)崩。但回過(guò)頭想想跟半年前的每拍一幀換一張臉相比進(jìn)步已經(jīng)大得驚人了。這個(gè)領(lǐng)域的迭代速度真的是以周為單位計(jì)算的。再過(guò)半年那些此刻還困擾我們的問(wèn)題大概率會(huì)變成另一個(gè)被模型架構(gòu)演進(jìn)淹沒(méi)的小注腳。而在那一刻到來(lái)之前多了解一些底層的邏輯和評(píng)測(cè)手段無(wú)論對(duì)你挑選工具、調(diào)試參數(shù)還是對(duì)理解這個(gè)領(lǐng)域的發(fā)展路徑都是只賺不虧的。