Mochi 1:Genmo 开源的 100 亿参数文生视频模型|部署与使用全指南
项目仓库: https://github.com/genmoai/mochi
许可证:Apache-2.0 · 维护方:Genmo · 语言:Python 3.11 · 框架:PyTorch · 形态:Gradio Web + CLI + Python API · 模型:10B AsymmDiT + AsymmVAE · 在线 Playground:genmo.ai/play
1 项目简介
Mochi 1 是 Genmo 发布的开源文生视频模型:100 亿参数扩散模型,基于自研的非对称扩散 Transformer(AsymmDiT)架构,配合 AsymmVAE 视频压缩。官方称其在运动保真度与提示词遵循度上接近闭源系统,且以 Apache-2.0 许可证开放权重。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Mochi 1 |
| 仓库地址 | github.com/genmoai/mochi |
| 模型权重 | huggingface.co/genmo/mochi-1-preview |
| 直接下载 | weights.zip |
| 在线 Playground | genmo.ai/play |
| 许可证 | Apache-2.0 |
| 参数量 | 10B(DiT)+ 362M(VAE) |
| 形态 | Gradio + CLI + Python API |
1.2 适用场景
- 研究/复现开源 SOTA 文生视频。
- 在单 H100/A100 80GB 上跑 480p 视频生成。
- 用 LoRA 在自己的视频数据上微调。
1.3 能力边界(官方口径)
- 首发版本输出 480p;极端运动下可能出现轻微扭曲。
- 模型优化写实风格,对动画/卡通效果一般。
- 单 GPU 推理约需 60 GB 显存;ComfyUI 封装可在 20 GB 以下显存运行。
2 功能特性
- 10B AsymmDiT:非对称架构,视觉流参数约为文本流 4 倍,降低推理显存。
- AsymmVAE:8×8 空间 + 6× 时间压缩到 12 通道 latent。
- T5-XXL:单 T5 文本编码器。
- LoRA 微调:单 H100/A100 80GB 即可微调。
- ComfyUI 原生支持(2024-11-05 起)。
- CPU offload:
--cpu_offload降低显存峰值。
3 官方界面预览
在线 Playground:genmo.ai/play。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库 | github.com/genmoai/mochi | 源码 |
| 权重 | huggingface.co/genmo/mochi-1-preview | 模型下载 |
| 博客 | genmo.ai/blog | 技术说明 |
| ComfyUI 封装 | kijai/ComfyUI-MochiWrapper | 社区封装 |
5 前置要求与服务器配置
5.1 软件前提
- Python 3.11+。
- uv 包管理器。
- FFmpeg(把输出转成视频)。
- 可选:flash-attn(
--extra flash)。
5.2 硬件建议
| 方式 | 显存 |
|---|---|
| 本仓库单 GPU | 约 60 GB(推荐 1×H100) |
| ComfyUI 封装 | 可压到 20 GB 以下 |
| LoRA 微调 | 1×H100 / A100 80GB |
6 方式一:uv 安装与推理
git clone https://github.com/genmoai/mochi
cd mochi
pip install uv
uv venv --python 3.11 .venv
source .venv/bin/activate
uv sync --locked
# 可选 flash-attn
uv sync --locked --extra flash --no-build-isolation下载权重:
python3 ./scripts/download_weights.py weights/启动 Gradio:
python3 ./demos/gradio_ui.py --model_dir weights/ --cpu_offloadCLI 直接生成:
python3 ./demos/cli.py --model_dir weights/ --cpu_offload加载 LoRA:
python3 ./demos/gradio_ui.py --model_dir weights/ --cpu_offload \
--lora_path path/to/my_mochi_lora.safetensors7 方式二:Python 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="weights/dit.safetensors", model_dtype="bf16"
),
decoder_factory=DecoderModelFactory(model_path="weights/decoder.safetensors"),
cpu_offload=True,
decode_type="tiled_spatial",
)
video = pipeline(
height=480, width=848, num_frames=31, num_inference_steps=64,
sigma_schedule=linear_quadratic_schedule(64, 0.025),
cfg_schedule=[6.0] * 64, batch_cfg=False,
prompt="your favorite prompt here ...",
negative_prompt="", seed=12345,
)8 关键参数
| 参数 | 默认 | 说明 |
|---|---|---|
--model_dir |
无 | 权重目录 |
--cpu_offload |
关闭 | 显存不足时开启 |
--lora_path |
无 | LoRA 权重路径 |
height / width |
480×848 | 视频分辨率 |
num_frames |
31 | 帧数 |
num_inference_steps |
64 | 采样步数 |
9 常用运维命令
nvidia-smi
ls -lh weights/
ls -lh outputs/10 常见故障排查
- 显存不足:加
--cpu_offload;或用 ComfyUI 封装(<20GB)。 - 依赖冲突:必须用
uv sync --locked,不要直接pip install -r requirements.txt(不会应用 Pillow 覆盖)。 - 想跑动画:官方说明对动画效果一般,建议 LoRA 微调。
11 风险与合规说明
- Apache-2.0 许可,商用友好;但模型可能反映训练数据偏见,商业部署需自行加安全过滤。
- 输出视频版权由使用者承担;不得用于 NSFW 或伪造内容。
- 官方明确:商业服务上线前应自行补充安全协议。
本文基于官方 README 整理,仅供学习与部署参考;以仓库最新说明为准。