見出し画像

【AIアニメ】Google ColabでComfyUI + AnimateDiffを試す

※本記事では「Google Colab Pro」を利用します。現在、無料版Colabでは画像生成AIの使用が規制されているのでご注意ください。

  • 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」のワークフローの例が掲載されているので、今回はこれを試します。

https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved#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を使うワークフローを例に、カスタムノードの追加を試してみます。

https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved#txt2img-w-initial-controlnet-input-using-normal-lineart-preprocessor-on-first-txt2img-as-an-example
  • 先ほどのように、ドラッグ&ドロップでワークフローを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」のようなサイトを検索すると、膨大な数のモデルが見つかります。

https://github.com/guoyww/animatediff/#gallery

関連記事

  • ComfyUI AnimateDiffについての記事は、以下のnoteにまとめています。