zero0303's picture
Add files using upload-large-folder tool
f1601e0 verified
Raw History Blame Contribute Delete
1.79 kB
"""Text to video with our LTX-2.5 MLX port (distilled, two-stage, bf16 like Lightricks; dynamic 8-bit weights).
.venv/bin/python generate.py "prompt" -o out.mp4 [--seed 42] [--width 1024 --height 576 --frames 121 --fps 24]
.venv/bin/python generate.py "prompt" -o out.mp4 --image start.png [--image-strength 1.0] # image to video
"""
import argparse
import sys
import time
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
from ltx25.pipeline import generate # noqa: E402 (ltx25 turns MLX's TF32 off before MLX is used)
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("prompt")
ap.add_argument("-o", "--out", required=True)
ap.add_argument("--seed", type=int, default=42)
ap.add_argument("--width", type=int, default=1024)
ap.add_argument("--height", type=int, default=576)
ap.add_argument("--frames", type=int, default=121)
ap.add_argument("--fps", type=float, default=24.0)
ap.add_argument("--models", default=str(Path(__file__).resolve().parent / "models/ltx-2.5-mlx-8bit"),
help="our dynamic 8-bit pack (default) or a folder with Lightricks' 16-bit release")
ap.add_argument("--image", help="start image (PNG / JPEG): the clip begins from it (Lightricks' --image PATH 0 STRENGTH)")
ap.add_argument("--image-strength", type=float, default=1.0)
ap.add_argument("--image-crf", type=int, default=None, help="H.264 CRF the image is re-compressed at (default: the model's)")
a = ap.parse_args()
t0 = time.time()
generate(a.prompt, a.out, seed=a.seed, width=a.width, height=a.height, num_frames=a.frames, fps=a.fps,
models=a.models, image=a.image, image_strength=a.image_strength, image_crf=a.image_crf)
print(f"total {time.time() - t0:.0f} s")