同樣是圖生影片,PaintsUndo 走出了不一樣的路線。
ControlNet 作者 Lvmin Zhang 又開始整活了!這次瞄準繪畫領域。
新專案 PaintsUndo 剛上線不久,就收穫 1.4k star(還在瘋狂漲)。
專案地址:https://github.com/lllyasviel/Paints-UNDO
透過該專案,使用者輸入一張靜態影像,PaintsUndo 就能自動幫你生成整個繪畫的全過程影片,從線稿到成品都有跡可循。
繪製過程,線條變化多端甚是神奇,最終影片結果和原影像非常相似:
我們再來看一個完整的繪畫過程。PaintsUndo 先是用簡單的線條勾勒出人物主體,然後畫出背景,塗上顏色,最後精調成和原圖相似。
PaintsUndo 不止侷限於單一影像風格,對於不同型別的影像,也會生成相應的繪畫過程影片。
戴著頭巾的柯基犬眼神溫柔地望向遠方:
使用者也可以輸入單張影像,輸出多個影片:
不過,PaintsUndo 也存在缺點,比如處理複雜的構圖存在困難,作者表示專案還在不斷完善。
PaintsUndo 之所以如此強大,背後是一系列模型的支援,它們以影像作為輸入,然後輸出該影像的繪製序列。模型復現了各種人類行為,包括但不限於素描、上墨、著色、陰影、變換、左右翻轉、顏色曲線調整、更改圖層的可見性,甚至在繪製過程中更改整體思路。
本地部署過程非常簡單,幾行程式碼就能完成:
git clone https://github.com/lllyasviel/Paints-UNDO.git
cd Paints-UNDO
conda create -n paints_undo python=3.10
conda activate paints_undo
pip install xformers
pip install -r requirements.txt
python gradio_app.py
模型介紹
專案作者在 Nvidia 4090 和 3090TI 上使用 24GB VRAM 進行推理測試。作者估計,在極端最佳化(包括權重解除安裝和注意力切片)的情況下,理論上 VRAM 需求最小約為 10-12.5 GB。PaintsUndo 預計可以在大約 5 到 10 分鐘內處理一張影像,具體取決於相關設定,通常會得到時長 25 秒,解析度為 320x512、512x320、384x448 或 448x384 的影片。
目前該專案釋出了兩個模型:單幀模型 paints_undo_single_frame 和多幀模型 paints_undo_multi_frame。
單幀模型採用 SD1.5 的修改架構,以一幅影像和一個操作步驟作為輸入,輸出一幅影像。假設一件藝術品通常需要經過 1000 次人工操作才能創作出來(例如一筆是一次操作),那麼操作步長是 0-999 之間的整數。數字 0 是最終完成的藝術品,數字 999 是在純白畫布上繪製的第一筆。
多幀模型基於 VideoCrafter 系列模型,但沒有使用原始 Crafter 的 lvdm,所有訓練 / 推理程式碼完全從頭開始實現。專案作者對神經網路的拓撲進行了很多修改,並且經過大量訓練後,神經網路的行為與原始 Crafter 有很大不同。
多幀模型的整體架構類似於 Crafter,包含 5 個元件:3D-UNet、VAE、CLIP、CLIP-Vision、Image Projection。
多幀模型以兩幅影像作為輸入,輸出兩幅輸入影像之間的 16 箇中間幀。多幀模型的結果比單幀模型更加一致,但速度也慢得多,「創意」更少,並且僅限於 16 幀。
PaintsUndo 預設一起使用單幀模型和多幀模型。首先會用單幀模型推斷大約 5-7 次,得到 5-7 個「關鍵幀」,然後使用多幀模型對這些關鍵幀進行「插值」,最終生成一個相對較長的影片。
參考連結:https://lllyasviel.github.io/pages/paints_undo/