【ComfyUI】ローカル最高性能のi2v動画生成「CogVideoX-5B-I2V」をためす
「CogVideo」シリーズは、ローカルで使える動画生成AIの中で現時点で最も高性能なモデルです。ただ従来のモデルはText-To-Video(テキスト指示からの動画生成)に用途が限られていました。
今回、新たにImage-To-Video(画像からの動画生成)に対応した「CogVideoX-5B-I2V」が公開されたので、ComfyUIで試してみました。
本記事は2024/9/21時点のComfyUI環境でテストしています。将来のアップデート等でワークフローが動かなくなる可能性があるのでご了解ください。
CogVideoX-I2Vの概要
CogVideoX-5B-I2Vの概要は以下のとおりです(公式のオンラインデモはこちら)。
なお、ほぼ同時に公開・実装された「CogVideoX-Fun」も同じくImage-To-Video用モデルです。出力の質は本モデルにやや劣りますが、解像度・動画の長さの自由度が高いです。
ComfyUIワークフロー
Kijaiさんのカスタムノード「ComfyUI-CogVideoXWrapper」に基本のワークフローが掲載されているので、そちらをもとに作成しました。
以下は各ノードの簡単な説明です。
CogVideoモデルの読み込み
初回のワークフローの実行時に「model」で設定されているI2Vモデルが自動でダウンロードされます。10GBを超えるサイズがあります。
「fp8_transformer」を「enabled」に設定すると、FP8で推論します。デフォルトだと16GB超のVRAM消費ですが、FP8だと12GB強まで抑えられるようです。生成の質はわずかに低下、生成速度は変わりません。
「fp8_transformer」を「fastmode」に設定すると、生成の質がそこそこ低下する一方、生成速度が向上します。RTX 40XX以降のGPUで使える設定です。
「compile」は連続生成を高速化するためのオプションです。手元の環境では使えなかったので試せていません。
【9/23追記】Q4-GGUF版のモデルが利用可能になりました。推論時のVRAM消費量は10GB未満に抑えられます。以下のノードを代わりに使用します。
CLIPモデルの読み込み
CLIPは「Flux.1」などの生成でも使われているgoogleの「T5」を使います。FP16版と軽量なFP8版があります。ComfyUI Manager経由でもDLできます。
入力画像
解像度が720x480 のみ対応なので、サイズを合わせて作成するか、必要に応じてresize / cropします。
入力画像はやはり実写・3DCG系がもっとも良い結果が得られますが、StableVideoDiffusionに比べればイラスト系の画像も動かしやすいです。
既存の動画生成AIと同じく、ポーズやアングルに動きが感じられる画像ほど扱いやすく、ポートレイトなどは難度(ガチャ度)が上がります。動物や空、波など自然系動画が得意なのも同じです。
プロンプト
長めのプロンプトを放り込んでみましたが、そこそこ対応できているようです。とはいえ画像生成ではないので、動作やカメラワークを強調した簡潔なプロンプトのほうがよいかもしれません。
サンプラー
height / width / num_frames は固定なのでデフォルトのまま使います。数値を変えると壊れた動画が出力されます。
生成時間に直結する「Step」の値はデフォルトだと50ですが、30程度に減らしても遜色ない出力が得られます。生成に時間がかかるので、できるだけ小さくしたいところです。
入力画像・プロンプトへの忠実度を決める「cfg」はデフォルトが6.00で、5.00~7.00くらいの間で設定するのが無難そうです。
右側の「CogVideo Decode」は画像生成でお馴染みのVAE Decodeに相当するノードです。CogVideoはDecode時のメモリ使用量が大きいので、必要に応じてvae_tilingを有効化します(複数のタイルに分割してDecodeしてくれます)。
(補足)フレーム補間
CogVideoの元の生成動画は8fpsです。フレーム補間用のカスタムノードを使うことで動画を滑らかに調整できます。