【AIアニメ】Google ColabでComfyUI + AnimateDiffを試す
「AnimateDiff」は2023年7月に公開されたtxt2videoの動画生成ツールで、Stable DiffusionのUI上でControlNetとも併用可能です。
この記事では初心者向けに「Google Colab Pro」での導入方法を紹介しています(Colab Proは2023年9月現在、月額1,179円から利用できます)。
インストール作業や環境設定が圧倒的に楽なことや、グラフィックボードを搭載したPCが不要なことがGoogle Colabを使うメリットです。
Google ColabでComfyUIを使う
この記事では以下のColabを使用します。
ComfyUI版AnimateDiffや拡張機能管理ツール(ComfyUI-Manager)をすぐに使えるようにしたColabです。
では、Colabの上の3つのセルを順番に実行していきます。コンピューティングユニットを消費するのでお気をつけください。
最初のセルを実行するとComfyUI本体がインストールされます。
※GoogleDriveを使わない場合は、USE_GOOGLE_DRIVEの☑を外します。GoogleDriveを連携しないと毎回モデルをダウンロードする必要がありますが、ComfyUI自体の動作はGoogleDrive無しのほうが軽快です。
2番目のセルでは、Stable Diffusionのモデルやカスタムノード(拡張機能)をダウンロードします。
3番目のセルを実行するとComfyUIが起動するので、表示されたURL(*****.trycloudflare.com)をクリックしてください。
これでUI画面へ遷移します。もとからサンプルのワークフローが読み込まれているので、右上の「Queue Prompt」で実行してみます。
ノードに沿って処理が進み、プロンプトに従った画像が生成できました。生成された画像は、"/ComfyUI/output/"フォルダに保存されています。
無事にComfyUIが導入できたので、次はAnimateDiffを使ってみます。ComfyUIを起動したまま、次の作業に進みます。
ComfyUIでAnimateDiffを使う
このColabでは、2番目のセルを実行した時にAnimateDiff用のカスタムノード「ComfyUI-AnimateDiff-Evolved」も導入済みです。
Githubのページに、最も基本的な「txt2img」のワークフローの例が掲載されているので、今回はこれを試します。
上記ページに掲載されているワークフロー画像のファイルには、ComfyUIで読み込むための情報がメタデータとして付属しています。
そのPNGファイルを一度PCのデスクトップに保存し、ファイルをComfyUIのブラウザ画面にドラッグ&ドロップします(もしもサイトの仕様が変わっている場合は、以下をお使いください)。
画像ファイルをドラッグ&ドロップすると、UIにワークフローが読み込まれます。
このワークフローを「Queue Prompt」で実行します。最初の実行は標準GPUで1-2分かかりますが、2回目以降はもっと早いです。
生成されたGIF動画は、ComfyUI/outputフォルダ内に保存されています。
ワークフローの中の「CLIP Text Encode(Prompt)」のうち、上の緑色のノードに生成内容を指示する英語プロンプトが入力されています。これを書き換えると生成される動画が変わります。
茶色いノードは、生成内容に含めたくないものを入力するネガティブ・プロンプト欄です。
また、ワークフローの左下隅の「Primitive」というノードに入力されているValueの値(Seed値)を変えることで、同じプロンプトでも生成内容が変化します。
カスタムノードを追加する
「ComfyUI-AnimateDiff-Evolved」のページには、他にもワークフローのサンプルがいくつも掲載されているので、同じように試せます。
ただ、ワークフローによっては新たなカスタムノードを追加しないと実行できない場合がよくあります。こちらにあるContorlNetのLineartを使うワークフローを例に、カスタムノードの追加を試してみます。
先ほどのように、ドラッグ&ドロップでワークフローをComfyUIに読み込みます。すると以下のように注意が表示されるはずです。
このワークフローで使われるカスタムノードが自分のComfyUIにインストールされていないことを示す表示です。
では「ComyUI Manager」から必要なカスタムノードを追加します。まず右側にある「Manager」ボタンを押してメニューを表示します。
そしてメニューの中の「Install Missing Custom Nodes(不足しているカスタムノードをインストール)」を押します。
不足しているカスタムノードの一覧が表示されるので「install(インストール)」をクリックします。
ここでは、ContorlNetを組み込んだワークフローに必要な「ComfyUI's ControlNet Auxiliary Preprocessors(プリプロセッサー)」というカスタムノードを追加しています。
このカスタムノードはインストールに数分かかる場合があります。Colabのコンソール画面に以下のように表示されたら完了です。
ComfyUIの再起動が必要なので、セルの左上のグルグルをクリックして実行を停止した後、同じセルを再実行します。
これで新しいカスタムノード「ControlNet Auxiliary Preprocessors」が利用できるようになりました。
なおこのワークフローは、先ほどのGIF動画から線画(Lineart)を抽出して、類似した構図の動画を生成するためのものです。
そのため、これを実行するにはさっきのGIF動画をInputに入れて読み込んでおく必要があります。
よくわからない方は、以下のzip(フレームごとに分割済みの16枚の画像)をデスクトップ上に解凍したうえで、左側の「Load Images」ノードの「choose folder to upload」からフォルダごとアップロードしてください。
実行すると、最初の動画の構図をベースにしつつも秋らしい雰囲気に変わった動画が出力されます。
画像生成モデルを追加する
今回の例では、公式のサンプルに合わせて「CarDos Anime」というモデルをそのまま使いました。
別のモデルを追加したい場合は、Colabの2番目のセルを参考にしてダウンロードしてください。
例えば「Counterfeit-V3.0」というモデルを追加する場合は、セルに以下のようなコマンドを入力して実行します。
# 「!wget ダウンロードリンク -P ダウンロード先フォルダ」というコマンドを実行すると、指定したフォルダにモデルをダウンロードできます。
!wget https://huggingface.co/gsdf/Counterfeit-V3.0/resolve/main/Counterfeit-V3.0_fp16.safetensors -P ./models/checkpoints/
AnimateDiff公式ページには、いくつかのモデルによる生成例が掲載されています。また、「HuggingFace」や「CIVITAI」のようなサイトを検索すると、膨大な数のモデルが見つかります。
関連記事
ComfyUI AnimateDiffについての記事は、以下のnoteにまとめています。