模型概述
模型特點
模型能力
使用案例
🚀 Mochi 1
Mochi 1 是由 Genmo 開發的一款先進的視頻生成模型,能夠根據文本輸入生成高質量的視頻,為視頻創作領域帶來了新的可能性。
博客 | Hugging Face | 在線演示 | 招聘信息
🚀 快速開始
Mochi 1 預覽版是一個開放的先進視頻生成模型,在初步評估中展現出高保真的運動效果和強大的提示遵循能力。該模型顯著縮小了封閉和開放視頻生成系統之間的差距。我們以寬鬆的 Apache 2.0 許可證發佈此模型。你可以在 我們的在線演示 中免費試用該模型。
✨ 主要特性
- 先進架構:基於新穎的非對稱擴散變壓器(AsymmDiT)架構構建,擁有 100 億參數的擴散模型,是有史以來公開發布的最大視頻生成模型。
- 高效壓縮:開源的 AsymmVAE 視頻壓縮模型,採用非對稱編碼器 - 解碼器結構,能將視頻高效壓縮至 1/128 的大小。
- 靈活運行:支持多 GPU 和單 GPU 運行,可根據硬件條件靈活選擇。
📦 安裝指南
使用 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
安裝 Flash Attention(可選)
uv pip install -e .[flash] --no-build-isolation
安裝 FFMPEG
你還需要安裝 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
下載權重到本地文件夾。
運行模型
啟動 Gradio UI
python3 ./demos/gradio_ui.py --model_dir "<path_to_downloaded_directory>"
從命令行直接生成視頻
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)
低精度變體以節省內存(需要 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 文檔。
📚 詳細文檔
模型架構
Mochi 1 在開源視頻生成領域取得了重大進展,其基於我們新穎的非對稱擴散變壓器(AsymmDiT)架構構建了一個 100 億參數的擴散模型。該模型完全從頭開始訓練,是有史以來公開發布的最大視頻生成模型。此外,我們還開源了一個推理框架,其中包括高效的上下文並行實現。
同時,我們開源了視頻 AsymmVAE。我們使用非對稱編碼器 - 解碼器結構構建了一個高效的高質量壓縮模型。我們的 AsymmVAE 可以將視頻因果壓縮至 1/128 的大小,其中空間壓縮比為 8x8,時間壓縮比為 6x,壓縮到一個 12 通道的潛在空間。
AsymmVAE 模型規格
參數數量 | 編碼器基礎通道數 | 解碼器基礎通道數 | 潛在維度 | 空間壓縮比 | 時間壓縮比 |
---|---|---|---|---|---|
3.62 億 | 64 | 128 | 12 | 8x8 | 6x |
AsymmDiT 通過簡化文本處理並將神經網絡的計算能力集中在視覺推理上,有效地處理用戶提示和壓縮後的視頻令牌。AsymmDiT 使用多模態自注意力機制同時處理文本和視覺令牌,併為每個模態學習單獨的 MLP 層,類似於 Stable Diffusion 3。然而,通過更大的隱藏維度,我們的視覺流的參數數量幾乎是文本流的 4 倍。為了在自注意力中統一不同模態,我們使用非方形的 QKV 和輸出投影層。這種非對稱設計減少了推理時的內存需求。
許多現代擴散模型使用多個預訓練語言模型來表示用戶提示。相比之下,Mochi 1 僅使用單個 T5 - XXL 語言模型對提示進行編碼。
AsymmDiT 模型規格
參數數量 | 層數 | 頭數 | 視覺維度 | 文本維度 | 視覺令牌數 | 文本令牌數 |
---|---|---|---|---|---|---|
100 億 | 48 | 24 | 3072 | 1536 | 44520 | 256 |
硬件要求
本倉庫支持多 GPU 操作(將模型分佈在多個顯卡上)和單 GPU 操作,但在單 GPU 上運行時大約需要 60GB 的 VRAM。雖然 ComfyUI 可以優化 Mochi 以在小於 20GB 的 VRAM 上運行,但此實現更注重靈活性而非內存效率。使用本倉庫時,我們建議至少使用 1 個 H100 GPU。
安全注意事項
Genmo 視頻模型是通用的文本到視頻擴散模型,其本質上反映了訓練數據中存在的偏差和先入之見。雖然我們已經採取了措施來限制 NSFW 內容,但組織在將這些模型權重部署到任何商業服務或產品之前,應實施額外的安全協議並進行仔細考慮。
侷限性
在研究預覽階段,Mochi 1 是一個不斷發展的模型檢查點,存在一些已知的侷限性。目前初始版本生成的視頻分辨率為 480p。在一些極端運動的邊緣情況下,可能會出現輕微的扭曲和變形。Mochi 1 針對寫實風格進行了優化,因此在處理動畫內容時表現不佳。我們預計社區將對該模型進行微調以適應各種審美偏好。
相關工作
- ComfyUI - MochiWrapper 為 Mochi 增加了 ComfyUI 支持。Pytorch 的 SDPA 注意力集成取自該倉庫。
- mochi - xdit 是本倉庫的一個分支,使用 xDiT 提高了並行推理速度。
BibTeX 引用
@misc{genmo2024mochi,
title={Mochi 1},
author={Genmo Team},
year={2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished={\url{https://github.com/genmoai/models}}
}
📄 許可證
本項目採用 Apache 2.0 許可證。





