只要一張圖就能「還原」繪畫過程,這篇論文比爆火的Paints-UNDO實現(xiàn)得更早 精華
作者介紹:宋亦仁:新加坡國立大學(xué) ShowLab 博士研究生, 主要研究方向包括圖像和視頻生成, AI 安全性。
黃施捷:新加坡國立大學(xué)碩士二年級學(xué)生,目前在 Tiamat AI 任算法工程師實習(xí)生,主要研究方向是視覺生成。目前在尋找 2025 fall 博士入學(xué)機會。
最近,lvmin 帶來了最新模型 Paints-UNDO。這款 AI 生成工具可以根據(jù)圖片還原整個繪畫過程,整個 AIGC 社區(qū)都為之震撼。
Paints-UNDO 的演示 demo。
早在 1 個月前,NUS,SJTU,Tiamat 等機構(gòu)聯(lián)合已經(jīng)發(fā)布了一篇做類似任務(wù)的工作 ProcessPainter: Learn Painting Process from Sequence Data。Paints-UNDO 技術(shù)報告還未公布,讓我們一起看看 ProcessPainter 是如何實現(xiàn)的吧!
- 論文標(biāo)題:ProcessPainter: Learn Painting Process from Sequence Data
- 論文鏈接:https://arxiv.org/pdf/2406.06062
- 代碼鏈接:https://github.com/nicolaus-huang/ProcessPainter
翻開任意一本繪畫教學(xué)書籍,都能看到按照步驟畫畫的指導(dǎo)。然而,在生成式 AI 時代,通過去噪過程完成圖像生成和人類畫家繪畫過程完全不同,AI 畫畫的過程無法直接用于繪畫教學(xué)。
為了解決這一問題,ProcessPainter 通過在合成數(shù)據(jù)和人類畫師繪畫視頻上訓(xùn)練時序模型,首次實現(xiàn)了讓擴(kuò)散模型生成繪畫過程。此外,不同題材、畫師的繪畫過程差異巨大,風(fēng)格迥異。然而,目前很少有研究將繪畫過程作為研究對象。論文作者在預(yù)訓(xùn)練的 Motion Model 基礎(chǔ)上,通過在特定畫師的少量繪畫序列上訓(xùn)練 Motion LoRA,學(xué)習(xí)畫師的繪畫技法。
深入解讀 ProcessPainter 的核心技術(shù)
1. 時序注意力機制(Temporal Attention)
用時序注意力學(xué)習(xí)生成繪畫過程是 ProcessPainter 的核心創(chuàng)新。繪畫序列生成的關(guān)鍵是,整個序列是同一張圖從抽象到具體的變化過程, 前后幀在內(nèi)容和構(gòu)圖上是一致且相關(guān)的。為了實現(xiàn)這一目標(biāo),作者為 Unet 引入了來自 AnimateDiff 的時序注意模塊。該模塊位于每一層擴(kuò)散層之后,通過幀間自注意機制來吸收不同幀的信息,確保整個序列的平滑過渡和連續(xù)性。
實驗證明,該訓(xùn)練策略可以在幀之間保持一致的繪畫效果。繪畫過程生成和視頻生成任務(wù)不同之處在于,繪畫過程前后變化更加劇烈,首幀是完成度很低的色塊或線稿,而尾幀是完整的畫作,這對模型訓(xùn)練帶來挑戰(zhàn)。為此,論文作者先在大量合成數(shù)據(jù)集上預(yù)訓(xùn)練時序模塊,讓模型學(xué)習(xí)各種各種 SBR(Stroke-based rendering) 方法的逐步繪畫過程,再用數(shù)十個藝術(shù)家的繪畫過程數(shù)據(jù)訓(xùn)練 Painting LoRA 模型。
2. 藝術(shù)品復(fù)制網(wǎng)絡(luò)(Artwork Replication Network)
繪畫實踐中,我們更希望知道一幅作品是如何畫出來的,以及如何從半成品繪畫繼續(xù)細(xì)化以達(dá)到期待的成品效果。這就引申出了兩個任務(wù):繪畫過程重建和補全。鑒于這兩個任務(wù)都有圖像的輸入,論文作者提出了藝術(shù)品復(fù)制網(wǎng)絡(luò)(Artwork Replication Network)。
這一網(wǎng)絡(luò)設(shè)計能夠處理任意幀的圖像輸入,靈活控制繪畫過程的生成。與之前的可控性生成方法類似,論文作者引入一個 ControlNet 的變體,來控制生成結(jié)果中的特定幀與參考圖一致。
3. 合成數(shù)據(jù)集與訓(xùn)練策略
由于真實繪畫過程數(shù)據(jù)較難獲取,數(shù)量不足以支持大規(guī)模訓(xùn)練。為此,論文作者構(gòu)建了用于預(yù)訓(xùn)練的合成數(shù)據(jù)集。
具體采用了三種合成數(shù)據(jù)方法:
1. 采用 Learn to Paint 來產(chǎn)生半透明貝賽爾曲線筆觸的繪畫序列;
2. 通過自定義筆觸,用 Neural style painting 生成油畫風(fēng)格和中國畫風(fēng)格的繪畫序列。
3. 上述 SBR(Stroke base painting)方法是從粗到細(xì)的擬合一張目標(biāo)圖像, 意味著允許對于已經(jīng)繪畫的部分進(jìn)行覆蓋和修改,然而很多繪畫種類,如中國畫和雕刻,由于材料的限制,無法大幅度修改已經(jīng)完成的部分, 繪畫過程是分區(qū)域完成的。為此,論文作者采用 SAM(segment anything) 和顯著性檢測方法,從空白畫布逐個子區(qū)域添加內(nèi)容,先繪制顯著性物體, 然后逐步向背景擴(kuò)散,從而合成繪畫過程視頻。
在訓(xùn)練階段,論文作者首先在合成數(shù)據(jù)集上預(yù)訓(xùn)練了 Motion Model,然后凍結(jié)了 Motion Model 的參數(shù)并訓(xùn)練了 Artwork Replication Network。在微調(diào)繪畫 LoRA 模型時,第一步只使用最終幀來微調(diào)空間注意力 LoRA,以防止半成品繪畫訓(xùn)練集損害模型的生成質(zhì)量。
此后,論文作者凍結(jié)了空間注意力 LoRA 的參數(shù),并使用完整的繪畫序列微調(diào)時間注意力 LoRA。在推理階段,當(dāng)從文本生成繪畫序列時,ProcessPainter 不使用藝術(shù)品復(fù)制網(wǎng)絡(luò)。在繪畫過程重建和補全任務(wù)中,ProcessPainter 使用藝術(shù)品復(fù)制網(wǎng)絡(luò)接收特定幀的參考輸入。為了確保生成的繪畫序列中的幀盡可能與輸入圖像匹配,ProcessPainter 采用了 DDIM 反演技術(shù)來獲取參考圖像的初始噪聲,并在 UNet 中替換特定幀的初始噪聲。
ProcessPainter 效果展示
在合成數(shù)據(jù)集上訓(xùn)練的 ProcessPainter base model 可以生成過程上有風(fēng)格差異的繪畫序列。
通過在少量人類畫師的繪畫序列上分別訓(xùn)練 Motion Lora,ProcessPainter 可以學(xué)習(xí)特定畫師的繪畫過程和風(fēng)格。
指定參考圖像,ProcessPainter 可以將完成的藝術(shù)品逆向解構(gòu)為繪畫步驟,或者從半成品推演出完整的畫作。
這些技術(shù)組件的結(jié)合,讓 ProcessPainter 不僅能夠從文本生成繪畫過程,還能將參考圖轉(zhuǎn)換成繪畫序列,或是對未完成的畫作進(jìn)行補全。這無疑為藝術(shù)教育提供了新工具,同時也為 AIGC 社區(qū)開辟了新賽道。也許不久的將來,Civitai 上會有各種模擬人類畫師繪畫過程的不同 Lora 出現(xiàn)。
更多細(xì)節(jié),歡迎閱讀論文原文或訪問 Github 項目主頁。
本文轉(zhuǎn)自 機器之心 ,作者:機器之心
