【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ
「AnimateDiff」では簡単にショートアニメをつくれますが、プロンプトだけで思い通りの構図を再現するのはやはり難しいです。
そこで、画像生成でおなじみの「ControlNet」を併用することで、意図したアニメーションを再現しやすくなります。
必要な準備
ComfyUIでAnimateDiffとControlNetを使うために、事前に導入しておくのは以下のとおりです。
カスタムノード
次の2つを使います。
ComfyUI-AnimateDiff-Evolved(ComfyUI用AnimateDiff)
ComfyUI-Advanced-ControlNet(ControlNet拡張機能)
ComfyUI Managerを使っている場合は、どちらもManager経由で検索しインストールできます(参考:カスタムノードの追加)。
または、"ComfyUI\custom_nodes\"に直接git cloneします。
モーションモジュール
ここでは「mm_sd_v14.ckpt」を使います。保存先のフォルダは"ComfyUI\custom_nodes\ComfyUI-AnimateDiff-Evolved\models\"です。
ControlNet
「control_v11p_sd15_openpose.pth」を使います。保存先のフォルダは"ComfyUI\models\controlnet\"です。DLリンクはこちら。safetensors版でも構いません。
画像生成モデル (ComfyUI\models\checkpoints\)
好きなものを使います。今回のワークフローではアニメ系のモデル「CarDos Anime」を使用しています。
Openpose画像
Openposeでは棒人間のようなイラストを使ってポーズを指定できます。
今回はサンプルとして人が手を振るだけの16フレームの連続画像を用意しました。
今回はComfyUIフォルダの直下に適当なフォルダ(00_Openpose)を作って、そこにOpenpose画像を格納します。
ワークフロー
今回使用するワークフローは以下です(ComfyUI-AnimateDiff公式のワークフローを参考にしています)。
このJSONファイルをダウンロードして、ComfyUI画面にドラッグ&ドロップするとワークフローを読み込めます。
JSONをドラッグ&ドロップしてワークフローが読み込めたら「Load Images」や「Load Checkpoint」などをご自身の環境に合わせて修正してください。
準備ができたら、右上の「Queue Prompt」を実行して生成を始めます。
このワークフローでは、512x768のサイズで生成したあと、さらに1.5倍にアップスケールします。サイズや倍率はお使いのGPUに合わせて調整してください。
生成された動画は、"ComfyUI\output\"フォルダに保存されます。
ワークフロー内のプロンプトを変更すれば、キャラクターデザインや表情、背景を変えながら色々な動画を生成できます。
TIPS
VRAM容量が足りているのにCUDAエラーが発生する場合、UI起動時に"--disable-xformers"のフラグを付けてxformersを無効化します
既存の動画からOpenpose画像を作成する方法については、上記のnoteの中で説明しています(カスタムノード「ControlNet Auxiliary Preprocessors」を使います)。
関連記事
そのほかのComfyUI AnimateDiffについての記事は、以下のnoteにまとめています。