はじめに
VideoGrainは、xAIチームによって開発され、GitHubでホストされている多階層ビデオ編集に焦点を当てたオープンソースプロジェクトです。このプロジェクトは、ICLR 2025カンファレンスに採択された論文「VideoGrain: Modulating Space-Time Attention for Multi-Grained Video Editing」によるものです。拡散モデルにおける時空間注意メカニズムを変調することで、カテゴリー、インスタンス、ローカルレベルでの動画コンテンツのきめ細かな編集を実現する。従来の手法と比較して、VideoGrainはテキストと領域制御のセマンティックアライメント問題と特徴結合問題を解決し、追加トレーニングなしで高品質な編集を完了することができる。このプロジェクトは、開発者、研究者、ビデオ編集愛好家のために、完全なコード、インストールガイド、および事前に訓練されたモデルを提供し、すでに学術界やオープンソースコミュニティで注目を集めている。
機能一覧
- マルチグラニュラリティ・ビデオ編集カテゴリ(例:"人間 "を "ロボット "に置き換える)、インスタンス(例:特定のオブジェクト)、およびローカルな詳細(例:手の動き)の正確な修正をサポートします。
- サンプル編集機能ゼロ特定のビデオ用に再トレーニングする必要はなく、テキストプロンプトを入力するだけで編集が完了します。
- 時空間注意調節クロスアテンション(テキストと領域の分離)とセルフアテンション(領域内の特徴分離)を強化することで、編集精度とビデオ品質を向上させます。
- オープンソース・コードとモデリング完全な実装コードと訓練済みモデルが提供されているため、ユーザーによる再現や拡張が容易です。
- 拡散適合モデルディフューザーやFateZeroのようなフレームワークをベースにしているため、既存の映像生成プロセスに簡単に統合できます。
- 複数文書のサポートユーザーによってアップロードされたビデオ、画像、その他のコンテンツを処理し、編集されたビデオ結果を出力することができます。
ヘルプの使用
VideoGrainを使用するには、プログラミングの知識とハードウェアのサポートが必要ですが、そのインストールと操作手順はGitHubリポジトリに詳しく説明されています。以下は、ユーザーがすぐに使い始められるように、インストールと使用方法の詳細ガイドです。
設置プロセス
- Conda環境の作成
スタンドアロンのPython 3.10環境を作成し、ターミナルで以下のコマンドを入力して起動する:
conda create -n videograin python=3.10
conda activate videograin
Condaがインストールされていることを確認し、インストールされていない場合は、Anacondaのウェブサイトにアクセスしてダウンロードする。
- PyTorchと関連する依存関係のインストール
VideoGrainはPyTorchとそのCUDAサポートに依存しており、GPUアクセラレーションを推奨します。以下のコマンドを実行してインストールしてください:
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia
pip install --pre -U xformers==0.0.27
xformersはメモリとスピードを最適化することができ、必要なければスキップすることができる。
- 追加の依存関係をインストールする
リポジトリのルートから以下のコマンドを実行して、依存するライブラリをすべてインストールします:
pip install -r requirements.txt
一部のパッケージをダウンロードするには、科学的なインターネットアクセスが必要な場合があります。
- 訓練済みモデルのダウンロード
VideoGrainには、Stable Diffusion 1.5やControlNetなどのモデルウェイトが必要です。リポジトリで提供されているスクリプトを実行してください:
bash download_all.sh
これにより、ベースモデルが指定されたディレクトリに自動的にダウンロードされます。手動でダウンロードする場合は、Hugging FaceまたはGoogle Driveのリンクを参照してください(詳細はREADMEを参照)。
- ControlNetプリプロセッサの重みを準備する
アノテーターウェイト(DW-Pose、depth_midasなど)を約4GBダウンロードする:
gdown https://drive.google.com/file/d/1dzdvLnXWeMFR3CE2Ew0Bs06vyFSvnGXA/view?usp=drive_link
tar -zxvf videograin_data.tar.gz
ファイルを解凍して ./annotator/ckpts
カタログ
使用方法
インストールが完了した後、ユーザーはコマンドライン経由でビデオ編集のためにVideoGrainを実行することができます。以下は、主な機能の操作の流れです:
1.多階調ビデオ編集
- 入力ファイルの準備
編集するビデオファイルをプロジェクト・ディレクトリに置く(例えば./input_video.mp4
).MP4、AVIなどの一般的なフォーマットをサポートします。 - テキストアラートの準備
例えば、スクリプトの編集指示を指定する:
prompt = "将视频中的汽车替换为保时捷"
カテゴリー置換(例:「車」→「ポルシェ」)、インスタンス修正(例:「特定のキャラクター」→「アイアンマン")、ローカル調整(例:"手の動き "から "手の振り")に対応。
- editコマンドを実行する
それをターミナルに入力する:
python edit_video.py --input ./input_video.mp4 --prompt "将视频中的汽车替换为保时捷" --output ./output_video.mp4
編集後、結果は ./output_video.mp4
.
2.ゼロサンプル編集
- トレーニングなしの直接編集
VideoGrainの核となる強みは、ゼロサンプル機能です。ユーザーはビデオとキューを提供するだけで、事前トレーニングは必要ありません。例
python edit_video.py --input ./sample_video.mp4 --prompt "将狗替换为猫" --output ./edited_video.mp4
- 調整パラメーター
可--strength
このパラメーターは、編集の強さ(0.0~1.0、デフォルト0.8)をコントロールする:
python edit_video.py --input ./sample_video.mp4 -プロンプト "犬を猫に置き換える" --strength 0.6
3.時間的注意調節
- テキストからエリアへのコントロールの強化
VideoGrainは自動的にクロスアテンションを最適化し、プロンプトがターゲット領域にのみ影響するようにします。例えば、キューが「キャラクターの服を赤に変える」だった場合、余計な背景は影響を受けません。 - 標高の高いフィーチャー・セパレーション
セルフアテンションメカニズムは、リージョン内のディテールの一貫性を高め、リージョン間の干渉を減らす。ユーザーが手動で調整する必要はなく、実行時に自動的に反映される。
取り扱い上の注意
- ハードウェア要件
少なくとも12GBのビデオメモリを搭載したNVIDIA GPU(A100 または RTX 3090など)を推奨します。 - キュー・ワードの提案
プロンプトは具体的で明確でなければならない。例えば、"左の文字をロボットに置き換えてください "の方が、"文字を編集してください "という漠然としたものよりも良い。 - デバッグとロギング
何か問題が発生したら./logs
ディレクトリにログファイルを追加するか、コマンド--verbose
出力の詳細を見る
注目の機能
- マルチ・グラニュラリティ編集の実際
ビデオの「バイク」を「バイク」に置き換えたい場合、ビデオパスとキューワードを入力するだけで、VideoGrainはすべてのバイクを認識し、アクションと背景の一貫性を保ちながらバイクに置き換えます。 - オープンソース・エクステンション
ユーザーが変更可能edit_video.py
ディフューザーフレームワークのモデルパラメータを変更したり、ディフューザーフレームワークに基づく新機能(高解像度や編集タイプのサポートなど)を追加したりすることができます。 - 地域支援
GitHubのリポジトリには、ユーザーが問題を提出したり、他の人が行ったことを確認したりできる課題掲示板が用意されている。
以上の手順で、ユーザーはVideoGrainをすぐに使い始めることができ、簡単な置き換えから複雑なローカル調整まで、ビデオ編集作業を完了することができます。