打造「專屬arXiv」!德國(guó)高校頂級(jí)視覺團(tuán)隊(duì)推出「論文定制化」推薦系統(tǒng),免費(fèi)開放
10毫秒生成一張圖像,1分鐘6000張圖像,這是什么概念?
下圖中,就可以深刻感受到AI的超能力。
圖片
甚至,當(dāng)你在二次元小姐姐圖片生成的提示中,不斷加入新的元素,各種風(fēng)格的圖片更迭也是瞬間閃過。
圖片
如此驚人的圖片實(shí)時(shí)生成速度,便是來自UC伯克利、日本筑波大學(xué)等研究人員提出StreamDiffusion帶來的結(jié)果。
這個(gè)全新的解決方案是一種擴(kuò)散模型流程,能夠以超過100fps的速度,實(shí)現(xiàn)實(shí)時(shí)交互式圖像生成。
圖片
論文地址:https://arxiv.org/abs/2312.12491
StreamDiffusion開源后直接霸榜GitHub,狂攬3.7k星。
圖片
StreamDiffusion創(chuàng)新性采用了批處理策略,而非序列去噪,比傳統(tǒng)方法快大約1.5倍。而且作者提出的新型剩余無分類器引導(dǎo)(RCFG)算法能夠比傳統(tǒng)無分類引導(dǎo)快2.05倍。
最值得一提的是,新方法在RTX 4090上,圖像到圖像的生成速度可達(dá)91.07fps。
圖片
未來,在元宇宙、視頻游戲圖形渲染、直播視頻流等不同場(chǎng)景中,StreamDiffusion快速生成能夠滿足這些應(yīng)用的高吞吐量的需求。
尤其,實(shí)時(shí)的圖像生成,能夠?yàn)槟切┯螒蜷_發(fā)、視頻渲染的打工人們,提供了強(qiáng)大的編輯和創(chuàng)作能力。
圖片
專為實(shí)時(shí)圖像生成設(shè)計(jì)
當(dāng)前,擴(kuò)散模型在不同領(lǐng)域的應(yīng)用,需要高吞吐量和低延遲的擴(kuò)散管道,以確保高效的人機(jī)交互。
一個(gè)典型的例子是,用擴(kuò)散模型創(chuàng)建虛擬角色VTuber——能夠?qū)τ脩舻妮斎胱龀隽鲿车姆磻?yīng)。
圖片
為了提高高吞吐量和實(shí)時(shí)交互能力,目前研究的方向主要集中在,減少去噪迭代次數(shù),比如從50次迭代減少到幾次,甚至一次。
常見的策略是將多步擴(kuò)散模型提煉成幾個(gè)步驟,用神經(jīng)常微分方程(ODE)重新構(gòu)建擴(kuò)散過程。為提高效率,也有人對(duì)擴(kuò)散模型進(jìn)行了量化。
最新論文中,研究人員從正交方向(orthogonal direction)開始,引入了StreamDiffusion——一種實(shí)時(shí)擴(kuò)散管道,專為互動(dòng)式圖像生成的高吞吐量而設(shè)計(jì)。
現(xiàn)有的模型設(shè)計(jì)工作仍然可以與StreamDiffusion集成。另外,它還可以在保持高吞吐量的同時(shí),使用N步去噪擴(kuò)散模型,并為用戶提供更靈活的選擇。
圖片
實(shí)時(shí)圖像生成|第一列和第二列:AI輔助實(shí)時(shí)繪圖的示例,第三列:從3D頭像實(shí)時(shí)渲染2D插圖。第四列和第五列:實(shí)時(shí)相機(jī)濾鏡
具體是如何實(shí)現(xiàn)的?
StreamDiffusion架構(gòu)
StreamDiffusion是一種新的擴(kuò)散管道,旨在提高吞吐量。
它由若干關(guān)鍵部分組成:
流批處理策略、剩余無分類器引導(dǎo)(RCFG)、輸入輸出隊(duì)列、隨機(jī)相似濾波(Stochastic Similarity Filter)、預(yù)計(jì)算程序、微型自動(dòng)編碼器的模型加速工具。
批處理去噪
在擴(kuò)散模型中,去噪步驟是按順序進(jìn)行的,這就導(dǎo)致了U-Net的處理時(shí)間,與步驟數(shù)成比例增加。
然而,為了生成高保真的圖像,就不得不增加步數(shù)。
為了解決交互式擴(kuò)散中的高延遲生成的問題,研究人員提出了一種叫做Stream Batch的方法。
如下圖所示,在最新的方法中,在處理下一個(gè)輸入圖像之前,不會(huì)等待單個(gè)圖像完全去噪,而是在每個(gè)去噪步驟后接受下一個(gè)輸入圖像。
這樣就形成了一個(gè)去噪批次,每個(gè)圖像的去噪步驟交錯(cuò)進(jìn)行。
通過將這些交錯(cuò)的去噪步驟串聯(lián)成一個(gè)批次,研究人員就能使用U-Net高效地處理連續(xù)輸入的批次。
在時(shí)間步t處編碼的輸入圖像在時(shí)間步t+n處生成并解碼,其中n是去噪步驟的數(shù)目。
圖片
剩余無分類器引導(dǎo)(RCFG)
常見的無分類器指導(dǎo)(CFG)是一種,通過在無條件或否定條件項(xiàng)和原條件項(xiàng)之間執(zhí)行向量計(jì)算。來增強(qiáng)原條件的效果的算法。
圖片
這可以帶來諸如加強(qiáng)提示的效果之類的好處。
然而,為了計(jì)算負(fù)條件剩余噪聲,需要將每個(gè)輸入潛變量與負(fù)條件嵌入配對(duì),并在每個(gè)推理時(shí)間將其傳遞給U-Net。
為了解決這一問題,作者引入了創(chuàng)新的剩余無分類器引導(dǎo)(RCFG) 。
該方法利用虛擬剩余噪聲來逼近負(fù)條件,使得只需在過程的初始階段就可以計(jì)算負(fù)條件噪聲,大大降低了負(fù)條件嵌入時(shí)額外U-Net推理的計(jì)算成本。
輸入輸出隊(duì)列
將輸入圖像轉(zhuǎn)換為管道可管理的張量數(shù)據(jù)格式,反過來,將解碼后的張量轉(zhuǎn)換回輸出圖像,都需要不可忽略的額外處理時(shí)間。
為了避免將這些圖像處理時(shí)間添加到神經(jīng)網(wǎng)絡(luò)推理流程中,我們將圖像預(yù)處理和后處理分離到不同的線程中,從而實(shí)現(xiàn)并行處理。
此外,通過使用輸入張量隊(duì)列,還能應(yīng)對(duì)因設(shè)備故障或通信錯(cuò)誤造成的輸入圖像臨時(shí)中斷,從而實(shí)現(xiàn)流暢的流式傳輸。
圖片
隨機(jī)相似濾波(Stochastic Similarity Filter)
如下圖是,核心擴(kuò)散推理管道,包含VAE和U-Net。
通過引入去噪批處理和預(yù)先計(jì)算的提示嵌入緩存、采樣噪聲緩存和調(diào)度器值緩存,提高了推理流水線的速度,實(shí)現(xiàn)了實(shí)時(shí)圖像生成。
隨機(jī)相似濾波(SSF)是為了節(jié)省GPU功耗而設(shè)計(jì)的,可以動(dòng)態(tài)關(guān)閉擴(kuò)散模型管道,進(jìn)而實(shí)現(xiàn)了快速高效的實(shí)時(shí)推理。
圖片
預(yù)計(jì)算
U-Net架構(gòu)既需要輸入潛在變量,也需要條件嵌入。
通常情況下,條件嵌入來源于「提示嵌入」,在不同幀之間保持不變。
為了優(yōu)化這一點(diǎn),研究人員預(yù)先計(jì)算提示嵌入,并將其存儲(chǔ)在緩存中。在交互或流模式下,這個(gè)預(yù)先計(jì)算的提示嵌入緩存會(huì)被召回。
在U-Net中,每一幀的鍵和值都是根據(jù)預(yù)先計(jì)算的提示嵌入計(jì)算的。
因此,研究人員對(duì)U-Net進(jìn)行修改,以存儲(chǔ)這些鍵和值對(duì),使其可以重復(fù)使用。每當(dāng)輸入提示更新時(shí),研究人員都會(huì)在U-Net內(nèi)重新計(jì)算和更新這些鍵和值對(duì)。
模型加速和微型自動(dòng)編碼器
為了優(yōu)化速度,我們將系統(tǒng)配置為使用靜態(tài)批大小和固定輸入大小(高度和寬度)。
這種方法確保計(jì)算圖和內(nèi)存分配針對(duì)特定的輸入大小進(jìn)行優(yōu)化,從而加快處理速度。
然而,這意味著如果需要處理不同形狀的圖像(即不同的高度和寬度),使用不同的批大?。òㄈピ氩襟E的批次大?。?。
實(shí)驗(yàn)評(píng)估
去噪批的定量評(píng)估
圖8顯示了批去噪和原始順序U-Net循環(huán)的效率比較。
在實(shí)施批去噪策略時(shí),研究人員發(fā)現(xiàn)處理時(shí)間有了顯著改善。與順序去噪步驟的傳統(tǒng)U-Net循環(huán)相比,減少了一半的時(shí)間。
即使應(yīng)用了神經(jīng)模塊加速工具TensorRT,研究人員提出的流批處理在不同的去噪步驟中仍能大幅提高原始順序擴(kuò)散管道的效率。
圖片
此外,研究人員還將最新方法與Huggingface Diffusers開發(fā)的AutoPipeline-ForImage2Image管道進(jìn)行了比較。
平均推理時(shí)間比較見表1,最新管道顯示速度有了大幅提升。
當(dāng)使用TensorRT時(shí),StreamDiffusion在運(yùn)行10個(gè)去噪步驟時(shí),實(shí)現(xiàn)了13倍的速度提升。而在涉及單個(gè)去噪步驟的情況下,速度提升可達(dá)59.6倍。
即使沒有TensorRT,StreamDiffusion在使用單步去噪時(shí)也比AutoPipeline提高了29.7倍,在使用10步去噪時(shí)提高了8.3倍。
圖片
表2比較了使用RCFG和常規(guī)CFG的流擴(kuò)散管道的推理時(shí)間。
在單步去噪的情況下,Onetime-Negative RCFG和傳統(tǒng)CFG的推理時(shí)間幾乎相同。
所以O(shè)ne-time RCFG和傳統(tǒng)CFG在單步去噪時(shí)推理時(shí)間差不多。但是隨著去噪步驟增加,從傳統(tǒng)CFG到RCFG的推理速度提升變得更明顯。
在第5步去噪時(shí),Self-Negative RCFG比傳統(tǒng)CFG快2.05倍,Onetime-Negative RCFG比傳統(tǒng)CFG快1.79倍。
圖片
圖片
然后,研究人員對(duì)所提出的SSF的能耗進(jìn)行了全面評(píng)估,如圖6和圖7所示。
這些圖提供了將 SSF(閾值η設(shè)為0.98)應(yīng)用于包含周期性靜態(tài)特征場(chǎng)景的輸入視頻時(shí)GPU的使用模式。
對(duì)比分析表明,在輸入圖像主要是靜態(tài)圖像且具有高度相似性的情況下,采用SSF可以顯著降低GPU的使用率。
圖片
消融研究
不同模塊對(duì)不同去噪步驟下平均推理時(shí)間的影響如表3??梢钥吹靡?,不同模塊的消減在圖像到圖像的生成過程中得到了驗(yàn)證。
圖片
定性結(jié)果
圖10展示了使用剩余無分類器導(dǎo)引(RCFG)對(duì)生成的圖像進(jìn)行快速條件調(diào)整的對(duì)齊過程。
生成的圖像,沒有使用任何形式的CFG,顯示弱對(duì)齊提示,特別是在方面,如顏色變化或添加不存在的元素,這是沒有得到有效實(shí)現(xiàn)。
相比之下,CFG或RCFG的使用增強(qiáng)了修改原始圖像的能力,例如改變頭發(fā)顏色,添加身體模式,甚至包含像眼鏡這樣的物體。值得注意的是,與標(biāo)準(zhǔn)CFG相比,RCFG的使用可以加強(qiáng)提示的影響。
圖片
最后,標(biāo)準(zhǔn)文本到圖像生成結(jié)果的質(zhì)量如圖11所示。
使用sd-turbo模型,只需一步就可以生成像圖11所示的那樣的高質(zhì)量圖像。
當(dāng)在 GPU: RTX 4090,CPU: Core i9-13900K,OS: Ubuntu 22.04.3 LTS的環(huán)境中,使用研究人員提出的流擴(kuò)散管道和sd-turbo模型生成圖像時(shí),以超100fps的速率生成這種高質(zhì)量的圖像是可行的。
圖片
網(wǎng)友上手,一大波二次元小姐姐來了
最新項(xiàng)目的代碼已經(jīng)開源,在Github已經(jīng)收攬3.7k星。
圖片
項(xiàng)目地址:https://github.com/cumulo-autumn/StreamDiffusion
許多網(wǎng)友已經(jīng)開始生成自己的二次元老婆了。
圖片
還有真人變實(shí)時(shí)動(dòng)畫。
圖片
10倍速手繪生成。
圖片
圖片
圖片
感興趣的童鞋們,不如自己動(dòng)手吧。
參考資料:
https://huggingface.co/papers/2312.12491
https://twitter.com/cumulo_autumn/status/1732309219041571163