![見出し画像](https://assets.st-note.com/production/uploads/images/116257883/rectangle_large_type_2_121cf8620d6ee3a1e8cd45782625f9ad.png?width=800)
【AIアニメ】AnimateDiffでControlNetのLineartを試す
前回の記事ではControlNetのOpenposeを使った動画生成を試しました。今回は、ControlNetのLineart(線画)という機能を使ってみます。
![](https://assets.st-note.com/production/uploads/images/117522207/picture_pc_8883ff4e2f2075fac3711cabb3a20f17.gif)
1. 必要な準備
ComfyUI AnimateDiffの基本的な使い方は、こちらの記事などをご参照ください。今回の作業でComfyUIに導入が必要なものは以下のとおりです。
カスタムノード
次の2つを使います。
ComfyUI-AnimateDiff-Evolved(ComfyUI用AnimateDiff)
ComfyUI-Advanced-ControlNet(ControlNet拡張機能)
ComfyUI Managerを使っている場合は、どちらもManager経由で検索しインストールできます(参考:カスタムノードの追加)。
または、"ComfyUI\custom_nodes\"に直接git cloneします。
モーションモジュール
ここでは「mm_sd_v15.ckpt」を使います(線画ではv15_v2よりv15がきれいです)。保存先のフォルダは"ComfyUI\custom_nodes\ComfyUI-AnimateDiff-Evolved\models\"です。
24フレームを超える動画を生成する場合は「temporaldiff-v1-animatediff.ckpt」という派生モデルが使えます。
ControlNet
「control_v11p_sd15_lineart.pth」を使います。保存先のフォルダは"ComfyUI\models\controlnet\"です。DLリンクはこちら。safetensors版でも構いません。
画像生成モデル(ComfyUI\models\checkpoints\)
好きなものを使います。この記事ではアニメ系のモデル「Counterfeit-V3.0_fp32」を使用しています。
2. 線画の用意
ひとまず「VRoidStudio」で簡単なサンプル動画を作成しました。
![](https://assets.st-note.com/production/uploads/images/117569296/picture_pc_61b9630a94100c1d4fc26416e2862d39.gif)
この動画をフレーム画像に分割し、ComfyUIのプリプロセッサーにかけると、Lineart(線画)の抽出ができます。
![](https://assets.st-note.com/img/1696020491880-l8YxyETecB.png)
プリプロセッサー(ControlNet Auxiliary Preprocessors)の導入手順についてはこちら、使い方についてはこちらで説明しています。
今回はすでに抽出した線画を使って作業をすすめます。下記が512x768の24フレーム分の線画ファイルです。
次のワークフローで使うので、ComfyUI内に適当なフォルダを作り、この24枚の画像ファイルを格納しておきます。
![](https://assets.st-note.com/img/1696020245956-b1Czjn58BD.png)
3. ワークフロー
では、前回の記事で使ったワークフローを修正し、ControlNetを「Openpose」から「Lineart」に入れ替えて使ってみます。
![](https://assets.st-note.com/img/1695973608331-CyYHnMeUiN.png?width=800)
上記のJSONファイルをダウンロードし、ComfyUIにドラッグ&ドロップするとワークフローを読み込めます。
「Load Images」のdirectoryに、線画のPNG画像を保存したフォルダを指定します。「Load Checkpoint」などもご自身の環境に合わせて修正してください。
![](https://assets.st-note.com/img/1695972053559-nV1TDSYxkf.png?width=800)
準備ができたら、右上の「Queue Prompt」を実行して生成を始めます。
![](https://assets.st-note.com/img/1696021095405-bgAWfKIjvI.png?width=800)
4. アウトプット
このワークフローでは、512x768のサイズで生成したあと、さらにアップスケールします。サイズや倍率はお使いのGPUに合わせて調整してください。
![](https://assets.st-note.com/production/uploads/images/117569792/picture_pc_723b673c19d5d647d2bfc76b4900d1c9.gif)
5. TIPS
上記の動画では、飛び上がるタイミングで少し作画が乱れています。Lineartで動きの激しいアニメーションを生成すると起こりがちです。
このような場合、単純にseed値やControlNetの強さ(strength)を変更して再試行するのも手ですが、Openposeと併用すると確実にモーションが安定します(参考記事)。
![](https://assets.st-note.com/production/uploads/images/117570818/picture_pc_92b30ed3071661319064646862bf1912.gif)
6. 関連記事
ComfyUI AnimateDiffについての記事は、以下のnoteにまとめています。