🚀 もち 1
Genmoによる最先端のビデオ生成モデルです。このモデルは、高忠実度のモーションと強力なプロンプト追従性を備え、オープンなビデオ生成システムの性能を大きく向上させます。
ブログ | Hugging Face | プレイグラウンド | 採用情報

🚀 クイックスタート
もち 1 プレビューは、高忠実度のモーションと強力なプロンプト追従性を備えたオープンな最先端ビデオ生成モデルです。このモデルは、クローズドなビデオ生成システムとオープンなビデオ生成システムのギャップを大幅に埋めます。このモデルは、許容的なApache 2.0ライセンスの下で公開されています。プレイグラウンドで無料でこのモデルを試すことができます。
✨ 主な機能
- 最先端のビデオ生成技術を搭載
- 高忠実度のモーションと強力なプロンプト追従性
- 簡単なAPIを通じたプログラムによる呼び出しが可能
📦 インストール
uvを使用してインストールします。
git clone https://github.com/genmoai/models
cd models
pip install uv
uv venv .venv
source .venv/bin/activate
uv pip install setuptools
uv pip install -e . --no-build-isolation
フラッシュアテンションをインストールしたい場合は、以下を使用できます。
uv pip install -e .[flash] --no-build-isolation
出力をビデオに変換するために、FFMPEGもインストールする必要があります。
重みのダウンロード
download_weights.pyを使用して、モデルとデコーダをローカルディレクトリにダウンロードします。以下のように使用します。
python3 ./scripts/download_weights.py <path_to_downloaded_directory>
または、Hugging Faceから直接重みをダウンロードするか、magnet:?xt=urn:btih:441da1af7a16bcaa4f556964f8028d7113d21cbb&dn=weights&tr=udp://tracker.opentrackr.org:1337/announce
を使用してコンピュータ上のフォルダにダウンロードします。
💻 使用例
基本的な使用法
グラディオUIの起動
python3 ./demos/gradio_ui.py --model_dir "<path_to_downloaded_directory>"
CLIからのビデオ生成
python3 ./demos/cli.py --model_dir "<path_to_downloaded_directory>"
<path_to_downloaded_directory>
をモデルディレクトリのパスに置き換えてください。
高度な使用法
APIを使用したモデルの呼び出し
from genmo.mochi_preview.pipelines import (
DecoderModelFactory,
DitModelFactory,
MochiSingleGPUPipeline,
T5ModelFactory,
linear_quadratic_schedule,
)
pipeline = MochiSingleGPUPipeline(
text_encoder_factory=T5ModelFactory(),
dit_factory=DitModelFactory(
model_path=f"{MOCHI_DIR}/dit.safetensors", model_dtype="bf16"
),
decoder_factory=DecoderModelFactory(
model_path=f"{MOCHI_DIR}/vae.safetensors",
),
cpu_offload=True,
decode_type="tiled_full",
)
video = pipeline(
height=480,
width=848,
num_frames=31,
num_inference_steps=64,
sigma_schedule=linear_quadratic_schedule(64, 0.025),
cfg_schedule=[4.5] * 64,
batch_cfg=False,
prompt="your favorite prompt here ...",
negative_prompt="",
seed=12345,
)
Diffusersを使用したビデオ生成
最新バージョンのDiffusersをインストールします。
pip install git+https://github.com/huggingface/diffusers.git
以下の例では、42GBのVRAMが必要ですが、最高品質の出力が得られます。
import torch
from diffusers import MochiPipeline
from diffusers.utils import export_to_video
pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview")
pipe.enable_model_cpu_offload()
pipe.enable_vae_tiling()
prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k."
with torch.autocast("cuda", torch.bfloat16, cache_enabled=False):
frames = pipe(prompt, num_frames=84).frames[0]
export_to_video(frames, "mochi.mp4", fps=30)
低精度バリアントを使用したメモリ節約
以下の例では、モデルのbfloat16
バリアントを使用し、22GBのVRAMで実行できます。ただし、生成されるビデオの品質は若干低下します。
import torch
from diffusers import MochiPipeline
from diffusers.utils import export_to_video
pipe = MochiPipeline.from_pretrained("genmo/mochi-1-preview", variant="bf16", torch_dtype=torch.bfloat16)
pipe.enable_model_cpu_offload()
pipe.enable_vae_tiling()
prompt = "Close-up of a chameleon's eye, with its scaly skin changing color. Ultra high resolution 4k."
frames = pipe(prompt, num_frames=84).frames[0]
export_to_video(frames, "mochi.mp4", fps=30)
詳細については、Diffusersのドキュメントを参照してください。
🔧 技術詳細
モデルアーキテクチャ
もち 1 は、オープンソースのビデオ生成における大きな進歩を表しています。独自の非対称拡散トランスフォーマー(AsymmDiT)アーキテクチャに基づく100億パラメータの拡散モデルを備えています。完全にゼロから学習され、これまでに公開された中で最大のビデオ生成モデルです。しかも、シンプルでハッカブルなアーキテクチャです。さらに、効率的なコンテキスト並列実装を含む推論ハーネスも公開しています。
もちとともに、ビデオ用の非対称VAE(AsymmVAE)もオープンソース化しています。非対称エンコーダーデコーダー構造を使用して、効率的で高品質な圧縮モデルを構築しています。AsymmVAEは、ビデオを128分の1のサイズに因果的に圧縮し、8x8の空間圧縮と6倍の時間圧縮を行って、12チャンネルの潜在空間に変換します。
AsymmVAEモデル仕様
パラメータ数 |
エンコーダーベースチャンネル数 |
デコーダーベースチャンネル数 |
潜在次元数 |
空間圧縮率 |
時間圧縮率 |
362M |
64 |
128 |
12 |
8x8 |
6x |
AsymmDiTは、テキスト処理を合理化し、ニューラルネットワークの能力を視覚的推論に集中させることで、ユーザーのプロンプトと圧縮されたビデオトークンを効率的に処理します。AsymmDiTは、マルチモーダル自己注意を使用してテキストと視覚トークンに同時にアテンションを向け、各モダリティに対して別々のMLPレイヤーを学習します。これは、Stable Diffusion 3に似ています。ただし、視覚ストリームは、より大きな隠れ次元を持つことで、テキストストリームの約4倍のパラメータを持っています。自己注意でモダリティを統一するために、非正方形のQKVと出力投影レイヤーを使用しています。この非対称設計により、推論時のメモリ要件が削減されます。
多くの現代の拡散モデルは、ユーザーのプロンプトを表現するために複数の事前学習済み言語モデルを使用しています。これに対し、もち 1 は、単一のT5-XXL言語モデルでプロンプトをエンコードするだけです。
AsymmDiTモデル仕様
パラメータ数 |
レイヤー数 |
ヘッド数 |
視覚次元数 |
テキスト次元数 |
視覚トークン数 |
テキストトークン数 |
10B |
48 |
24 |
3072 |
1536 |
44520 |
256 |
ハードウェア要件
このリポジトリは、マルチGPU操作(モデルを複数のグラフィックカードに分割する)とシングルGPU操作の両方をサポートしていますが、シングルGPUで実行する場合は、約60GBのVRAMが必要です。ComfyUIを使用すると、20GB未満のVRAMでももちを実行できますが、この実装ではメモリ効率よりも柔軟性を優先しています。このリポジトリを使用する場合は、少なくとも1つのH100 GPUを使用することをお勧めします。
📄 ライセンス
このモデルは、Apache 2.0ライセンスの下で公開されています。
その他の注意事項
安全性
Genmoのビデオモデルは、一般的なテキストからビデオへの拡散モデルであり、学習データに含まれるバイアスや先入観を内在的に反映しています。NSFWコンテンツを制限するための措置は講じられていますが、組織は、これらのモデルの重みを商用サービスや製品に導入する前に、追加の安全対策を実装し、十分な検討を行う必要があります。
制限事項
研究プレビューの段階では、もち 1 は継続的に進化するチェックポイントです。いくつかの既知の制限があります。現在の最初のリリースでは、480pのビデオを生成します。極端なモーションのエッジケースでは、わずかな歪みやゆがみが発生することがあります。もち 1 は、写実的なスタイルに最適化されているため、アニメーションコンテンツでは性能が良くない場合があります。また、コミュニティが様々な美学的な好みに合わせてモデルを微調整することが期待されています。
関連研究
BibTeX引用
@misc{genmo2024mochi,
title={Mochi 1},
author={Genmo Team},
year={2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished={\url{https://github.com/genmoai/models}}
}