语言:
- "英文"
标签:
- 视频
- 生成模型
许可证: Apache-2.0
流水线标签: 文本到视频
库名称: diffusers
Mochi 1
博客 | Hugging Face | 在线体验 | 招聘
由Genmo开发的前沿视频生成模型。
https://github.com/user-attachments/assets/4d268d02-906d-4cb0-87cc-f467f1497108
概述
Mochi 1预览版是一款开放的高保真视频生成模型,在初步评估中展现出卓越的运动表现力和精准的提示跟随能力。该模型显著缩小了封闭与开放视频生成系统之间的差距。我们采用宽松的Apache 2.0许可证发布该模型,您可以在我们的在线平台免费试用。
安装
使用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 <下载目录路径>
或直接从Hugging Face下载,或通过磁力链接magnet:?xt=urn:btih:441da1af7a16bcaa4f556964f8028d7113d21cbb&dn=weights&tr=udp://tracker.opentrackr.org:1337/announce
下载到本地文件夹。
运行
启动Gradio交互界面:
python3 ./demos/gradio_ui.py --model_dir "<模型目录路径>"
或通过命令行直接生成视频:
python3 ./demos/cli.py --model_dir "<模型目录路径>"
请将<模型目录路径>
替换为实际的模型存储路径。
API接口
本仓库提供简洁可组合的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="在此输入您的提示词...",
negative_prompt="",
seed=12345,
)
使用Diffusers运行
也可通过Diffusers库调用:
安装最新版Diffusers:
pip install git+https://github.com/huggingface/diffusers.git
以下高质量输出示例需42GB显存:
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 = "变色龙眼睛特写,鳞状皮肤正在变色。超高清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显存(画质略有下降):
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 = "变色龙眼睛特写,鳞状皮肤正在变色。超高清4K分辨率。"
frames = pipe(prompt, num_frames=84).frames[0]
export_to_video(frames, "mochi.mp4", fps=30)
更多用法详见Diffusers文档
模型架构
Mochi 1采用创新的非对称扩散Transformer架构(AsymmDiT),包含100亿参数,是迄今公开的最大视频生成模型。配套发布的非对称VAE(AsymmVAE)通过8x8空间压缩和6x时间压缩,将视频压缩至原始尺寸的1/128。
AsymmVAE技术规格
参数量 |
编码器基础通道 |
解码器基础通道 |
潜在维度 |
空间压缩率 |
时间压缩率 |
362M |
64 |
128 |
12 |
8x8 |
6x |
AsymmDiT技术规格
参数量 |
层数 |
头数 |
视觉维度 |
文本维度 |
视觉token数 |
文本token数 |
10B |
48 |
24 |
3072 |
1536 |
44520 |
256 |
硬件要求
单GPU运行需约60GB显存,建议至少使用1张H100显卡。虽然ComfyUI可优化至20GB以下显存,但本实现更注重灵活性。
安全声明
本模型可能反映训练数据中的偏见,虽已限制NSFW内容,但商业部署前建议建立额外安全机制。
已知限制
当前版本生成480p视频,极端运动场景可能出现扭曲。主要适用于写实风格,动画内容表现欠佳。社区可进行风格微调。
相关项目
引用
@misc{genmo2024mochi,
title={Mochi 1},
author={Genmo Team},
year={2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished={\url{https://github.com/genmoai/models}}
}