Skip to content

Latest commit

 

History

History
379 lines (309 loc) · 24.1 KB

README_ja.md

File metadata and controls

379 lines (309 loc) · 24.1 KB

CogVideo & CogVideoX

Read this in English

中文阅读

🤗 Huggingface Space または 🤖 ModelScope Space で CogVideoX-5B モデルをオンラインで体験してください

📚 論文使用ドキュメントを表示します。

👋 WeChatDiscord に参加

📍 清影APIプラットフォーム を訪問して、より大規模な商用ビデオ生成モデルを体験

更新とニュース

  • 🔥🔥 ニュース: 2024/9/19: CogVideoXシリーズの画像生成ビデオモデル CogVideoX-5B-I2V をオープンソース化しました。このモデルは、画像を背景入力として使用し、プロンプトワードと組み合わせてビデオを生成することができ、より高い制御性を提供します。これにより、CogVideoXシリーズのモデルは、テキストからビデオ生成、ビデオの継続、画像からビデオ生成の3つのタスクをサポートするようになりました。オンラインでの体験 をお楽しみください。

  • 🔥🔥 ニュース: 2024/9/19: CogVideoXのトレーニングプロセスでビデオデータをテキスト記述に変換するために使用されるキャプションモデル CogVLM2-Caption をオープンソース化しました。ダウンロードしてご利用ください。

  • 🔥 2024/8/27: CogVideoXシリーズのより大きなモデル CogVideoX-5B をオープンソース化しました。モデルの推論性能を大幅に最適化し、推論のハードルを大幅に下げました。GTX 1080TI などの旧型GPUで CogVideoX-2B を、RTX 3060 などのデスクトップGPUで CogVideoX-5B モデルを実行できます。依存関係を更新・インストールするために、要件 を厳守し、推論コードは cli_demo を参照してください。さらに、CogVideoX-2B モデルのオープンソースライセンスが Apache 2.0 ライセンス に変更されました。

  • 🔥 2024/8/6: CogVideoX-2B 用の 3D Causal VAE をオープンソース化しました。これにより、ビデオをほぼ無損失で再構築することができます。

  • 🔥 2024/8/6: CogVideoXシリーズのビデオ生成モデルの最初のモデル、CogVideoX-2B をオープンソース化しました。

  • 🌱 ソース: 2022/5/19: CogVideoビデオ生成モデルをオープンソース化しました(現在、CogVideo ブランチで確認できます)。これは、トランスフォーマーに基づく初のオープンソース大規模テキスト生成ビデオモデルです。技術的な詳細については、ICLR'23論文 をご覧ください。

より強力なモデルが、より大きなパラメータサイズで登場予定です。お楽しみに!

目次

特定のセクションにジャンプ:

クイックスタート

プロンプトの最適化

モデルを実行する前に、こちら を参考にして、GLM-4(または同等の製品、例えばGPT-4)の大規模モデルを使用してどのようにモデルを最適化するかをご確認ください。これは非常に重要です。モデルは長いプロンプトでトレーニングされているため、良いプロンプトがビデオ生成の品質に直接影響を与えます。

SAT

sat_demo の指示に従ってください: SATウェイトの推論コードと微調整コードが含まれています。CogVideoXモデル構造に基づいて改善することをお勧めします。革新的な研究者は、このコードを使用して迅速なスタッキングと開発を行うことができます。

Diffusers

pip install -r requirements.txt

次に diffusers_demo を参照してください: 推論コードの詳細な説明が含まれており、一般的なパラメータの意味についても言及しています。

量子化推論の詳細については、diffusers-torchao を参照してください。Diffusers と TorchAO を使用することで、量子化推論も可能となり、メモリ効率の良い推論や、コンパイル時に場合によっては速度の向上が期待できます。A100 および H100 上でのさまざまな設定におけるメモリおよび時間のベンチマークの完全なリストは、diffusers-torchao に公開されています。

Gallery

CogVideoX-5B

5b_1.mp4
5b_2.mp4
5b_3.mp4
5b_4.mp4
5b_5.mp4
5b_6.mp4
5b_7.mp4
5b_8.mp4

CogVideoX-2B

1.mp4
2.mp4
3.mp4
4.mp4

ギャラリーの対応するプロンプトワードを表示するには、こちらをクリックしてください

モデル紹介

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 精度を使用する必要があります。これには、torchtorchaodiffusersaccelerate Pythonパッケージのソースコードからのインストールが必要です。CUDA 12.4の使用をお勧めします。
  • 推論速度テストも同様に、上記のメモリ最適化方法を使用しています。メモリ最適化を使用しない場合、推論速度は約10%向上します。 diffusersバージョンのモデルのみが量子化をサポートしています。
  • モデルは英語入力のみをサポートしており、他の言語は大規模モデルの改善を通じて英語に翻訳できます。
  • モデルのファインチューニングに使用されるメモリは8 * H100環境でテストされています。プログラムは自動的にZero 2 最適化を使用しています。表に具体的なGPU数が記載されている場合、ファインチューニングにはその数以上のGPUが必要です。

友好的リンク

コミュニティからの貢献を大歓迎し、私たちもオープンソースコミュニティに積極的に貢献しています。以下の作品はすでにCogVideoXに対応しており、ぜひご利用ください:

  • CogVideoX-Fun: CogVideoX-Funは、CogVideoXアーキテクチャを基にした改良パイプラインで、自由な解像度と複数の起動方法をサポートしています。
  • Xorbits Inference: 強力で包括的な分散推論フレームワークであり、ワンクリックで独自のモデルや最新のオープンソースモデルを簡単にデプロイできます。
  • ComfyUI-CogVideoXWrapper ComfyUIフレームワークを使用して、CogVideoXをワークフローに統合します。
  • VideoSys: VideoSysは、使いやすく高性能なビデオ生成インフラを提供し、最新のモデルや技術を継続的に統合しています。
  • AutoDLイメージ: コミュニティメンバーが提供するHuggingface Spaceイメージのワンクリックデプロイメント。

プロジェクト構造

このオープンソースリポジトリは、CogVideoX オープンソースモデルの基本的な使用方法と微調整の例を迅速に開始するためのガイドです。

Colabでのクイックスタート

無料のColab T4上で直接実行できる3つのプロジェクトを提供しています。

Inference

  • 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 TransformersCogVideo branch にあります。

CogVideoは比較的高フレームレートのビデオを生成することができます。 32フレームの4秒間のクリップが以下に示されています。

High-frame-rate sample

Intro images

cogvideo.mp4

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 の下で公開されています。