[ComfyUI] IPAdapter + OpenPose + AnimateDiff 穩定影像

AI with Lora

雖然說 AnimateDiff 可以提供動畫流的模型演算,不過因為 Stable Diffusion 產出影像的差異性問題,其實還是造成了不少影片閃爍或是不連貫的問題。以目前的工具來看,IPAdapter 再搭配 ControlNet OpenPose 剛好可以補足這個部分。


English Version


前期準備工作

可以直接使用我的 Workflow 進行測試,安裝的部分可以參考我先前的這篇文章 [ComfyUI] AnimateDiff 影像流程

AnimateDiff_vid2vid_CN_Lora_IPAdapter_FaceDetailer

另外,此次工作流程中,有使用到 FreeU 這個工具,強烈推薦大家安裝。

FreeU, for A1111

ComfyUI 本身有內建 FreeU 的 Node 可以使用!

另外 IPAdapter 也需要額外安裝,作者有兩個版本,都可以用,不過舊的版本之後不更新了。

IPAdapter-ComfyUI

ComfyUI IPAdapter plus

在使用 IPAdapter 之前,請先去下載相關的模型檔案,

SD1.5 需要以下檔案,

SDXL 則需要以下檔案,

以上的檔案,請放置到 custom_nodes/ComfyUI_IPAdapter_plus/models 或是 custom_nodes/IPAdapter-ComfyUI/models 底下。

另外,由於需要 CLIP 工具,所以以下兩個檔案請放到 ComfyUI/models/clip_vision/ 底下,檔案名稱你可以自行修改,用以區別是 SD1.5 或 SDXL。


AnimateDiff + IPAdapter

我們先看一般 AnimateDiff 的設定,

AnimateDiff + FreeU without IPAdapter

由於要使用到 IPAdapter 這個部分,所以要找地方把他放進去。請注意!這邊的範例是使用的版本是 IPAdapter-ComfyUI,你也可以自行更換成 ComfyUI IPAdapter plus

以下是把 IPAdapter 與 ControlNet 接上的部分流程,

AnimateDiff + FreeU with IPAdapter

兩個 IPAdapter 的接法大同小異,這邊給大家兩個對照組參考一下,

IPAdapter-ComfyUI

IPAdapter-ComfyUI simple workflow

ComfyUI IPAdapter Plus

ComfyUI IPAdapter Plus simple workflow

這樣你大概可以瞭解 AnimateDiff 與 IPAdapter 的連接方法了。


ControlNet + IPAdapter

接著,我們從 IPAdapter 輸入的東西,需要一個 OpenPose 的 ControlNet 來控制,用以達到更好的輸出。

ControlNet - DWPreprocessor + OpenPose

如果你的 image 輸入來源原本就是骨架圖片的話,那麼你就不需要 DWPreprocessor 這個預處理器。不過由於我的輸入來源直接就是某一個影片檔案,所以,這邊就交給預處理器去幫我處理圖片。

而在 IPAdapter 的 unCLIPConditioning 的正向提示詞(positive)需要把他接到 ControlNet 這邊,以下的示意流程給大家參考一下,這樣我們的 IPAdapter 才會進入 ControlNet 的控制。

ControlNet and IPAdapter simple workflow

AnimateDiff Motion Lora

為了更流暢的動畫呈現,所以我使用 Motion Lora 來做一點漸變效果。如果你不想要也是可以,這邊沒有一定要使用。

Motion Lora

我在這邊選用的是 v2_lora_ZoomOut.ckpt 這個效果,你可以自行試試看其他的動態 Lora 效果。因為我不希望他對於畫面帶來太多的影響,所以權重的部分我僅給他 0.3

實際測試下來,如果你的整體動作相當複雜,建議不要使用。


組合流程

最後,我們把這些流程組合起來,

  1. 讀取影片、模型、提示詞,設定 AnimateDiff Loader
  2. 設定 IPAdapter。
  3. 設定 ControlNet。
  4. 設定 Lora,如果你不要的話,也可以把他 byPass
  5. 設定最後輸出,修復臉部。
Load Video and Settings
Apply LoRAs
Using IPAdapter

最後,我們做輸出與臉部修復。

Output and FaceDetailer

小結

這邊之所以僅使用 OpenPose 的原因在於,我們是使用 IPAdapter 參考了整體風格,所以,倘若再加入 SoftEdgeLineart 這一類的 ControlNet,多少會干涉整個 IPAdapter 的參考結果。

當然,這個情況也不是一定會發生,你的原始影像來源如果沒有非常複雜,多用一兩個 ControlNet 也是可以達到不錯的效果。

Hina Chen
偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。
Taipei