| | |
| | from textwrap import dedent |
| | from genmo.mochi_preview.pipelines import ( |
| | DecoderModelFactory, |
| | DitModelFactory, |
| | MochiSingleGPUPipeline, |
| | T5ModelFactory, |
| | linear_quadratic_schedule, |
| | ) |
| | from genmo.lib.utils import save_video |
| | from genmo.lib.progress import progress_bar |
| | from pathlib import Path |
| | import sys |
| |
|
| | MOCHI_DIR = sys.argv[1] |
| | assert Path(MOCHI_DIR).exists(), f"Model directory {MOCHI_DIR} does not exist." |
| | 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", |
| | model_stats_path=f"{MOCHI_DIR}/vae_stats.json", |
| | ), |
| | cpu_offload=True, |
| | decode_type="tiled_full" |
| | ) |
| |
|
| | PROMPT = dedent(""" |
| | A hand with delicate fingers picks up a bright yellow lemon from a wooden bowl |
| | filled with lemons and sprigs of mint against a peach-colored background. |
| | The hand gently tosses the lemon up and catches it, showcasing its smooth texture. |
| | A beige string bag sits beside the bowl, adding a rustic touch to the scene. |
| | Additional lemons, one halved, are scattered around the base of the bowl. |
| | The even lighting enhances the vibrant colors and creates a fresh, |
| | inviting atmosphere. |
| | """) |
| |
|
| | 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=PROMPT, |
| | negative_prompt="", |
| | seed=12345, |
| | ) |
| |
|
| | with progress_bar(type="tqdm"): |
| | save_video(video[0], "video.mp4") |