
【ComfyUI】ローカル最高性能のi2v動画生成「CogVideoX-5B-I2V」をためす
2024/12追記:この記事は2024/9時点のComfyUI環境でテストしたものです。その後も開発が進められており、以下の内容はすでに古くなっていますので、本記事は参考までとしてください。最新のComfyUIワークフローは「ComfyUI-CogVideoXWrapper」から入手できます。
「CogVideo」シリーズは、ローカルで使える動画生成AIの中で2024年9月時点で最も高性能なモデルです。ただ従来のモデルはText-To-Video(テキスト指示からの動画生成)に用途が限られていました。
今回、新たにImage-To-Video(画像からの動画生成)に対応した「CogVideoX-5B-I2V」が公開されたので、ComfyUIで試してみました。
*note投稿:ComfyUIで「CogVideoX-5B-I2V」による動画生成をためす #CogVideoX #ComfyUIhttps://t.co/GRjunMVDG9 pic.twitter.com/JT9NctnmZA
— Baku (@bk_sakurai) September 21, 2024
CogVideoX-I2Vの概要
CogVideoX-5B-I2Vの概要は以下のとおりです(公式のオンラインデモはこちら)。
『CogVideoX-5B-I2V』
*用途:動画生成(Image-To-Video)
*解像度:720 x 480(固定)
*動画の長さ:8fpsで6秒(49フレーム固定)
*ライセンス:一定の制約のもと商用利用可
*ComfyUIでの実装:kijai/ComfyUI-CogVideoXWrapper
*VRAM消費の目安:BF16: 16GB強、FP8: 12GB強、Q4: 9GB強
なお、ほぼ同時に公開・実装された「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です。フレーム補間用のカスタムノードを使うことで動画を滑らかに調整できます。
