24 KiB
CogVideo & CogVideoX
🤗 Huggingface Space または 🤖 ModelScope Space で CogVideoX-5B モデルをオンラインで体験してください
📍 清影 と APIプラットフォーム を訪問して、より大規模な商用ビデオ生成モデルを体験
更新とニュース
- 🔥🔥 ニュース:
2024/9/19
: CogVideoXシリーズの画像生成ビデオモデル CogVideoX-5B-I2V をオープンソース化しました。このモデルでは、背景として画像を入力し、プロンプトと組み合わせてビデオを生成でき、より強力なコントロール性を提供します。これで、CogVideoXシリーズは、テキスト生成ビデオ、ビデオ拡張、画像生成ビデオの3つのタスクをサポートしています。ぜひ オンラインでお試しください。 - 🔥 ニュース:
2024/9/16
: 自動動画生成ツールを追加しました!オープンソースのローカルモデル + FLUX + CogVideoX を使用して、高品質な動画を自動生成できます。ぜひお試しください。 - 🔥 ニュース:
2024/9/15
: CogVideoXのLoRAファインチューニングの重みがエクスポートされ、diffusers
ライブラリでのテストに成功しました。チュートリアル をご覧ください。 - 🔥 ニュース:
2024/8/29
:pipe.enable_sequential_cpu_offload()
とpipe.vae.enable_slicing()
をCogVideoX-5Bの推論コードに追加することで、VRAM使用量を5GB
まで削減できます。更新されたcli_demoをご覧ください。 - 🔥ニュース:
2024/8/27
: CogVideoX-2B モデルのオープンソースライセンスが Apache 2.0 ライセンス に変更されました。 - 🔥ニュース:
2024/8/27
: CogVideoX シリーズのより大きなモデル CogVideoX-5B をオープンソース化しました。 モデルの推論性能を大幅に最適化し、推論のハードルを大幅に下げました。GTX 1080TI
などの旧型GPUで CogVideoX-2B を、RTX 3060
などのミドル - 🔥ニュース:
2024/8/20
: VEnhancer は CogVideoX が生成したビデオの強化をサポートしました。より高い解像度とより高品質なビデオレンダリングを実現します。チュートリアル に従って、ぜひお試しください。 - 🔥ニュース: 2024/8/15: CogVideoX の依存関係である
SwissArmyTransformer
の依存が0.4.12
にアップグレードされました。これにより、微調整の際にSwissArmyTransformer
をソースコードからインストールする必要がなくなりました。同時に、Tied VAE
技術がdiffusers
ライブラリの実装に適用されました。diffusers
とaccelerate
ライブラリをソースコードからインストールしてください。CogVdideoX の推論には 12GB の VRAM だけが必要です。 推論コードの修正が必要です。cli_demoをご確認ください。 - 🔥 ニュース:
2024/8/12
: CogVideoX 論文がarxivにアップロードされました。ぜひ論文をご覧ください。 - 🔥 ニュース:
2024/8/7
: CogVideoX はdiffusers
バージョン 0.30.0 に統合されました。単一の 3090 GPU で推論を実行できます。詳細については コード を参照してください。 - 🔥 ニュース:
2024/8/6
: CogVideoX-2B で使用される 3D Causal VAE もオープンソース化しました。これにより、ビデオをほぼ無損失で再構築できます。 - 🔥 ニュース:
2024/8/6
: CogVideoX-2B、CogVideoXシリーズのビデオ生成モデルの最初のモデルをオープンソース化しました。 - 🌱 ソース:
2022/5/19
: CogVideo (現在CogVideo
ブランチで確認できます) をオープンソース化しました。これは、最初のオープンソースの事前学習済みテキストからビデオ生成モデルであり、技術的な詳細については ICLR'23 CogVideo 論文 をご覧ください。
より強力なモデルが、より大きなパラメータサイズで登場予定です。お楽しみに!
目次
特定のセクションにジャンプ:
クイックスタート
プロンプトの最適化
モデルを実行する前に、こちら を参考にして、GLM-4(または同等の製品、例えばGPT-4)の大規模モデルを使用してどのようにモデルを最適化するかをご確認ください。これは非常に重要です。モデルは長いプロンプトでトレーニングされているため、良いプロンプトがビデオ生成の品質に直接影響を与えます。
SAT
sat_demo の指示に従ってください: SATウェイトの推論コードと微調整コードが含まれています。CogVideoXモデル構造に基づいて改善することをお勧めします。革新的な研究者は、このコードを使用して迅速なスタッキングと開発を行うことができます。
Diffusers
pip install -r requirements.txt
次に diffusers_demo を参照してください: 推論コードの詳細な説明が含まれており、一般的なパラメータの意味についても言及しています。
Gallery
CogVideoX-5B
CogVideoX-2B
ギャラリーの対応するプロンプトワードを表示するには、こちらをクリックしてください
モデル紹介
CogVideoXは、清影 と同源のオープンソース版ビデオ生成モデルです。 以下の表に、提供しているビデオ生成モデルの基本情報を示します:
モデル名 | CogVideoX-2B | CogVideoX-5B | CogVideoX-5B-I2V |
---|---|---|---|
推論精度 | FP16*(推奨), BF16, FP32, FP8*, INT8, INT4は非対応 | BF16(推奨), FP16, FP32, FP8*, INT8, INT4は非対応 | |
単一GPUのメモリ消費 |
SAT FP16: 18GB diffusers FP16: 4GBから* diffusers INT8(torchao): 3.6GBから* |
SAT BF16: 26GB diffusers BF16 : 5GBから* diffusers INT8(torchao): 4.4GBから* |
|
マルチGPUのメモリ消費 | FP16: 10GB* using diffusers |
BF16: 15GB* using diffusers |
|
推論速度 (ステップ = 50, FP/BF16) |
単一A100: 約90秒 単一H100: 約45秒 |
単一A100: 約180秒 単一H100: 約90秒 |
|
ファインチューニング精度 | FP16 | BF16 | |
ファインチューニング時のメモリ消費 | 47 GB (bs=1, LORA) 61 GB (bs=2, LORA) 62GB (bs=1, SFT) |
63 GB (bs=1, LORA) 80 GB (bs=2, LORA) 75GB (bs=1, SFT) |
78 GB (bs=1, LORA) 75GB (bs=1, SFT, 16GPU) |
プロンプト言語 | 英語* | ||
プロンプトの最大トークン数 | 226トークン | ||
ビデオの長さ | 6秒 | ||
フレームレート | 8フレーム/秒 | ||
ビデオ解像度 | 720 * 480、他の解像度は非対応(ファインチューニング含む) | ||
位置エンコーディング | 3d_sincos_pos_embed | 3d_sincos_pos_embed | 3d_rope_pos_embed + learnable_pos_embed |
ダウンロードリンク (Diffusers) | 🤗 HuggingFace 🤖 ModelScope 🟣 WiseModel |
🤗 HuggingFace 🤖 ModelScope 🟣 WiseModel |
🤗 HuggingFace 🤖 ModelScope 🟣 WiseModel |
ダウンロードリンク (SAT) | SAT |
データ解説
- diffusersライブラリを使用してテストする際には、
diffusers
ライブラリが提供する全ての最適化が有効になっています。この方法は NVIDIA A100 / H100以外のデバイスでのメモリ/メモリ消費のテストは行っていません。通常、この方法はNVIDIA Ampereアーキテクチャ 以上の全てのデバイスに適応できます。最適化を無効にすると、メモリ消費は倍増し、ピークメモリ使用量は表の3倍になりますが、速度は約3〜4倍向上します。以下の最適化を部分的に無効にすることが可能です:
pipe.enable_sequential_cpu_offload()
pipe.vae.enable_slicing()
pipe.vae.enable_tiling()
- マルチGPUで推論する場合、
enable_sequential_cpu_offload()
最適化を無効にする必要があります。 - INT8モデルを使用すると推論速度が低下しますが、これはメモリの少ないGPUで正常に推論を行い、ビデオ品質の損失を最小限に抑えるための措置です。推論速度は大幅に低下します。
- CogVideoX-2Bモデルは
FP16
精度でトレーニングされており、CogVideoX-5BモデルはBF16
精度でトレーニングされています。推論時にはモデルがトレーニングされた精度を使用することをお勧めします。 - PytorchAOおよびOptimum-quanto
は、CogVideoXのメモリ要件を削減するためにテキストエンコーダ、トランスフォーマ、およびVAEモジュールを量子化するために使用できます。これにより、無料のT4
Colabやより少ないメモリのGPUでモデルを実行することが可能になります。同様に重要なのは、TorchAOの量子化は
torch.compile
と完全に互換性があり、推論速度を大幅に向上させることができる点です。NVIDIA H100
およびそれ以上のデバイスではFP8
精度を使用する必要があります。これには、torch
、torchao
、diffusers
、accelerate
Pythonパッケージのソースコードからのインストールが必要です。CUDA 12.4
の使用をお勧めします。 - 推論速度テストも同様に、上記のメモリ最適化方法を使用しています。メモリ最適化を使用しない場合、推論速度は約10%向上します。
diffusers
バージョンのモデルのみが量子化をサポートしています。 - モデルは英語入力のみをサポートしており、他の言語は大規模モデルの改善を通じて英語に翻訳できます。
- モデルのファインチューニングに使用されるメモリは
8 * H100
環境でテストされています。プログラムは自動的にZero 2
最適化を使用しています。表に具体的なGPU数が記載されている場合、ファインチューニングにはその数以上のGPUが必要です。
友好的リンク
コミュニティからの貢献を大歓迎し、私たちもオープンソースコミュニティに積極的に貢献しています。以下の作品はすでにCogVideoXに対応しており、ぜひご利用ください:
- Xorbits Inference: 強力で包括的な分散推論フレームワークであり、ワンクリックで独自のモデルや最新のオープンソースモデルを簡単にデプロイできます。
- ComfyUI-CogVideoXWrapper ComfyUIフレームワークを使用して、CogVideoXをワークフローに統合します。
- VideoSys: VideoSysは、使いやすく高性能なビデオ生成インフラを提供し、最新のモデルや技術を継続的に統合しています。
- AutoDLイメージ: コミュニティメンバーが提供するHuggingface Spaceイメージのワンクリックデプロイメント。
プロジェクト構造
このオープンソースリポジトリは、CogVideoX オープンソースモデルの基本的な使用方法と微調整の例を迅速に開始するためのガイドです。
推論
- cli_demo: 推論コードの詳細な説明が含まれており、一般的なパラメータの意味についても言及しています。
- cli_demo_quantization: 量子化モデル推論コードで、低メモリのデバイスでも実行可能です。また、このコードを変更して、FP8 精度の CogVideoX モデルの実行をサポートすることもできます。
- diffusers_vae_demo: VAE推論コードの実行には現在71GBのメモリが必要ですが、将来的には最適化される予定です。
- space demo: Huggingface Spaceと同じGUIコードで、フレーム補間や超解像ツールが組み込まれています。
- convert_demo: ユーザー入力をCogVideoXに適した形式に変換する方法。CogVideoXは長いキャプションでトレーニングされているため、入力テキストをLLMを使用してトレーニング分布と一致させる必要があります。デフォルトではGLM-4を使用しますが、GPT、Geminiなどの他のLLMに置き換えることもできます。
- gradio_web_demo: CogVideoX-2B / 5B モデルを使用して動画を生成する方法を示す、シンプルな Gradio Web UI デモです。私たちの Huggingface Space と同様に、このスクリプトを使用して Web デモを起動することができます。
finetune
- train_cogvideox_lora: CogVideoX diffusers 微調整方法の詳細な説明が含まれています。このコードを使用して、自分のデータセットで CogVideoX を微調整することができます。
sat
- sat_demo: SATウェイトの推論コードと微調整コードが含まれています。CogVideoXモデル構造に基づいて改善することをお勧めします。革新的な研究者は、このコードを使用して迅速なスタッキングと開発を行うことができます。
ツール
このフォルダには、モデル変換/キャプション生成などのツールが含まれています。
- convert_weight_sat2hf: SAT モデルの重みを Huggingface モデルの重みに変換します。
- caption_demo: Caption ツール、ビデオを理解してテキストで出力するモデル。
- export_sat_lora_weight: SAT ファインチューニングモデルのエクスポートツール、SAT Lora Adapter を diffusers 形式でエクスポートします。
- load_cogvideox_lora: diffusers 版のファインチューニングされた Lora Adapter をロードするためのツールコード。
- llm_flux_cogvideox: オープンソースのローカル大規模言語モデル + Flux + CogVideoX を使用して自動的に動画を生成します。
CogVideo(ICLR'23)
論文の公式リポジトリ: CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers は CogVideo branch にあります。
CogVideoは比較的高フレームレートのビデオを生成することができます。 32フレームの4秒間のクリップが以下に示されています。
CogVideoのデモは https://models.aminer.cn/cogvideo で体験できます。 元の入力は中国語です。
引用
🌟 私たちの仕事が役立つと思われた場合、ぜひスターを付けていただき、論文を引用してください。
@article{yang2024cogvideox,
title={CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer},
author={Yang, Zhuoyi and Teng, Jiayan and Zheng, Wendi and Ding, Ming and Huang, Shiyu and Xu, Jiazheng and Yang, Yuanming and Hong, Wenyi and Zhang, Xiaohan and Feng, Guanyu and others},
journal={arXiv preprint arXiv:2408.06072},
year={2024}
}
@article{hong2022cogvideo,
title={CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers},
author={Hong, Wenyi and Ding, Ming and Zheng, Wendi and Liu, Xinghan and Tang, Jie},
journal={arXiv preprint arXiv:2205.15868},
year={2022}
}
あなたの貢献をお待ちしています!詳細はこちらをクリックしてください。
ライセンス契約
このリポジトリのコードは Apache 2.0 License の下で公開されています。
CogVideoX-2B モデル (対応するTransformersモジュールやVAEモジュールを含む) は Apache 2.0 License の下で公開されています。
CogVideoX-5B モデル(Transformers モジュール、画像生成ビデオとテキスト生成ビデオのバージョンを含む) は CogVideoX LICENSE の下で公開されています。