ComfyUI AnimateDiff×ControlNetでopenpauseで姿勢制御
ComfyUIとAnimateDiff、さらにControlNetを組み合わせることでさらに詳細なアニメーションの生成指示が可能で、前回は×ControlNetのtileを利用して、「ComfyUI AnimateDiff×ControlNetでアニメの中割りを創る」という記事で、アニメーションの中割りを生成しましたが、今回はControlNetのopenpauseを利用してアニメーションを制作にチャレンジします。
事前準備
本記事ではComfyUIでAnimateDiffが利用できることを前提にまとめています。
ComfyUIのインストール方法については「Stable Diffusion ComfyUIをWindowsのローカル環境に構築」の記事をご覧ください。また、ComfyUI上でAnimateDiffを動作させるための準備については「ComfyUI環境でAnimateDiffを実行する」の記事をご覧ください。
ControlNetのモデルデータを準備
今回はopenpauseを利用するため、以下のURLからopenpause用のモデルデータ「control_v11p_sd15_openpose.pth」をダウンロードします。
ControlNet-v1-1
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
ダウンロードしたデータは、「インストール先/models/controlnet/」に設置します。
ComfyUIのワークフロー
ComfyUIの特徴としてワークフローが取り込めるところが良い点なので、今回は「【AIアニメ】ComfyUIとControlNetでAnimateDiffを楽しむ」で公開されているワークフロー「workflow_tile_interpolation.json」とOpenpose画像をベースに作成させていただきました。ファイルは記事中に設置されています。
一点注意が必要で、「From adv-contorolnet/image」のノードのディレクトリをOpenpose画像がある場所を指定してからワークフローを実行してみてください。
アウトプット
アップスケールしたアニメ(1024×1024)はこちら
破綻が少なく狙った通りに動かせる。
正確に連続性がある動作するオープンポーズのデータを制作するのは大変そうですが、かなり一貫性も保たれ、致命的な破綻が少ないのは魅力的です。ブレンダーなどでポーズ取得用のCGを作って動画→静止画に分解→オープンポーズなどいろいろと工夫することはできそうです。