genmo/mochi-1-preview
genmo
Texto a video
Mochi 1 Preview es un modelo abierto de generación de video a partir de texto desarrollado por Genmo. Está diseñado para producir movimiento de alta fidelidad y seguir prompts con fuerza, acercando la calidad de los sistemas abiertos a la de modelos cerrados de video generativo. Usa una arquitectura Asymmetric Diffusion Transformer de 10.000 millones de parámetros y se publica bajo licencia Apache 2.0.
Como usar
Instalación desde el repositorio de Genmo:
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
Para instalar Flash Attention:
uv pip install -e .[flash] --no-build-isolation
Ejecutar la interfaz Gradio:
python3 ./demos/gradio_ui.py --model_dir ""
Generar videos desde CLI:
python3 ./demos/cli.py --model_dir ""
Uso programático con la API de Genmo:
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,
)
Uso con Diffusers:
pip install git+https://github.com/huggingface/diffusers.git
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)
Variante bf16 para ahorrar memoria:
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)
Funcionalidades
- Generación texto-a-video con fuerte adherencia al prompt.
- Modelo de difusión de 10B parámetros basado en AsymmDiT.
- Optimizado para estilos fotorealistas y videos iniciales a 480p.
- AsymmVAE abierto para compresión de video eficiente: compresión espacial 8x8 y temporal 6x hacia un espacio latente de 12 canales.
- Compatible con ejecución mediante el repositorio de Genmo, API programática, CLI, interfaz Gradio y Diffusers.
- Licencia permisiva Apache 2.0.
- Soporta variantes de menor precisión bf16 para reducir memoria, con una ligera pérdida de calidad.
Casos de uso
- Crear videos fotorealistas a partir de descripciones textuales.
- Investigar arquitecturas abiertas de generación de video con difusión.
- Prototipar flujos de texto-a-video en aplicaciones, notebooks o interfaces Gradio.
- Generar clips cortos para experimentos creativos, demos de IA o pipelines multimedia.
- Evaluar y ajustar modelos abiertos de video generativo bajo una licencia permisiva.