模型简介
模型特点
模型能力
使用案例
🚀 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 许可证。





