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